diff --git a/src/gallium/frontends/lavapipe/lvp_descriptor_set.c b/src/gallium/frontends/lavapipe/lvp_descriptor_set.c index a1680cb401f..4482f25c196 100644 --- a/src/gallium/frontends/lavapipe/lvp_descriptor_set.c +++ b/src/gallium/frontends/lavapipe/lvp_descriptor_set.c @@ -223,18 +223,13 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_CreateDescriptorSetLayout( return VK_SUCCESS; } -VKAPI_ATTR VkResult VKAPI_CALL lvp_CreatePipelineLayout( - VkDevice _device, - const VkPipelineLayoutCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkPipelineLayout* pPipelineLayout) +struct lvp_pipeline_layout * +lvp_pipeline_layout_create(struct lvp_device *device, + const VkPipelineLayoutCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator) { - LVP_FROM_HANDLE(lvp_device, device, _device); - struct lvp_pipeline_layout *layout; - - layout = vk_pipeline_layout_zalloc(&device->vk, sizeof(*layout), - pCreateInfo); - + struct lvp_pipeline_layout *layout = vk_pipeline_layout_zalloc(&device->vk, sizeof(*layout), + pCreateInfo); for (uint32_t set = 0; set < layout->vk.set_count; set++) { if (layout->vk.set_layouts[set] == NULL) continue; @@ -299,6 +294,17 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_CreatePipelineLayout( layout->push_constant_stages |= (range->stageFlags & BITFIELD_MASK(MESA_SHADER_STAGES)); } layout->push_constant_size = align(layout->push_constant_size, 16); + return layout; +} + +VKAPI_ATTR VkResult VKAPI_CALL lvp_CreatePipelineLayout( + VkDevice _device, + const VkPipelineLayoutCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPipelineLayout* pPipelineLayout) +{ + LVP_FROM_HANDLE(lvp_device, device, _device); + struct lvp_pipeline_layout *layout = lvp_pipeline_layout_create(device, pCreateInfo, pAllocator); *pPipelineLayout = lvp_pipeline_layout_to_handle(layout); return VK_SUCCESS; diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h index c0b32338b27..8cf0c3fc402 100644 --- a/src/gallium/frontends/lavapipe/lvp_private.h +++ b/src/gallium/frontends/lavapipe/lvp_private.h @@ -399,6 +399,12 @@ struct lvp_pipeline_layout { } stage[MESA_SHADER_STAGES]; }; + +struct lvp_pipeline_layout * +lvp_pipeline_layout_create(struct lvp_device *device, + const VkPipelineLayoutCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator); + struct lvp_access_info { uint64_t images_read; uint64_t images_written;