Restore the default pipeline layout creation flag
authorPiers Daniell <pdaniell@nvidia.com>
Tue, 5 Apr 2022 19:14:42 +0000 (13:14 -0600)
committerMatthew Netsch <mnetsch@qti.qualcomm.com>
Fri, 8 Apr 2022 19:57:10 +0000 (19:57 +0000)
Setting the VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT flag
in the core framework makePipelineLayout() function means that all
tests, even tests that aren't testing VK_EXT_graphics_pipeline_library,
are creating pipeline layouts optimized for independent
partial pipelines.

This flag should only be set when actually testing that feature
since it can be less optimal than the regular pipeline layout,
and is not the default all applications currently use.

This CL restores the default flag and updates the tests that
need it to override the default flag.

Affects:

dEQP-VK.*
dEQP-VK.pipeline.pipeline_library.graphics_library.*

Components: Vulkan

VK-GL-CTS issue: 3609

Change-Id: Iabc8643707f03878426c9bbe87bc0c9ee856bfb3

external/vulkancts/framework/vulkan/vkObjUtil.cpp
external/vulkancts/framework/vulkan/vkObjUtil.hpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineLibraryTests.cpp

index ec0a082..154a8f8 100644 (file)
@@ -711,16 +711,17 @@ Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&                                                         vk,
        return vk::makePipelineLayout(vk, device, static_cast<deUint32>(descriptorSetLayoutsUnWrapped.size()), descriptorSetLayoutsUnWrapped.data());
 }
 
-Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&              vk,
-                                                                                  const VkDevice                               device,
-                                                                                  const deUint32                               setLayoutCount,
-                                                                                  const VkDescriptorSetLayout* descriptorSetLayout)
+Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&                              vk,
+                                                                                  const VkDevice                                               device,
+                                                                                  const deUint32                                               setLayoutCount,
+                                                                                  const VkDescriptorSetLayout*                 descriptorSetLayout,
+                                                                                  const VkPipelineLayoutCreateFlags    flags)
 {
        const VkPipelineLayoutCreateInfo pipelineLayoutParams =
        {
                VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,          // VkStructureType                                      sType;
                DE_NULL,                                                                                        // const void*                                          pNext;
-               VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,     // VkPipelineLayoutCreateFlags          flags;
+               flags,                                                                                          // VkPipelineLayoutCreateFlags          flags;
                setLayoutCount,                                                                         // deUint32                                                     setLayoutCount;
                descriptorSetLayout,                                                            // const VkDescriptorSetLayout*         pSetLayouts;
                0u,                                                                                                     // deUint32                                                     pushConstantRangeCount;
@@ -730,18 +731,19 @@ Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&         vk,
        return createPipelineLayout(vk, device, &pipelineLayoutParams);
 }
 
-Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&              vk,
-                                                                                  const VkDevice                               device,
-                                                                                  const deUint32                               setLayoutCount,
-                                                                                  const VkDescriptorSetLayout* descriptorSetLayout,
-                                                                                  const deUint32               pushConstantRangeCount,
-                                                                                  const VkPushConstantRange*   pPushConstantRanges)
+Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&                              vk,
+                                                                                  const VkDevice                                               device,
+                                                                                  const deUint32                                               setLayoutCount,
+                                                                                  const VkDescriptorSetLayout*                 descriptorSetLayout,
+                                                                                  const deUint32                                               pushConstantRangeCount,
+                                                                                  const VkPushConstantRange*                   pPushConstantRanges,
+                                                                                  const VkPipelineLayoutCreateFlags    flags)
 {
        const VkPipelineLayoutCreateInfo pipelineLayoutParams =
        {
                VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,          // VkStructureType                                      sType;
                DE_NULL,                                                                                        // const void*                                          pNext;
-               VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,     // VkPipelineLayoutCreateFlags          flags;
+               flags,                                                                                          // VkPipelineLayoutCreateFlags          flags;
                setLayoutCount,                                                                         // deUint32                                                     setLayoutCount;
                descriptorSetLayout,                                                            // const VkDescriptorSetLayout*         pSetLayouts;
                pushConstantRangeCount,                                                         // deUint32                                                     pushConstantRangeCount;
index 895949d..f58027f 100644 (file)
@@ -148,17 +148,19 @@ Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&                                                         vk,
                                                                                   const VkDevice                                                                               device,
                                                                                   const std::vector<vk::Move<VkDescriptorSetLayout>>   &descriptorSetLayouts);
 
-Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&              vk,
-                                                                                  const VkDevice                               device,
-                                                                                  const deUint32                               setLayoutCount,
-                                                                                  const VkDescriptorSetLayout* descriptorSetLayout);
-
-Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&              vk,
-                                                                                  const VkDevice                               device,
-                                                                                  const deUint32                               setLayoutCount,
-                                                                                  const VkDescriptorSetLayout* descriptorSetLayout,
-                                                                                  const deUint32               pushConstantRangeCount,
-                                                                                  const VkPushConstantRange*   pPushConstantRanges);
+Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&                              vk,
+                                                                                  const VkDevice                                               device,
+                                                                                  const deUint32                                               setLayoutCount,
+                                                                                  const VkDescriptorSetLayout*                 descriptorSetLayout,
+                                                                                  const VkPipelineLayoutCreateFlags    flags = 0u);
+
+Move<VkPipelineLayout> makePipelineLayout (const DeviceInterface&                              vk,
+                                                                                  const VkDevice                                               device,
+                                                                                  const deUint32                                               setLayoutCount,
+                                                                                  const VkDescriptorSetLayout*                 descriptorSetLayout,
+                                                                                  const deUint32                                               pushConstantRangeCount,
+                                                                                  const VkPushConstantRange*                   pPushConstantRanges,
+                                                                                  const VkPipelineLayoutCreateFlags    flags = 0u);
 
 Move<VkFramebuffer> makeFramebuffer (const DeviceInterface&    vk,
                                                                         const VkDevice                 device,
index d7de1a7..584fc47 100644 (file)
@@ -836,9 +836,9 @@ bool PipelineLibraryTestInstance::runTest (RuntimePipelineTreeConfiguration&        run
        VkDescriptorSetLayout vecLayoutFrag[2] = { *descriptorSetLayoutBlank, *descriptorSetLayoutFrag };
        VkDescriptorSetLayout vecLayoutBoth[2] = { *descriptorSetLayoutVert, *descriptorSetLayoutFrag };
 
-       const Move<VkPipelineLayout>                    pipelineLayoutVert              = makePipelineLayout(vk, device, 2, vecLayoutVert);
-       const Move<VkPipelineLayout>                    pipelineLayoutFrag              = makePipelineLayout(vk, device, 2, vecLayoutFrag);
-       const Move<VkPipelineLayout>                    pipelineLayoutSame              = makePipelineLayout(vk, device, 2, vecLayoutBoth);
+       const Move<VkPipelineLayout>                    pipelineLayoutVert              = makePipelineLayout(vk, device, 2, vecLayoutVert, VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT);
+       const Move<VkPipelineLayout>                    pipelineLayoutFrag              = makePipelineLayout(vk, device, 2, vecLayoutFrag, VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT);
+       const Move<VkPipelineLayout>                    pipelineLayoutSame              = makePipelineLayout(vk, device, 2, vecLayoutBoth, VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT);
        const Move<VkCommandPool>                               cmdPool                                 = createCommandPool(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex);
        const Move<VkCommandBuffer>                             cmdBuffer                               = allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
        Move<VkPipeline>                                                rootPipeline;