From 69304052e3adce35cd89d7d8d1eddec3cc35282e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 17 Aug 2020 16:08:02 -0400 Subject: [PATCH] zink: add helper function for getting pipeline stage from shader stage Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/gallium/drivers/zink/zink_context.c | 21 +++++++++++++++++++++ src/gallium/drivers/zink/zink_context.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 7f1f790..02e1bc5 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -1153,6 +1153,27 @@ zink_resource_barrier(VkCommandBuffer cmdbuf, struct zink_resource *res, } +VkPipelineStageFlags +zink_pipeline_flags_from_stage(VkShaderStageFlagBits stage) +{ + switch (stage) { + case VK_SHADER_STAGE_VERTEX_BIT: + return VK_PIPELINE_STAGE_VERTEX_SHADER_BIT; + case VK_SHADER_STAGE_FRAGMENT_BIT: + return VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + case VK_SHADER_STAGE_GEOMETRY_BIT: + return VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT; + case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: + return VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT; + case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: + return VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT; + case VK_SHADER_STAGE_COMPUTE_BIT: + return VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; + default: + unreachable("unknown shader stage bit"); + } +} + static VkPipelineStageFlags pipeline_access_stage(VkAccessFlags flags) { diff --git a/src/gallium/drivers/zink/zink_context.h b/src/gallium/drivers/zink/zink_context.h index 97bdbf8..d228fce 100644 --- a/src/gallium/drivers/zink/zink_context.h +++ b/src/gallium/drivers/zink/zink_context.h @@ -225,6 +225,8 @@ zink_resource_barrier(VkCommandBuffer cmdbuf, struct zink_resource *res, zink_begin_render_pass(struct zink_context *ctx, struct zink_batch *batch); +VkPipelineStageFlags +zink_pipeline_flags_from_stage(VkShaderStageFlagBits stage); VkShaderStageFlagBits zink_shader_stage(enum pipe_shader_type type); -- 2.7.4