mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 18:50:10 +01:00
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 <kenneth@whitecape.org>
This commit is contained in:
parent
a16355d67d
commit
e0a9b261e5
1 changed files with 6 additions and 10 deletions
|
|
@ -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 =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue