Module: Mesa Branch: staging/22.0 Commit: 3c9059650870867e749cb5b29793615cb7009553 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c9059650870867e749cb5b29793615cb7009553
Author: Lionel Landwerlin <[email protected]> Date: Wed Apr 13 11:42:45 2022 +0300 anv: skip acceleration structure in binding table emission With mutable descriptor types, we can end up in a situation where a binding can be, for instance, both a UBO and an acceleration structure. While we can promote the UBO to a binding table entry and the shader can use it, this isn't true of acceleration structures that have no surface state. In that case just skip the entry. The shader is already compiled to use the descriptor entry. In the non mutable case, the entry will not be created by anv_nir_apply_pipeline_layout. Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: 63e91148b7fe ("anv: Enable VK_VALVE_mutable_descriptor_type") Reviewed-by: Rohan Garg <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15969> (cherry picked from commit fe413962b4dd89ec5be539b13e7cbf7f871dd04a) --- .pick_status.json | 2 +- src/intel/vulkan/genX_cmd_buffer.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 6484c49e91f..84e519ad685 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -508,7 +508,7 @@ "description": "anv: skip acceleration structure in binding table emission", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "because_sha": "63e91148b7fe777b6ad7bfdb6b02d167c151dd55" }, { diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 63f607af950..a256a4ded58 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -2807,6 +2807,7 @@ emit_binding_table(struct anv_cmd_buffer *cmd_buffer, const struct anv_descriptor *desc = &set->descriptors[binding->index]; switch (desc->type) { + case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR: case VK_DESCRIPTOR_TYPE_SAMPLER: /* Nothing for us to do here */ continue;
