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 meson: use gnu_symbol_visibility argument 2020-06-01 18:59:18 +00:00
egl egl/dri2: try to bind old context if bindContext failed 2020-07-21 18:42:03 +00:00
etnaviv etnaviv: replace all dup() with os_dupfd_cloexec() 2020-06-18 02:09:56 +00:00
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 gbm: document that gbm_bo_map exposes a linear view 2020-06-03 10:09:52 +00:00
getopt
glx glx: Fix build and warnings with -Dglx=dri -Dglx-direct=false 2020-07-23 01:23:12 +00:00
gtest gtest: Update to 1.10.0 2020-04-20 11:57:11 +00:00
hgl scons: Prune out unnecessary targets. 2020-03-30 13:38:01 +00:00
imgui meson: drop intel_ prefix on imgui_core 2019-12-10 15:16:02 +00:00
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 meson: use gnu_symbol_visibility argument 2020-06-01 18:59:18 +00:00
SConscript driconf: drop now unused translation facility 2020-06-22 21:50:12 +00:00