/[packages]/cauldron/mesa/current/SOURCES/0001-i965-Don-t-do-the-temporary-and-blit-copy-for-INVALI.patch
ViewVC logotype

Contents of /cauldron/mesa/current/SOURCES/0001-i965-Don-t-do-the-temporary-and-blit-copy-for-INVALI.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 566020 - (show annotations) (download)
Thu Jan 9 21:54:46 2014 UTC (10 years, 9 months ago) by tmb
File size: 1799 byte(s)
- i965: Don't do the temporary-and-blit-copy for INVALIDATE_RANGE maps
- i965: Fix handling of MESA_pack_invert in blit (PBO) readpixels
- i965: fold offset into coord for textureOffset(gsampler2DRect)


1 From 3a6271890cd40c1e37870802f9f3231b3170d27f Mon Sep 17 00:00:00 2001
2 From: Eric Anholt <eric@anholt.net>
3 Date: Tue, 24 Dec 2013 15:11:29 -0800
4 Subject: [PATCH] i965: Don't do the temporary-and-blit-copy for
5 INVALIDATE_RANGE maps.
6
7 We definitely want to fall through to the unsynchronized map case, instead
8 of wasting bandwidth on a copy. Prevents a -43.2407% +/- 1.06113% (n=49)
9 performance regression on aa10perf when teaching glamor to provide the
10 GL_INVALIDATE_RANGE_BIT information.
11
12 This is a performance fix, which I usually wouldn't cherry-pick to stable.
13 But this was really was just a bug in the code, its presence would
14 discourage developers from giving us the best information they can, and I
15 think we've got fairly high confidence in the unsynchronized map path
16 already.
17
18 Cc: 10.0 9.2 <mesa-stable@lists.freedesktop.org>
19 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
20 (cherry picked from commit f46563fe1c8a5560e4de0adf03e3d8770b7fc734)
21 ---
22 src/mesa/drivers/dri/i965/intel_buffer_objects.c | 3 ++-
23 1 file changed, 2 insertions(+), 1 deletion(-)
24
25 diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
26 index 779198f..a87ebf7 100644
27 --- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
28 +++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
29 @@ -357,7 +357,8 @@ intel_bufferobj_map_range(struct gl_context * ctx,
30 * BO, and we'll copy what they put in there out at unmap or
31 * FlushRange time.
32 */
33 - if ((access & GL_MAP_INVALIDATE_RANGE_BIT) &&
34 + if (!(access & GL_MAP_UNSYNCHRONIZED_BIT) &&
35 + (access & GL_MAP_INVALIDATE_RANGE_BIT) &&
36 drm_intel_bo_busy(intel_obj->buffer)) {
37 if (access & GL_MAP_FLUSH_EXPLICIT_BIT) {
38 intel_obj->range_map_buffer = malloc(length);
39 --
40 1.8.4.5
41

  ViewVC Help
Powered by ViewVC 1.1.30