diff options
author | Matt Turner <[email protected]> | 2017-06-05 09:54:06 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2017-06-06 11:47:47 -0700 |
commit | e0a9b261e5938e121304ba3bde4423bee3496752 (patch) | |
tree | aa8d23ff82ae284f860491a57db7079be3a75cc2 | |
parent | a16355d67d92c0233c2b1762d517238d562dcc04 (diff) |
i965: Use unsynchronized mappings for BufferSubData on non-LLC
Now that unsynchronized maps actually work, we can use them, like we do
on LLC platforms.
On Broxton, the performance of Unigine Valley 1.1-rc1 is improved by
37.6656% +/- 0.401389% (n=20) at 1280x720/QUALITY_LOW, and by
20.862% +/- 2.20901% (n=3) at 1920x1080/QUALITY_LOW.
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_buffer_objects.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c b/src/mesa/drivers/dri/i965/intel_buffer_objects.c index fcf04ebfdd6..a9ac29a6a81 100644 --- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c @@ -216,17 +216,13 @@ brw_buffer_subdata(struct gl_context *ctx, */ if (offset + size <= intel_obj->gpu_active_start || intel_obj->gpu_active_end <= offset) { - if (brw->has_llc) { - void *map = brw_bo_map_unsynchronized(brw, intel_obj->buffer); - memcpy(map + offset, data, size); - brw_bo_unmap(intel_obj->buffer); + void *map = brw_bo_map(brw, intel_obj->buffer, MAP_WRITE | MAP_ASYNC); + memcpy(map + offset, data, size); + brw_bo_unmap(intel_obj->buffer); - if (intel_obj->gpu_active_end > intel_obj->gpu_active_start) - intel_obj->prefer_stall_to_blit = true; - return; - } else { - perf_debug("BufferSubData could be unsynchronized, but !LLC doesn't support it yet\n"); - } + if (intel_obj->gpu_active_end > intel_obj->gpu_active_start) + intel_obj->prefer_stall_to_blit = true; + return; } busy = |