zink: add helper function for getting pipeline stage from shader stage

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8945>
This commit is contained in:
Mike Blumenkrantz 2020-08-17 16:08:02 -04:00 committed by Marge Bot
parent cf6794eb8e
commit 69304052e3
2 changed files with 23 additions and 0 deletions

View File

@ -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)
{

View File

@ -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);