Skip to content

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.

I found this while working on conditional rendering support for task shaders.

Missing CTS coverage is tracked here: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/3708

Edited by Timur Kristóf

Merge request reports