Pass fragment shading rate info to pre rasterization shader state
authorRicardo Garcia <rgarcia@igalia.com>
Thu, 29 Sep 2022 12:34:49 +0000 (14:34 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Mon, 10 Oct 2022 16:03:59 +0000 (16:03 +0000)
Fragment shading rate info needs to be passed both as part of the
pre-rasterization shader state and as part of the fragment shader state
when creating pipelines, and it needs to be consistent in both cases.

The graphics pipeline library utilities were only passing that
information as part of the fragment shader state.

Affects:
dEQP-VK.fragment_shading_rate.*.misc_tests.*
dEQP-VK.fragment_shading_rate.*.basic.*
dEQP-VK.pipeline.*.mixed_attachment_samples.*
dEQP-VK.*.sample_locations_ext.*
dEQP-VK.pipeline.*.multisample_with_fragment_shading_rate.*

Components: Vulkan
VK-GL-CTS issue: 4006

Change-Id: Idebba54be2fe0a34a68aab1c5c9ba3d07affe47b

12 files changed:
external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.cpp
external/vulkancts/framework/vulkan/vkPipelineConstructionUtil.hpp
external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineMaxVaryingsTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleMixedAttachmentSamplesTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleSampleLocationsExtTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampledRenderToSingleSampledTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerBorderSwizzleTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineShaderModuleIdentifierTests.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp

index 3efed78..1a6595e 100644 (file)
@@ -303,7 +303,7 @@ struct GraphicsPipelineWrapper::InternalData
                        0u,                                                                                                                             // VkPipelineTessellationStateCreateFlags               flags
                        3u                                                                                                                              // deUint32                                                                             patchControlPoints
                }
-               , pFragmentShadingRateState             (DE_NULL)
+               , pFragmentShadingRateState             (nullptr)
                , pDynamicState                                 (DE_NULL)
                , useViewportState                              (DE_TRUE)
                , useDefaultRasterizationState  (DE_FALSE)
@@ -526,6 +526,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
                                                                                                                                                                   const VkShaderModule                                                         tessellationEvalShaderModule,
                                                                                                                                                                   const VkShaderModule                                                         geometryShaderModule,
                                                                                                                                                                   const VkSpecializationInfo                                           *specializationInfo,
+                                                                                                                                                                  VkPipelineFragmentShadingRateStateCreateInfoKHR*     fragmentShadingRateState,
                                                                                                                                                                   PipelineRenderingCreateInfoWrapper                           rendering,
                                                                                                                                                                   const VkPipelineCache                                                        partPipelineCache,
                                                                                                                                                                   PipelineCreationFeedbackCreateInfoWrapper            partCreationFeedback)
@@ -545,6 +546,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
                                                                                         specializationInfo,
                                                                                         specializationInfo,
                                                                                         specializationInfo,
+                                                                                        fragmentShadingRateState,
                                                                                         rendering,
                                                                                         partPipelineCache,
                                                                                         partCreationFeedback);
@@ -564,6 +566,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
                                                                                                                                                                        const VkSpecializationInfo*                                             tescSpecializationInfo,
                                                                                                                                                                        const VkSpecializationInfo*                                             teseSpecializationInfo,
                                                                                                                                                                        const VkSpecializationInfo*                                             geomSpecializationInfo,
+                                                                                                                                                                       VkPipelineFragmentShadingRateStateCreateInfoKHR*fragmentShadingRateState,
                                                                                                                                                                        PipelineRenderingCreateInfoWrapper                              rendering,
                                                                                                                                                                        const VkPipelineCache                                                   partPipelineCache,
                                                                                                                                                                        PipelineCreationFeedbackCreateInfoWrapper               partCreationFeedback)
@@ -586,6 +589,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
                                                                                         tescSpecializationInfo,
                                                                                         teseSpecializationInfo,
                                                                                         geomSpecializationInfo,
+                                                                                        fragmentShadingRateState,
                                                                                         rendering,
                                                                                         partPipelineCache,
                                                                                         partCreationFeedback);
@@ -609,6 +613,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
                                                                                                                                                                        const VkSpecializationInfo*                                                                     tescSpecializationInfo,
                                                                                                                                                                        const VkSpecializationInfo*                                                                     teseSpecializationInfo,
                                                                                                                                                                        const VkSpecializationInfo*                                                                     geomSpecializationInfo,
+                                                                                                                                                                       VkPipelineFragmentShadingRateStateCreateInfoKHR*                        fragmentShadingRateState,
                                                                                                                                                                        PipelineRenderingCreateInfoWrapper                                                      rendering,
                                                                                                                                                                        const VkPipelineCache                                                                           partPipelineCache,
                                                                                                                                                                        PipelineCreationFeedbackCreateInfoWrapper                                       partCreationFeedback)
@@ -628,6 +633,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
        DE_UNREF(geomShaderModuleId);
 
        m_internalData->setupState |= PSS_PRE_RASTERIZATION_SHADERS;
+       m_internalData->pFragmentShadingRateState = fragmentShadingRateState;
        m_internalData->pRenderingState.ptr = rendering.ptr;
 
        const bool hasTesc = (tessellationControlShaderModule != DE_NULL || tescShaderModuleId.ptr);
@@ -761,6 +767,7 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupPreRasterizationShaderSta
        {
                auto    libraryCreateInfo       = makeGraphicsPipelineLibraryCreateInfo(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT);
                void*   firstStructInChain      = reinterpret_cast<void*>(&libraryCreateInfo);
+               addToChain(&firstStructInChain, m_internalData->pFragmentShadingRateState);
                addToChain(&firstStructInChain, m_internalData->pRenderingState.ptr);
                addToChain(&firstStructInChain, partCreationFeedback.ptr);
 
@@ -796,7 +803,6 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupFragmentShaderState(const
                                                                                                                                                   const VkShaderModule                                                         fragmentShaderModule,
                                                                                                                                                   const VkPipelineDepthStencilStateCreateInfo*         depthStencilState,
                                                                                                                                                   const VkPipelineMultisampleStateCreateInfo*          multisampleState,
-                                                                                                                                                  VkPipelineFragmentShadingRateStateCreateInfoKHR*     fragmentShadingRateState,
                                                                                                                                                   const VkSpecializationInfo*                                          specializationInfo,
                                                                                                                                                   const VkPipelineCache                                                        partPipelineCache,
                                                                                                                                                   PipelineCreationFeedbackCreateInfoWrapper                            partCreationFeedback)
@@ -808,7 +814,6 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupFragmentShaderState(const
                                                                         PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
                                                                         depthStencilState,
                                                                         multisampleState,
-                                                                        fragmentShadingRateState,
                                                                         specializationInfo,
                                                                         partPipelineCache,
                                                                         partCreationFeedback);
@@ -821,7 +826,6 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupFragmentShaderState2(cons
                                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper            fragmentShaderModuleId,
                                                                                                                                                        const VkPipelineDepthStencilStateCreateInfo*                            depthStencilState,
                                                                                                                                                        const VkPipelineMultisampleStateCreateInfo*                                     multisampleState,
-                                                                                                                                                       VkPipelineFragmentShadingRateStateCreateInfoKHR*                        fragmentShadingRateState,
                                                                                                                                                        const VkSpecializationInfo*                                                                     specializationInfo,
                                                                                                                                                        const VkPipelineCache                                                                           partPipelineCache,
                                                                                                                                                        PipelineCreationFeedbackCreateInfoWrapper                                       partCreationFeedback)
@@ -841,7 +845,6 @@ GraphicsPipelineWrapper& GraphicsPipelineWrapper::setupFragmentShaderState2(cons
        DE_UNREF(fragmentShaderModuleId);
 
        m_internalData->setupState |= PSS_FRAGMENT_SHADER;
-       m_internalData->pFragmentShadingRateState = fragmentShadingRateState;
 
        const auto pDepthStencilState   = depthStencilState ? depthStencilState
                                                                                                                : (m_internalData->useDefaultDepthStencilState ? &defaultDepthStencilState : DE_NULL);
index 9783e7f..ff0d5bc 100644 (file)
@@ -59,7 +59,6 @@ template <typename T>
 class PointerWrapper
 {
 public:
-
        PointerWrapper(): ptr(DE_NULL)  {}
        PointerWrapper(T* p0) : ptr(p0) {}
        T* ptr;
@@ -69,10 +68,9 @@ template <typename T>
 class ConstPointerWrapper
 {
 public:
-
-        ConstPointerWrapper(): ptr(DE_NULL)  {}
+       ConstPointerWrapper(): ptr(DE_NULL)  {}
        ConstPointerWrapper(const T* p0) : ptr(p0) {}
-        const T* ptr;
+       const T* ptr;
 };
 
 #ifndef CTS_USES_VULKANSC
@@ -166,6 +164,7 @@ public:
                                                                                                                                         const VkShaderModule                                                           tessellationEvalShaderModule = DE_NULL,
                                                                                                                                         const VkShaderModule                                                           geometryShaderModule = DE_NULL,
                                                                                                                                         const VkSpecializationInfo*                                            specializationInfo = DE_NULL,
+                                                                                                                                        VkPipelineFragmentShadingRateStateCreateInfoKHR*       fragmentShadingRateState = nullptr,
                                                                                                                                         PipelineRenderingCreateInfoWrapper                                     rendering = PipelineRenderingCreateInfoWrapper(),
                                                                                                                                         const VkPipelineCache                                                          partPipelineCache = DE_NULL,
                                                                                                                                         PipelineCreationFeedbackCreateInfoWrapper                      partCreationFeedback = PipelineCreationFeedbackCreateInfoWrapper());
@@ -184,9 +183,10 @@ public:
                                                                                                                                         const VkSpecializationInfo*                                            tescSpecializationInfo = nullptr,
                                                                                                                                         const VkSpecializationInfo*                                            teseSpecializationInfo = nullptr,
                                                                                                                                         const VkSpecializationInfo*                                            geomSpecializationInfo = nullptr,
+                                                                                                                                        VkPipelineFragmentShadingRateStateCreateInfoKHR*       fragmentShadingRateState = nullptr,
                                                                                                                                         PipelineRenderingCreateInfoWrapper                                     rendering = PipelineRenderingCreateInfoWrapper(),
                                                                                                                                         const VkPipelineCache                                                          partPipelineCache = DE_NULL,
-                                                                                                                                        PipelineCreationFeedbackCreateInfoWrapper                              partCreationFeedback = PipelineCreationFeedbackCreateInfoWrapper());
+                                                                                                                                        PipelineCreationFeedbackCreateInfoWrapper                      partCreationFeedback = PipelineCreationFeedbackCreateInfoWrapper());
 
        // Note: VkPipelineShaderStageModuleIdentifierCreateInfoEXT::pIdentifier will not be copied. They need to continue to exist outside this wrapper.
        GraphicsPipelineWrapper&        setupPreRasterizationShaderState3       (const std::vector<VkViewport>&                                                         viewports,
@@ -195,18 +195,19 @@ public:
                                                                                                                                         const VkRenderPass                                                                                     renderPass,
                                                                                                                                         const deUint32                                                                                         subpass,
                                                                                                                                         const VkShaderModule                                                                           vertexShaderModule,
-                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper                   vertShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
+                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper           vertShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
                                                                                                                                         const VkPipelineRasterizationStateCreateInfo*                          rasterizationState = nullptr,
                                                                                                                                         const VkShaderModule                                                                           tessellationControlShaderModule = DE_NULL,
-                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper                   tescShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
+                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper           tescShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
                                                                                                                                         const VkShaderModule                                                                           tessellationEvalShaderModule = DE_NULL,
-                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper                   teseShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
+                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper           teseShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
                                                                                                                                         const VkShaderModule                                                                           geometryShaderModule = DE_NULL,
-                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper                   geomShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
+                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper           geomShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
                                                                                                                                         const VkSpecializationInfo*                                                            vertSpecializationInfo = nullptr,
                                                                                                                                         const VkSpecializationInfo*                                                            tescSpecializationInfo = nullptr,
                                                                                                                                         const VkSpecializationInfo*                                                            teseSpecializationInfo = nullptr,
                                                                                                                                         const VkSpecializationInfo*                                                            geomSpecializationInfo = nullptr,
+                                                                                                                                        VkPipelineFragmentShadingRateStateCreateInfoKHR*                       fragmentShadingRateState = nullptr,
                                                                                                                                         PipelineRenderingCreateInfoWrapper                                                     rendering = PipelineRenderingCreateInfoWrapper(),
                                                                                                                                         const VkPipelineCache                                                                          partPipelineCache = DE_NULL,
                                                                                                                                         PipelineCreationFeedbackCreateInfoWrapper                                      partCreationFeedback = PipelineCreationFeedbackCreateInfoWrapper());
@@ -218,7 +219,6 @@ public:
                                                                                                                                         const VkShaderModule                                                           fragmentShaderModule,
                                                                                                                                         const VkPipelineDepthStencilStateCreateInfo*           depthStencilState = DE_NULL,
                                                                                                                                         const VkPipelineMultisampleStateCreateInfo*            multisampleState = DE_NULL,
-                                                                                                                                        VkPipelineFragmentShadingRateStateCreateInfoKHR*       fragmentShadingRateState = DE_NULL,
                                                                                                                                         const VkSpecializationInfo*                                            specializationInfo = DE_NULL,
                                                                                                                                         const VkPipelineCache                                                          partPipelineCache = DE_NULL,
                                                                                                                                         PipelineCreationFeedbackCreateInfoWrapper                      partCreationFeedback = PipelineCreationFeedbackCreateInfoWrapper());
@@ -228,13 +228,12 @@ public:
                                                                                                                                         const VkRenderPass                                                                                     renderPass,
                                                                                                                                         const deUint32                                                                                         subpass,
                                                                                                                                         const VkShaderModule                                                                           fragmentShaderModule,
-                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper                   fragmentShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
+                                                                                                                                        PipelineShaderStageModuleIdentifierCreateInfoWrapper           fragmentShaderModuleId = PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
                                                                                                                                         const VkPipelineDepthStencilStateCreateInfo*                           depthStencilState = nullptr,
                                                                                                                                         const VkPipelineMultisampleStateCreateInfo*                            multisampleState = nullptr,
