mesa/src
Connor Abbott a0ca688a67 tu: Integrate WFI/WAIT_FOR_ME/WAIT_MEM_WRITES with cache tracking
Track them via pending_flush_bits. Previously WFI was only tracked in
flush_bits and WAIT_FOR_ME was emitted directly. This means that we don't
emit WAIT_FOR_ME or WAIT_FOR_IDLE if there wasn't a cache flush or other
write by the GPU. Also split up host writes from sysmem writes, as only
the former require WFI/WAIT_FOR_ME.

Along the way, I also realized that we were missing proper handling of
transform feedback counter writes which require WAIT_MEM_WRITES. Plumb
that through as well. And CmdDrawIndirectByteCountEXT needs a
WAIT_FOR_ME as it does not wait for WFI internally.

As an example of what this does, a typical barrier for transform
feedback with srcAccess = VK_TRANSFORM_FEEDBACK_WRITE_COUNTER_BIT_EXT
and dstAccess = VK_ACCESS_INDIRECT_COMMAND_READ_BIT used to emit on
A650:

- WAIT_FOR_IDLE

and now we emit:

- WAIT_MEM_WRITES
- WAIT_FOR_ME

So we've eliminated a useless WFI and added some necessary waits.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6007>
2020-07-24 19:20:44 +02:00
..
amd radv: clean up remaining pipeline init functions 2020-07-24 12:30:03 +00:00
broadcom v3d: Retry with the fallback scheduler when RA fails 2020-07-24 12:27:07 +02:00
compiler nir/schedule: Add an option for a fallback scheduling algorithm 2020-07-24 12:26:26 +02:00
drm-shim
egl egl/dri2: try to bind old context if bindContext failed 2020-07-21 18:42:03 +00:00
etnaviv
freedreno tu: Integrate WFI/WAIT_FOR_ME/WAIT_MEM_WRITES with cache tracking 2020-07-24 19:20:44 +02:00
gallium etnaviv: explicitly set nir_variable_mode 2020-07-24 13:33:47 +00:00
gbm
getopt
glx glx: Fix build and warnings with -Dglx=dri -Dglx-direct=false 2020-07-23 01:23:12 +00:00
gtest
hgl
imgui
intel anv,turnip,radv,clover,glspirv: Run nir_copy_prop before nir_opt_deref 2020-07-23 22:43:21 -05:00
loader Revert "loader/dri3: Check for window destruction in dri3_wait_for_event_locked" 2020-07-03 09:55:50 +00:00
mapi glx: Fix build and warnings with -Dglx=dri -Dglx-direct=false 2020-07-23 01:23:12 +00:00
mesa anv,turnip,radv,clover,glspirv: Run nir_copy_prop before nir_opt_deref 2020-07-23 22:43:21 -05:00
panfrost pan/mdg: Use the blend RT for blend shader framebuffer fetches 2020-07-20 14:15:49 +00:00
util driconf: allowlist/denylist 2020-07-16 21:56:08 +00:00
vulkan meson: Add mising git_sha1.h dependency. 2020-07-22 00:02:26 +00:00
meson.build
SConscript