iris: Use copy_region and staging resources to avoid transfer stalls
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 21 Dec 2018 11:04:18 +0000 (03:04 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 8 Mar 2019 21:29:39 +0000 (13:29 -0800)
commit9d1334d2a0f983e175ffe371bee33f4ce048f910
tree65fa04e6709acd5c39e5fd78cb1245d193045302
parentf67c8701799ec29083f40373f74027f9b1d6dbc6
iris: Use copy_region and staging resources to avoid transfer stalls

This is similar to intel_miptree_map_blit and intel_buffer_object.c's
temporary blits in i965.

Improves performance of DiRT Rally by 20-25% by eliminating stalls.

Breaks piglit's spec/arb_shader_image_load_store/host-mem-barrier,
by using the GPU to do uploads, exposing a st/mesa issue where it
doesn't give us memory_barrier() calls.  This is a pre-existing issue
and will be fixed by a later patch (currently out for review).
src/gallium/drivers/iris/iris_resource.c
src/gallium/drivers/iris/iris_resource.h
src/gallium/drivers/iris/iris_screen.c
src/gallium/drivers/iris/iris_screen.h