-                                                                                                                                        VkPipelineFragmentShadingRateStateCreateInfoKHR*                       fragmentShadingRateState = nullptr,
                                                                                                                                         const VkSpecializationInfo*                                                            specializationInfo = nullptr,
                                                                                                                                         const VkPipelineCache                                                                          partPipelineCache = DE_NULL,
-                                                                                                                                        PipelineCreationFeedbackCreateInfoWrapper                      partCreationFeedback = PipelineCreationFeedbackCreateInfoWrapper());
+                                                                                                                                        PipelineCreationFeedbackCreateInfoWrapper                                      partCreationFeedback = PipelineCreationFeedbackCreateInfoWrapper());
 
        // Setup fragment output state.
        GraphicsPipelineWrapper&        setupFragmentOutputState                        (const VkRenderPass                                                                     renderPass,
index 6586d81..601da6e 100644 (file)
@@ -2606,14 +2606,14 @@ void FSRTestInstance::drawCommands(VkCommandBuffer                                                                      cmdBuffer,
                                                                                          DE_NULL,
                                                                                          geomShader,
                                                                                          DE_NULL,
+                                                                                         shadingRateState,
                                                                                          dynamicRenderingState)
                        .setupFragmentShaderState(pipelineLayout,
                                                                          renderPass,
                                                                          0u,
                                                                          fragShader,
                                                                          depthStencilState,
-                                                                         multisampleState,
-                                                                         shadingRateState)
+                                                                         multisampleState)
                        .setupFragmentOutputState(renderPass, 0u, DE_NULL, multisampleState)
                        .setMonolithicPipelineLayout(pipelineLayout)
                        .buildPipeline();
@@ -2657,14 +2657,14 @@ void FSRTestInstance::drawCommands(VkCommandBuffer                                                                      cmdBuffer,
                                                                                                  DE_NULL,
                                                                                                  geomShader,
                                                                                                  DE_NULL,
+                                                                                                 shadingRateState,
                                                                                                  dynamicRenderingState)
                                .setupFragmentShaderState(pipelineLayout,
                                                                                  renderPass,
                                                                                  0u,
                                                                                  fragShader,
                                                                                  depthStencilState,
-                                                                                 multisampleState,
-                                                                                 shadingRateState)
+                                                                                 multisampleState)
                                .setupFragmentOutputState(renderPass, 0u, DE_NULL, multisampleState)
                                .setMonolithicPipelineLayout(pipelineLayout)
                                .buildPipeline();
index 1c6ae06..6390bf3 100644 (file)
@@ -653,6 +653,7 @@ void GraphicsCacheTestInstance::preparePipelineWrapper (GraphicsPipelineWrapper&
                        teseShaderModule,
                        geomShaderModule,
                        DE_NULL,
+                       nullptr,
                        PipelineRenderingCreateInfoWrapper(),
                        *m_cache,
                        pipelineCreationFeedbackWrapper[1])
@@ -664,7 +665,6 @@ void GraphicsCacheTestInstance::preparePipelineWrapper (GraphicsPipelineWrapper&
                        &depthStencilStateParams,
                        DE_NULL,
                        DE_NULL,
-                       DE_NULL,
                        *m_cache,
                        pipelineCreationFeedbackWrapper[2])
           .setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams, DE_NULL, *m_cache, pipelineCreationFeedbackWrapper[3])
