diff --git a/src/gallium/drivers/zink/zink_pipeline.c b/src/gallium/drivers/zink/zink_pipeline.c index 21d93ded825..0c5257631a0 100644 --- a/src/gallium/drivers/zink/zink_pipeline.c +++ b/src/gallium/drivers/zink/zink_pipeline.c @@ -54,7 +54,7 @@ zink_create_gfx_pipeline(struct zink_screen *screen, { struct zink_rasterizer_hw_state *hw_rast_state = (void*)state; VkPipelineVertexInputStateCreateInfo vertex_input_state; - if (!screen->info.have_EXT_vertex_input_dynamic_state || !state->element_state->num_attribs) { + if (!screen->info.have_EXT_vertex_input_dynamic_state || !state->element_state->num_attribs || !state->uses_dynamic_stride) { memset(&vertex_input_state, 0, sizeof(vertex_input_state)); vertex_input_state.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; vertex_input_state.pVertexBindingDescriptions = state->element_state->b.bindings; @@ -324,7 +324,7 @@ zink_create_gfx_pipeline(struct zink_screen *screen, pci.renderPass = state->render_pass->render_pass; else pci.pNext = &state->rendering_info; - if (!screen->info.have_EXT_vertex_input_dynamic_state || !state->element_state->num_attribs) + if (!screen->info.have_EXT_vertex_input_dynamic_state || !state->element_state->num_attribs || !state->uses_dynamic_stride) pci.pVertexInputState = &vertex_input_state; pci.pInputAssemblyState = &primitive_state; pci.pRasterizationState = &rast_state;