summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2013-10-03 20:03:41 -0700
committerEric Anholt <eric@anholt.net>2013-10-23 15:33:19 -0700
commitc298f5ff5681dd7c3cf0bf7c37a6f22430deeb91 (patch)
tree76d47ef95657b9ff447d67baf8c2a75266b5652b /src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
parent3b58e0ed642b1833b86dbefb36b6055a6709a720 (diff)
downloadexternal_mesa3d-c298f5ff5681dd7c3cf0bf7c37a6f22430deeb91.zip
external_mesa3d-c298f5ff5681dd7c3cf0bf7c37a6f22430deeb91.tar.gz
external_mesa3d-c298f5ff5681dd7c3cf0bf7c37a6f22430deeb91.tar.bz2
i965: Try to avoid stalls on the GPU when doing glBufferSubData().
On DOTA2, framerate on dota2-de1.dem in windowed mode on my laptop improves by 7.69854% +/- 0.909163% (n=3). In a microbenchmark hitting this code path (wall time of piglit vbo-subdata-many), runtime decreases from 0.8 to 0.05 seconds. v2: Use out of range start/end instead of separate bool for the active flag (suggestion by Jordan), fix double-upload in the stalling path. Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen7_wm_surface_state.c')
-rw-r--r--src/mesa/drivers/dri/i965/gen7_wm_surface_state.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
index 9880c14..1f0c75f 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
@@ -278,8 +278,8 @@ gen7_update_buffer_texture_surface(struct gl_context *ctx,
drm_intel_bo *bo = NULL;
if (intel_obj) {
- bo = intel_obj->buffer;
size = MIN2(size, intel_obj->Base.Size);
+ bo = intel_bufferobj_buffer(brw, intel_obj, tObj->BufferOffset, size);
}
gl_format format = tObj->_BufferObjectFormat;