radv: Include view index SET_SH_REG in ace_predication_size.
authorTimur Kristóf <timur.kristof@gmail.com>
Thu, 1 Dec 2022 12:37:37 +0000 (13:37 +0100)
committerTimur Kristóf <timur.kristof@gmail.com>
Wed, 21 Dec 2022 15:55:35 +0000 (16:55 +0100)
This fixes an issue when conditional rendering and multiple views
were used with a task+mesh draw call.

Fixes: 2479b6286974c1467bec5120df96650d297dcb7f
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20098>

src/amd/vulkan/radv_cmd_buffer.c

index ba63570..0803ca1 100644 (file)
@@ -8056,6 +8056,9 @@ radv_emit_indirect_taskmesh_draw_packets(struct radv_cmd_buffer *cmd_buffer,
                                      info->count_buffer->offset + info->count_buffer_offset;
    uint64_t workaround_cond_va = 0;
 
+   if (num_views > 1)
+      ace_predication_size += num_views * 3; /* SET_SH_REG size (view index SGPR) */
+
    if (count_va) {
       radv_cs_add_buffer(ws, cmd_buffer->ace_internal.cs, info->count_buffer->bo);