radv: Use _mesa_shader_stage_to_string for executable name

We can not use it for all stages because RADV has some special stages
and shader-db doesn't handle all stages.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23524>
This commit is contained in:
Konstantin Seurer
2023-06-08 16:07:41 +02:00
committed by Marge Bot
parent 334a20ae28
commit ebe4e337fd

View File

@@ -786,85 +786,71 @@ radv_GetPipelineExecutablePropertiesKHR(VkDevice _device, const VkPipelineInfoKH
pProperties[executable_idx].stages = mesa_to_vk_shader_stage(stage); pProperties[executable_idx].stages = mesa_to_vk_shader_stage(stage);
const char *name = NULL; const char *name = _mesa_shader_stage_to_string(stage);
const char *description = NULL; const char *description = NULL;
switch (stage) { switch (stage) {
case MESA_SHADER_VERTEX: case MESA_SHADER_VERTEX:
name = "Vertex Shader";
description = "Vulkan Vertex Shader"; description = "Vulkan Vertex Shader";
break; break;
case MESA_SHADER_TESS_CTRL: case MESA_SHADER_TESS_CTRL:
if (!pipeline->shaders[MESA_SHADER_VERTEX]) { if (!pipeline->shaders[MESA_SHADER_VERTEX]) {
pProperties[executable_idx].stages |= VK_SHADER_STAGE_VERTEX_BIT; pProperties[executable_idx].stages |= VK_SHADER_STAGE_VERTEX_BIT;
name = "Vertex + Tessellation Control Shaders"; name = "vertex + tessellation control";
description = "Combined Vulkan Vertex and Tessellation Control Shaders"; description = "Combined Vulkan Vertex and Tessellation Control Shaders";
} else { } else {
name = "Tessellation Control Shader";
description = "Vulkan Tessellation Control Shader"; description = "Vulkan Tessellation Control Shader";
} }
break; break;
case MESA_SHADER_TESS_EVAL: case MESA_SHADER_TESS_EVAL:
name = "Tessellation Evaluation Shader";
description = "Vulkan Tessellation Evaluation Shader"; description = "Vulkan Tessellation Evaluation Shader";
break; break;
case MESA_SHADER_GEOMETRY: case MESA_SHADER_GEOMETRY:
if (shader->info.type == RADV_SHADER_TYPE_GS_COPY) { if (shader->info.type == RADV_SHADER_TYPE_GS_COPY) {
name = "GS Copy Shader"; name = "geometry copy";
description = "Extra shader stage that loads the GS output ringbuffer into the rasterizer"; description = "Extra shader stage that loads the GS output ringbuffer into the rasterizer";
break; break;
} }
if (pipeline->shaders[MESA_SHADER_TESS_CTRL] && !pipeline->shaders[MESA_SHADER_TESS_EVAL]) { if (pipeline->shaders[MESA_SHADER_TESS_CTRL] && !pipeline->shaders[MESA_SHADER_TESS_EVAL]) {
pProperties[executable_idx].stages |= VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT; pProperties[executable_idx].stages |= VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT;
name = "Tessellation Evaluation + Geometry Shaders"; name = "tessellation evaluation + geometry";
description = "Combined Vulkan Tessellation Evaluation and Geometry Shaders"; description = "Combined Vulkan Tessellation Evaluation and Geometry Shaders";
} else if (!pipeline->shaders[MESA_SHADER_TESS_CTRL] && !pipeline->shaders[MESA_SHADER_VERTEX]) { } else if (!pipeline->shaders[MESA_SHADER_TESS_CTRL] && !pipeline->shaders[MESA_SHADER_VERTEX]) {
pProperties[executable_idx].stages |= VK_SHADER_STAGE_VERTEX_BIT; pProperties[executable_idx].stages |= VK_SHADER_STAGE_VERTEX_BIT;
name = "Vertex + Geometry Shader"; name = "vertex + geometry";
description = "Combined Vulkan Vertex and Geometry Shaders"; description = "Combined Vulkan Vertex and Geometry Shaders";
} else { } else {
name = "Geometry Shader";
description = "Vulkan Geometry Shader"; description = "Vulkan Geometry Shader";
} }
break; break;
case MESA_SHADER_FRAGMENT: case MESA_SHADER_FRAGMENT:
name = "Fragment Shader";
description = "Vulkan Fragment Shader"; description = "Vulkan Fragment Shader";
break; break;
case MESA_SHADER_COMPUTE: case MESA_SHADER_COMPUTE:
name = "Compute Shader";
description = "Vulkan Compute Shader"; description = "Vulkan Compute Shader";
break; break;
case MESA_SHADER_MESH: case MESA_SHADER_MESH:
name = "Mesh Shader";
description = "Vulkan Mesh Shader"; description = "Vulkan Mesh Shader";
break; break;
case MESA_SHADER_TASK: case MESA_SHADER_TASK:
name = "Task Shader";
description = "Vulkan Task Shader"; description = "Vulkan Task Shader";
break; break;
case MESA_SHADER_RAYGEN: case MESA_SHADER_RAYGEN:
name = "Ray Generation Shader";
description = "Vulkan Ray Generation Shader"; description = "Vulkan Ray Generation Shader";
break; break;
case MESA_SHADER_ANY_HIT: case MESA_SHADER_ANY_HIT:
name = "Any-Hit Shader";
description = "Vulkan Any-Hit Shader"; description = "Vulkan Any-Hit Shader";
break; break;
case MESA_SHADER_CLOSEST_HIT: case MESA_SHADER_CLOSEST_HIT:
name = "Closest-Hit Shader";
description = "Vulkan Closest-Hit Shader"; description = "Vulkan Closest-Hit Shader";
break; break;
case MESA_SHADER_MISS: case MESA_SHADER_MISS:
name = "Miss Shader";
description = "Vulkan Miss Shader"; description = "Vulkan Miss Shader";
break; break;
case MESA_SHADER_INTERSECTION: case MESA_SHADER_INTERSECTION:
name = "Intersection Shader";
description = "Shader responsible for traversing the acceleration structure"; description = "Shader responsible for traversing the acceleration structure";
break; break;
case MESA_SHADER_CALLABLE: case MESA_SHADER_CALLABLE:
name = "Callable Shader";
description = "Vulkan Callable Shader"; description = "Vulkan Callable Shader";
break; break;
default: default: