mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 08:20:12 +01:00
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> |
||
|---|---|---|
| .. | ||
| amd | ||
| broadcom | ||
| compiler | ||
| drm-shim | ||
| egl | ||
| etnaviv | ||
| freedreno | ||
| gallium | ||
| gbm | ||
| getopt | ||
| glx | ||
| gtest | ||
| hgl | ||
| imgui | ||
| intel | ||
| loader | ||
| mapi | ||
| mesa | ||
| panfrost | ||
| util | ||
| vulkan | ||
| meson.build | ||
| SConscript | ||