index b4e7686..d91a8d4 100644 (file)
@@ -1067,7 +1067,7 @@ tcu::TestStatus test(Context& context, const MaxVaryingsParam param)
                                                                                                        *teseShaderModule,
                                                                                                        *geomShaderModule,
                                                                                                        &pSpecInfo)
-                                       .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule, DE_NULL, DE_NULL, DE_NULL, &pSpecInfo)
+                                       .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule, DE_NULL, DE_NULL, &pSpecInfo)
                                        .setupFragmentOutputState(*renderPass)
                                        .setMonolithicPipelineLayout(*pipelineLayout)
                                        .buildPipeline();
index 837d18f..ea060ce 100644 (file)
@@ -304,14 +304,15 @@ void preparePipelineWrapper(GraphicsPipelineWrapper&                      gpw,
                                                                pipelineLayout,
                                                                renderPass,
                                                                subpassNdx,
-                                                               vertexModule)
+                                                               vertexModule,
+                                                               nullptr, DE_NULL, DE_NULL, DE_NULL, DE_NULL,
+                                                               (useFragmentShadingRate ? &shadingRateStateCreateInfo : nullptr))
           .setupFragmentShaderState(pipelineLayout,
                                                                renderPass,
                                                                subpassNdx,
                                                                fragmentModule,
                                                                &pipelineDepthStencilStateInfo,
-                                                               &pipelineMultisampleStateInfo,
-                                                               (useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL))
+                                                               &pipelineMultisampleStateInfo)
           .setupFragmentOutputState(renderPass, subpassNdx, &pipelineColorBlendStateInfo, &pipelineMultisampleStateInfo)
           .setMonolithicPipelineLayout(pipelineLayout)
           .buildPipeline();
index 9ea2c82..8d8b586 100644 (file)
@@ -697,14 +697,15 @@ void preparePipelineWrapper (GraphicsPipelineWrapper&                     gpw,
                                                                pipelineLayout,
                                                                renderPass,
                                                                subpassIndex,
-                                                               vertexModule)
+                                                               vertexModule,
+                                                               nullptr, DE_NULL, DE_NULL, DE_NULL, DE_NULL,
+                                                               (useFragmentShadingRate ? &shadingRateStateCreateInfo : nullptr))
           .setupFragmentShaderState(pipelineLayout,
                                                                renderPass,
                                                                subpassIndex,
                                                                fragmentModule,
                                                                &pipelineDepthStencilStateInfo,
-                                                               &pipelineMultisampleStateInfo,
-                                                               (useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL))
+                                                               &pipelineMultisampleStateInfo)
           .setupFragmentOutputState(renderPass, subpassIndex, &colorBlendStateCreateInfoDefault, &pipelineMultisampleStateInfo)
           .setMonolithicPipelineLayout(pipelineLayout)
           .buildPipeline();
index 34fb0b2..68919c7 100644 (file)
@@ -4158,14 +4158,15 @@ void MultisampleRenderer::initialize (Context&                                                                  context,
                                                                                                                                                        *m_renderPass,
                                                                                                                                                        subpassIdx,
                                                                                                                                                        *m_vertexShaderModule,
-                                                                                                                                                       &rasterizationStateCreateInfo)
+                                                                                                                                                       &rasterizationStateCreateInfo,
+                                                                                                                                                       DE_NULL, DE_NULL, DE_NULL, DE_NULL,
+                                                                                                                                                       (m_useFragmentShadingRate ? &shadingRateStateCreateInfo : nullptr))
                                                                                  .setupFragmentShaderState(*m_pipelineLayout,
                                                                                                                                        *m_renderPass,
                                                                                                                                        subpassIdx,
                                                                                                                                        *m_fragmentShaderModule,
                                                                                                                                        &depthStencilStateParams,
-                                                                                                                                       &m_multisampleStateParams,
-                                                                                                                                       m_useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL)
+                                                                                                                                       &m_multisampleStateParams)
                                                                                  .setupFragmentOutputState(*m_renderPass, subpassIdx, &colorBlendStateParams, &m_multisampleStateParams)
                                                                                  .setMonolithicPipelineLayout(*m_pipelineLayout)
                                                                                  .buildPipeline();
