mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02: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 ||
|
if (offset + size <= intel_obj->gpu_active_start ||
|
||||||
intel_obj->gpu_active_end <= offset) {
|
intel_obj->gpu_active_end <= offset) {
|
||||||
if (brw->has_llc) {
|
void *map = brw_bo_map(brw, intel_obj->buffer, MAP_WRITE | MAP_ASYNC);
|
||||||
void *map = brw_bo_map_unsynchronized(brw, intel_obj->buffer);
|
memcpy(map + offset, data, size);
|
||||||
memcpy(map + offset, data, size);
|
brw_bo_unmap(intel_obj->buffer);
|
||||||
brw_bo_unmap(intel_obj->buffer);
|
|
||||||
|
|
||||||
if (intel_obj->gpu_active_end > intel_obj->gpu_active_start)
|
if (intel_obj->gpu_active_end > intel_obj->gpu_active_start)
|
||||||
intel_obj->prefer_stall_to_blit = true;
|
intel_obj->prefer_stall_to_blit = true;
|
||||||
return;
|
return;
|
||||||
} else {
|
|
||||||
perf_debug("BufferSubData could be unsynchronized, but !LLC doesn't support it yet\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
busy =
|
busy =
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue