anv: add missing push descriptor flush on ray tracing pipelines

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897>
This commit is contained in:
Lionel Landwerlin 2023-10-23 10:51:37 +03:00 committed by Marge Bot
parent f26e83b6a4
commit 4608de6645

View file

@ -2352,6 +2352,8 @@ flush_push_descriptor_set(struct anv_cmd_buffer *cmd_buffer,
set->desc_addr,
layout->descriptor_buffer_size, 1);
}
state->push_descriptor.set_used_on_gpu = true;
}
static void
@ -6458,6 +6460,16 @@ cmd_buffer_trace_rays(struct anv_cmd_buffer *cmd_buffer,
genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
const VkShaderStageFlags push_descriptor_dirty =
cmd_buffer->state.push_descriptors_dirty &
pipeline->base.use_push_descriptor;
if (push_descriptor_dirty) {
flush_push_descriptor_set(cmd_buffer,
&cmd_buffer->state.rt.base,
&pipeline->base);
cmd_buffer->state.push_descriptors_dirty &= ~push_descriptor_dirty;
}
/* Add these to the reloc list as they're internal buffers that don't
* actually have relocs to pick them up manually.
*