index 8166a56..64200db 100644 (file)
@@ -595,6 +595,7 @@ MovePtr<GraphicsPipelineWrapper> makeGraphicsPipeline (const DeviceInterface&
                                                                                          DE_NULL,
                                                                                          DE_NULL,
                                                                                          DE_NULL,
+                                                                                         nullptr,
                                                                                          pipelineRenderingCreateInfo)
                        .setupFragmentShaderState(pipelineLayout,
                                                                          renderPass,
index abe1f09..bfc5c0d 100644 (file)
@@ -922,7 +922,6 @@ tcu::TestStatus BorderSwizzleInstance::iterate (void)
                                                                        *fragShader,
                                                                        DE_NULL,
                                                                        DE_NULL,
-                                                                       DE_NULL,
                                                                        &specializationInfo)
                                        .setupFragmentOutputState(*renderPass, 0u, &colorBlendInfo)
                                        .setMonolithicPipelineLayout(*pipelineLayout)
index 99e4692..0c86244 100644 (file)
@@ -2210,6 +2210,7 @@ tcu::TestStatus CreateAndUseIdsInstance::iterate (void)
                                                tescSpecInfo.get(),
                                                teseSpecInfo.get(),
                                                geomSpecInfo.get(),
+                                               nullptr,
                                                PipelineRenderingCreateInfoWrapper(),
                                                pipelineCache.get())
                                        .setupFragmentShaderState(
@@ -2219,7 +2220,6 @@ tcu::TestStatus CreateAndUseIdsInstance::iterate (void)
                                                fragModule,
                                                &depthStencilState,
                                                &multisampleState,
-                                               nullptr,
                                                fragSpecInfo.get(),
                                                pipelineCache.get())
                                        .setupFragmentOutputState(*renderPass, 0u, &colorBlendState, &multisampleState, pipelineCache.get())
@@ -2295,6 +2295,7 @@ tcu::TestStatus CreateAndUseIdsInstance::iterate (void)
                                                        tescToRun.getSpecInfo(),
                                                        teseToRun.getSpecInfo(),
                                                        geomToRun.getSpecInfo(),
+                                                       nullptr,
                                                        PipelineRenderingCreateInfoWrapper(),
                                                        pipelineCache.get())
                                                .setupFragmentShaderState2(
@@ -2305,7 +2306,6 @@ tcu::TestStatus CreateAndUseIdsInstance::iterate (void)
                                                        fragToRun.getModuleIdCreateInfo(),
                                                        &depthStencilState,
                                                        &multisampleState,
-                                                       nullptr,
                                                        fragToRun.getSpecInfo(),
                                                        pipelineCache.get())
                                                .setupFragmentOutputState(*renderPass, 0u, &colorBlendState, &multisampleState, pipelineCache.get())
@@ -3299,6 +3299,7 @@ tcu::TestStatus HLSLTessellationInstance::iterate (void)
                                                        nullptr,
                                                        nullptr,
                                                        nullptr,
+                                                       nullptr,
                                                        PipelineRenderingCreateInfoWrapper(),
                                                        pipelineCache.get())
                                                .setupFragmentShaderState(
@@ -3309,7 +3310,6 @@ tcu::TestStatus HLSLTessellationInstance::iterate (void)
                                                        &depthStencilState,
                                                        &multisampleState,
                                                        nullptr,
-                                                       nullptr,
                                                        pipelineCache.get())
                                                .setupFragmentOutputState(
                                                        *renderPass,
@@ -3373,6 +3373,7 @@ tcu::TestStatus HLSLTessellationInstance::iterate (void)
                                                nullptr,
                                                nullptr,
                                                nullptr,
+                                               nullptr,
                                                PipelineRenderingCreateInfoWrapper(),
                                                pipelineCache.get())
                                        .setupFragmentShaderState2(
@@ -3384,7 +3385,6 @@ tcu::TestStatus HLSLTessellationInstance::iterate (void)
                                                &depthStencilState,
                                                &multisampleState,
                                                nullptr,
-                                               nullptr,
                                                pipelineCache.get())
                                        .setupFragmentOutputState(
                                                *renderPass,
index fad8ca0..cfcc265 100644 (file)
@@ -725,7 +725,7 @@ tcu::TestStatus GraphicsTestInstance::iterate (void)
                                                                                                          *teseShaderModule,
                                                                                                          *geomShaderModule,
                                                                                                          pSpecInfo)
-                                       .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule, DE_NULL, DE_NULL, DE_NULL, pSpecInfo)
+                                       .setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule, DE_NULL, DE_NULL, pSpecInfo)
                                        .setupFragmentOutputState(*renderPass)
                                        .setMonolithicPipelineLayout(*pipelineLayout)
                                        .buildPipeline();