Module: Mesa Branch: main Commit: 4608de6645e55d7cb4f309ecf6ef837ddaf43c39 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4608de6645e55d7cb4f309ecf6ef837ddaf43c39
Author: Lionel Landwerlin <[email protected]> Date: Mon Oct 23 10:51:37 2023 +0300 anv: add missing push descriptor flush on ray tracing pipelines Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Rohan Garg <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897> --- src/intel/vulkan/genX_cmd_buffer.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 13d5b280a5e..fd8bfb2e7a8 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -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. *
