radv/rt: change RT main shader to MESA_SHADER_INTERSECTION
authorDaniel Schürmann <daniel@schuermann.dev>
Tue, 9 May 2023 10:06:46 +0000 (12:06 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 8 Jun 2023 00:37:03 +0000 (00:37 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>

src/amd/vulkan/radv_cmd_buffer.c
src/amd/vulkan/radv_pipeline.c
src/amd/vulkan/radv_pipeline_rt.c

index da37f44..40fbc9a 100644 (file)
@@ -6464,7 +6464,7 @@ radv_emit_compute_pipeline(struct radv_cmd_buffer *cmd_buffer,
    } else {
       radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs, cmd_buffer->state.rt_prolog->bo);
       radv_cs_add_buffer(cmd_buffer->device->ws, cmd_buffer->cs,
-                         cmd_buffer->state.shaders[MESA_SHADER_RAYGEN]->bo);
+                         cmd_buffer->state.shaders[MESA_SHADER_INTERSECTION]->bo);
    }
 
    if (unlikely(cmd_buffer->device->trace_bo))
@@ -6719,7 +6719,7 @@ radv_bind_shader(struct radv_cmd_buffer *cmd_buffer, struct radv_shader *shader,
       radv_bind_task_shader(cmd_buffer, shader);
       break;
    case MESA_SHADER_COMPUTE:
-   case MESA_SHADER_RAYGEN:
+   case MESA_SHADER_INTERSECTION:
       /* no-op */
       break;
    default:
@@ -6762,8 +6762,8 @@ radv_CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipeline
          return;
       radv_mark_descriptor_sets_dirty(cmd_buffer, pipelineBindPoint);
 
-      radv_bind_shader(cmd_buffer, rt_pipeline->base.base.shaders[MESA_SHADER_RAYGEN],
-                       MESA_SHADER_RAYGEN);
+      radv_bind_shader(cmd_buffer, rt_pipeline->base.base.shaders[MESA_SHADER_INTERSECTION],
+                       MESA_SHADER_INTERSECTION);
       cmd_buffer->state.rt_prolog = rt_pipeline->base.base.shaders[MESA_SHADER_COMPUTE];
 
       cmd_buffer->state.rt_pipeline = rt_pipeline;
@@ -10132,9 +10132,9 @@ radv_trace_rays(struct radv_cmd_buffer *cmd_buffer, const VkTraceRaysIndirectCom
    const struct radv_userdata_info *shader_loc =
       radv_get_user_sgpr(rt_prolog, AC_UD_CS_TRAVERSAL_SHADER_ADDR);
    if (shader_loc->sgpr_idx != -1) {
-      uint64_t raygen_va = cmd_buffer->state.shaders[MESA_SHADER_RAYGEN]->va;
+      uint64_t traversal_va = cmd_buffer->state.shaders[MESA_SHADER_INTERSECTION]->va;
       radv_emit_shader_pointer(cmd_buffer->device, cmd_buffer->cs,
-                               base_reg + shader_loc->sgpr_idx * 4, raygen_va, true);
+                               base_reg + shader_loc->sgpr_idx * 4, traversal_va, true);
    }
 
    assert(cmd_buffer->cs->cdw <= cdw_max);
index 20e0e27..531e527 100644 (file)
@@ -738,7 +738,7 @@ 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;
+      *stage = MESA_SHADER_INTERSECTION;
       return pipeline->shaders[*stage];
    }
 
index c1d710c..a1288f7 100644 (file)
@@ -442,7 +442,7 @@ radv_rt_pipeline_compile(struct radv_ray_tracing_pipeline *pipeline,
    VkPipelineShaderStageCreateInfo stage = {
       .sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
       .pNext = NULL,
-      .stage = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
+      .stage = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
       .module = vk_shader_module_to_handle(&module),
       .pName = "main",
    };
@@ -684,7 +684,7 @@ radv_rt_pipeline_create(VkDevice _device, VkPipelineCache _cache,
    pipeline->base.base.shaders[MESA_SHADER_COMPUTE] = radv_create_rt_prolog(device);
 
    combine_config(&pipeline->base.base.shaders[MESA_SHADER_COMPUTE]->config,
-                  &pipeline->base.base.shaders[MESA_SHADER_RAYGEN]->config);
+                  &pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]->config);
 
    postprocess_rt_config(&pipeline->base.base.shaders[MESA_SHADER_COMPUTE]->config,
                          device->physical_device->rad_info.gfx_level,
@@ -716,8 +716,8 @@ radv_destroy_ray_tracing_pipeline(struct radv_device *device,
 
    if (pipeline->base.base.shaders[MESA_SHADER_COMPUTE])
       radv_shader_unref(device, pipeline->base.base.shaders[MESA_SHADER_COMPUTE]);
-   if (pipeline->base.base.shaders[MESA_SHADER_RAYGEN])
-      radv_shader_unref(device, pipeline->base.base.shaders[MESA_SHADER_RAYGEN]);
+   if (pipeline->base.base.shaders[MESA_SHADER_INTERSECTION])
+      radv_shader_unref(device, pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]);
 }
 
 VKAPI_ATTR VkResult VKAPI_CALL