diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c index 9a1c52770da..cc3519d65e1 100644 --- a/src/gallium/drivers/zink/zink_descriptors.c +++ b/src/gallium/drivers/zink/zink_descriptors.c @@ -550,7 +550,7 @@ zink_descriptor_program_init(struct zink_context *ctx, struct zink_program *pg) } pg->dd.binding_usage = has_bindings; if (!has_bindings && !push_count && !pg->dd.bindless) { - pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute); + pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute, 0); if (pg->layout) pg->compat_id = _mesa_hash_data(pg->dsl, pg->num_dsl * sizeof(pg->dsl[0])); return !!pg->layout; @@ -618,7 +618,7 @@ zink_descriptor_program_init(struct zink_context *ctx, struct zink_program *pg) pg->dd.binding_usage |= BITFIELD_MASK(ZINK_DESCRIPTOR_BASE_TYPES); } - pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute); + pg->layout = zink_pipeline_layout_create(screen, pg->dsl, pg->num_dsl, pg->is_compute, 0); if (!pg->layout) return false; pg->compat_id = _mesa_hash_data(pg->dsl, pg->num_dsl * sizeof(pg->dsl[0])); diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 98a3ddeff41..4f7d8d767b1 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -819,10 +819,11 @@ zink_update_compute_program(struct zink_context *ctx) } VkPipelineLayout -zink_pipeline_layout_create(struct zink_screen *screen, VkDescriptorSetLayout *dsl, unsigned num_dsl, bool is_compute) +zink_pipeline_layout_create(struct zink_screen *screen, VkDescriptorSetLayout *dsl, unsigned num_dsl, bool is_compute, VkPipelineLayoutCreateFlags flags) { VkPipelineLayoutCreateInfo plci = {0}; plci.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; + plci.flags = flags; plci.pSetLayouts = dsl; plci.setLayoutCount = num_dsl; diff --git a/src/gallium/drivers/zink/zink_program.h b/src/gallium/drivers/zink/zink_program.h index a154b9e08b4..342f06c3463 100644 --- a/src/gallium/drivers/zink/zink_program.h +++ b/src/gallium/drivers/zink/zink_program.h @@ -223,7 +223,7 @@ zink_program_reference(struct zink_screen *screen, } VkPipelineLayout -zink_pipeline_layout_create(struct zink_screen *screen, VkDescriptorSetLayout *dsl, unsigned num_dsl, bool is_compute); +zink_pipeline_layout_create(struct zink_screen *screen, VkDescriptorSetLayout *dsl, unsigned num_dsl, bool is_compute, VkPipelineLayoutCreateFlags flags); void zink_program_update_compute_pipeline_state(struct zink_context *ctx, struct zink_compute_program *comp, const uint block[3]); diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 37a7e2cb0b5..144fe4617fd 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -2596,7 +2596,7 @@ init_layouts(struct zink_screen *screen) } } - screen->gfx_push_constant_layout = zink_pipeline_layout_create(screen, NULL, 0, false); + screen->gfx_push_constant_layout = zink_pipeline_layout_create(screen, NULL, 0, false, 0); return !!screen->gfx_push_constant_layout; }