mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 20:18:12 +02:00
vulkan/runtime: match the spec when taking pipeline subsets.
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21006>
(cherry picked from commit c489b3eadb)
This commit is contained in:
parent
8459995eef
commit
302186957b
2 changed files with 20 additions and 5 deletions
|
|
@ -4207,7 +4207,7 @@
|
|||
"description": "vulkan/runtime: match the spec when taking pipeline subsets.",
|
||||
"nominated": false,
|
||||
"nomination_type": null,
|
||||
"resolution": 4,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1156,10 +1156,25 @@ vk_graphics_pipeline_state_fill(const struct vk_device *device,
|
|||
*/
|
||||
|
||||
VkGraphicsPipelineLibraryFlagsEXT lib;
|
||||
if (info->flags & VK_PIPELINE_CREATE_LIBRARY_BIT_KHR) {
|
||||
const VkGraphicsPipelineLibraryCreateInfoEXT *gfx_lib_info =
|
||||
vk_find_struct_const(info->pNext, GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT);
|
||||
lib = gfx_lib_info->flags;
|
||||
const VkGraphicsPipelineLibraryCreateInfoEXT *gpl_info =
|
||||
vk_find_struct_const(info->pNext, GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT);
|
||||
const VkPipelineLibraryCreateInfoKHR *lib_info =
|
||||
vk_find_struct_const(info->pNext, PIPELINE_LIBRARY_CREATE_INFO_KHR);
|
||||
|
||||
if (gpl_info) {
|
||||
lib = gpl_info->flags;
|
||||
} else if ((lib_info && lib_info->libraryCount > 0) ||
|
||||
(info->flags & VK_PIPELINE_CREATE_LIBRARY_BIT_KHR)) {
|
||||
/*
|
||||
* From the Vulkan 1.3.210 spec:
|
||||
* "If this structure is omitted, and either VkGraphicsPipelineCreateInfo::flags
|
||||
* includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR or the
|
||||
* VkGraphicsPipelineCreateInfo::pNext chain includes a
|
||||
* VkPipelineLibraryCreateInfoKHR structure with a libraryCount greater than 0,
|
||||
* it is as if flags is 0. Otherwise if this structure is omitted, it is as if
|
||||
* flags includes all possible subsets of the graphics pipeline."
|
||||
*/
|
||||
lib = 0;
|
||||
} else {
|
||||
/* We're building a complete pipeline. From the Vulkan 1.3.218 spec:
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue