radv: ignore shader stages that don't need to be imported with GPL
Fixes an assertion with vkoverhead. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18869>
This commit is contained in:

committed by
Marge Bot

parent
bc0ff36885
commit
c8765c5244
@@ -1522,6 +1522,25 @@ radv_get_attrib_stride(const VkPipelineVertexInputStateCreateInfo *vi, uint32_t
|
||||
VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT | \
|
||||
VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT)
|
||||
|
||||
static VkGraphicsPipelineLibraryFlagBitsEXT
|
||||
shader_stage_to_pipeline_library_flags(VkShaderStageFlagBits stage)
|
||||
{
|
||||
assert(util_bitcount(stage) == 1);
|
||||
switch (stage) {
|
||||
case VK_SHADER_STAGE_VERTEX_BIT:
|
||||
case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
|
||||
case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
|
||||
case VK_SHADER_STAGE_GEOMETRY_BIT:
|
||||
case VK_SHADER_STAGE_TASK_BIT_EXT:
|
||||
case VK_SHADER_STAGE_MESH_BIT_EXT:
|
||||
return VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT;
|
||||
case VK_SHADER_STAGE_FRAGMENT_BIT:
|
||||
return VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT;
|
||||
default:
|
||||
unreachable("Invalid shader stage");
|
||||
}
|
||||
}
|
||||
|
||||
static VkResult
|
||||
radv_pipeline_import_graphics_info(struct radv_graphics_pipeline *pipeline,
|
||||
struct vk_graphics_pipeline_state *state,
|
||||
@@ -1546,6 +1565,10 @@ radv_pipeline_import_graphics_info(struct radv_graphics_pipeline *pipeline,
|
||||
for (uint32_t i = 0; i < pCreateInfo->stageCount; i++) {
|
||||
const VkPipelineShaderStageCreateInfo *sinfo = &pCreateInfo->pStages[i];
|
||||
|
||||
/* Ignore shader stages that don't need to be imported. */
|
||||
if (!(shader_stage_to_pipeline_library_flags(sinfo->stage) & lib_flags))
|
||||
continue;
|
||||
|
||||
pipeline->active_stages |= sinfo->stage;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user