radv: Implement conditional rendering for async compute queue.
authorTimur Kristóf <timur.kristof@gmail.com>
Sun, 22 May 2022 08:43:42 +0000 (10:43 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 25 May 2022 11:18:51 +0000 (11:18 +0000)
commit85a4c5b35131ab4279101821c060bdd2ce58c3ea
tree63b642ff2fbc8635418808bc0c833eefcc995400
parent45a4a54abacf2d99e50d567c0e54311d8d628a17
radv: Implement conditional rendering for async compute queue.

MEC (the compute queue firmware) does not support real
predication, so we have to emulate that using COND_EXEC
packets before each dispatch.

Additionally, COND_EXEC doesn't have an inverted mode, so
in order to support inverted mode conditional rendering, we
allocate a new piece of memory in which we invert the condition.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6533
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16653>
src/amd/vulkan/radv_cmd_buffer.c