From 84770a90bb3d32a9c2f71cd299edeec1cf702f37 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Mon, 20 Jun 2022 03:33:32 -0700 Subject: [PATCH] dzn: Use vk_to_mesa_shader_stage() Use vk_to_mesa_shader_stage() to convert a VkShaderStageFlagBits into its gl_shader_stage counterpart. Reviewed-by: Jesse Natalie Part-of: --- src/microsoft/vulkan/dzn_pipeline.c | 36 ++++++++--------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/src/microsoft/vulkan/dzn_pipeline.c b/src/microsoft/vulkan/dzn_pipeline.c index 0852a954f05..63eeb451497 100644 --- a/src/microsoft/vulkan/dzn_pipeline.c +++ b/src/microsoft/vulkan/dzn_pipeline.c @@ -35,6 +35,7 @@ #include "vk_alloc.h" #include "vk_util.h" #include "vk_format.h" +#include "vk_pipeline.h" #include "util/u_debug.h" @@ -296,33 +297,16 @@ dzn_graphics_pipeline_compile_shaders(struct dzn_device *device, * order. */ for (uint32_t i = 0; i < info->stageCount; i++) { - gl_shader_stage stage; + gl_shader_stage stage = + vk_to_mesa_shader_stage(info->pStages[i].stage); - switch (info->pStages[i].stage) { - case VK_SHADER_STAGE_VERTEX_BIT: - stage = MESA_SHADER_VERTEX; - if (yz_flip_stage < stage) - yz_flip_stage = stage; - break; - case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: - stage = MESA_SHADER_TESS_CTRL; - break; - case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: - stage = MESA_SHADER_TESS_EVAL; - if (yz_flip_stage < stage) - yz_flip_stage = stage; - break; - case VK_SHADER_STAGE_GEOMETRY_BIT: - stage = MESA_SHADER_GEOMETRY; - if (yz_flip_stage < stage) - yz_flip_stage = stage; - break; - case VK_SHADER_STAGE_FRAGMENT_BIT: - stage = MESA_SHADER_FRAGMENT; - break; - default: - unreachable("Unsupported stage"); - } + assert(stage <= MESA_SHADER_FRAGMENT); + + if ((stage == MESA_SHADER_VERTEX || + stage == MESA_SHADER_TESS_EVAL || + stage == MESA_SHADER_GEOMETRY) && + yz_flip_stage < stage) + yz_flip_stage = stage; if (stage == MESA_SHADER_FRAGMENT && info->pRasterizationState &&