Module: Mesa
Branch: main
Commit: 56b6ca411feaf5894756996066e1e1364ae16bd9
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=56b6ca411feaf5894756996066e1e1364ae16bd9

Author: Daniel Schürmann <[email protected]>
Date:   Fri Mar 24 02:46:46 2023 +0100

radv/rt: Fix VK_KHR_pipeline_executable_properties

We don't provide executable properties for the prolog shader.

Fixes: f123d65e9f50e57b9af3de2e0e77618fcd9d2ddd ('radv/rt: use prolog for 
raytracing shaders')
Fixes: 
dEQP-VK.pipeline.monolithic.shader_module_identifier.pipeline_from_id.ray_tracing_libs.*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22111>

---

 src/amd/vulkan/radv_pipeline.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index a2a30077219..c5cc3a02eb4 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -5519,6 +5519,9 @@ radv_CreateComputePipelines(VkDevice _device, 
VkPipelineCache pipelineCache, uin
 static uint32_t
 radv_get_executable_count(struct radv_pipeline *pipeline)
 {
+   if (pipeline->type == RADV_PIPELINE_RAY_TRACING)
+      return 1;
+
    uint32_t ret = 0;
    for (int i = 0; i < MESA_VULKAN_SHADER_STAGES; ++i) {
       if (!pipeline->shaders[i])
@@ -5538,6 +5541,11 @@ static struct radv_shader *
 radv_get_shader_from_executable_index(struct radv_pipeline *pipeline, int 
index,
                                       gl_shader_stage *stage)
 {
+   if (pipeline->type == RADV_PIPELINE_RAY_TRACING) {
+      *stage = MESA_SHADER_RAYGEN;
+      return pipeline->shaders[*stage];
+   }
+
    for (int i = 0; i < MESA_VULKAN_SHADER_STAGES; ++i) {
       if (!pipeline->shaders[i])
          continue;

Reply via email to