if (create_feedback) {
*create_feedback->pPipelineCreationFeedback = pipeline_feedback;
- assert(info->stageCount == create_feedback->pipelineStageCreationFeedbackCount);
- for (uint32_t i = 0; i < info->stageCount; i++) {
+ uint32_t stage_count = create_feedback->pipelineStageCreationFeedbackCount;
+ assert(stage_count == 0 || info->stageCount == stage_count);
+ for (uint32_t i = 0; i < stage_count; i++) {
gl_shader_stage s = vk_to_mesa_shader_stage(info->pStages[i].stage);
create_feedback->pPipelineStageCreationFeedbacks[i] = stages[s].feedback;
}
if (create_feedback) {
*create_feedback->pPipelineCreationFeedback = pipeline_feedback;
- assert(create_feedback->pipelineStageCreationFeedbackCount == 1);
- create_feedback->pPipelineStageCreationFeedbacks[0] = stage.feedback;
+ if (create_feedback->pipelineStageCreationFeedbackCount) {
+ assert(create_feedback->pipelineStageCreationFeedbackCount == 1);
+ create_feedback->pPipelineStageCreationFeedbacks[0] = stage.feedback;
+ }
}
pipeline->cs = bin;