From c264b1b6aba09e94a804e25785c081b2003f86de Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 18 Mar 2022 09:48:16 -0400 Subject: [PATCH] lavapipe: save pipeline stages that push constants are active on Reviewed-by: Dave Airlie Part-of: --- src/gallium/frontends/lavapipe/lvp_descriptor_set.c | 1 + src/gallium/frontends/lavapipe/lvp_private.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/gallium/frontends/lavapipe/lvp_descriptor_set.c b/src/gallium/frontends/lavapipe/lvp_descriptor_set.c index b09b9abbd04..175a9262bf0 100644 --- a/src/gallium/frontends/lavapipe/lvp_descriptor_set.c +++ b/src/gallium/frontends/lavapipe/lvp_descriptor_set.c @@ -301,6 +301,7 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_CreatePipelineLayout( const VkPushConstantRange *range = pCreateInfo->pPushConstantRanges + i; layout->push_constant_size = MAX2(layout->push_constant_size, range->offset + range->size); + layout->push_constant_stages |= (range->stageFlags & BITFIELD_MASK(MESA_SHADER_STAGES)); } layout->push_constant_size = align(layout->push_constant_size, 16); *pPipelineLayout = lvp_pipeline_layout_to_handle(layout); diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h index 2efc496c9d8..61ddfa70b5f 100644 --- a/src/gallium/frontends/lavapipe/lvp_private.h +++ b/src/gallium/frontends/lavapipe/lvp_private.h @@ -459,6 +459,7 @@ struct lvp_pipeline_layout { uint32_t num_sets; uint32_t push_constant_size; + VkShaderStageFlags push_constant_stages; struct { bool has_dynamic_offsets; } stage[MESA_SHADER_STAGES];