0u, // VkPipelineTessellationStateCreateFlags flags
3u // deUint32 patchControlPoints
}
- , pFragmentShadingRateState (DE_NULL)
+ , pFragmentShadingRateState (nullptr)
, pDynamicState (DE_NULL)
, useViewportState (DE_TRUE)
, useDefaultRasterizationState (DE_FALSE)
const VkShaderModule tessellationEvalShaderModule,
const VkShaderModule geometryShaderModule,
const VkSpecializationInfo *specializationInfo,
+ VkPipelineFragmentShadingRateStateCreateInfoKHR* fragmentShadingRateState,
PipelineRenderingCreateInfoWrapper rendering,
const VkPipelineCache partPipelineCache,
PipelineCreationFeedbackCreateInfoWrapper partCreationFeedback)
specializationInfo,
specializationInfo,
specializationInfo,
+ fragmentShadingRateState,
rendering,
partPipelineCache,
partCreationFeedback);
const VkSpecializationInfo* tescSpecializationInfo,
const VkSpecializationInfo* teseSpecializationInfo,
const VkSpecializationInfo* geomSpecializationInfo,
+ VkPipelineFragmentShadingRateStateCreateInfoKHR*fragmentShadingRateState,
PipelineRenderingCreateInfoWrapper rendering,
const VkPipelineCache partPipelineCache,
PipelineCreationFeedbackCreateInfoWrapper partCreationFeedback)
tescSpecializationInfo,
teseSpecializationInfo,
geomSpecializationInfo,
+ fragmentShadingRateState,
rendering,
partPipelineCache,
partCreationFeedback);
const VkSpecializationInfo* tescSpecializationInfo,
const VkSpecializationInfo* teseSpecializationInfo,
const VkSpecializationInfo* geomSpecializationInfo,
+ VkPipelineFragmentShadingRateStateCreateInfoKHR* fragmentShadingRateState,
PipelineRenderingCreateInfoWrapper rendering,
const VkPipelineCache partPipelineCache,
PipelineCreationFeedbackCreateInfoWrapper partCreationFeedback)
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);
{
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);
const VkShaderModule fragmentShaderModule,
const VkPipelineDepthStencilStateCreateInfo* depthStencilState,
const VkPipelineMultisampleStateCreateInfo* multisampleState,
- VkPipelineFragmentShadingRateStateCreateInfoKHR* fragmentShadingRateState,
const VkSpecializationInfo* specializationInfo,
const VkPipelineCache partPipelineCache,
PipelineCreationFeedbackCreateInfoWrapper partCreationFeedback)
PipelineShaderStageModuleIdentifierCreateInfoWrapper(),
depthStencilState,
multisampleState,
- fragmentShadingRateState,
specializationInfo,
partPipelineCache,
partCreationFeedback);
PipelineShaderStageModuleIdentifierCreateInfoWrapper fragmentShaderModuleId,
const VkPipelineDepthStencilStateCreateInfo* depthStencilState,
const VkPipelineMultisampleStateCreateInfo* multisampleState,
- VkPipelineFragmentShadingRateStateCreateInfoKHR* fragmentShadingRateState,
const VkSpecializationInfo* specializationInfo,
const VkPipelineCache partPipelineCache,
PipelineCreationFeedbackCreateInfoWrapper partCreationFeedback)
DE_UNREF(fragmentShaderModuleId);
m_internalData->setupState |= PSS_FRAGMENT_SHADER;
- m_internalData->pFragmentShadingRateState = fragmentShadingRateState;
const auto pDepthStencilState = depthStencilState ? depthStencilState
: (m_internalData->useDefaultDepthStencilState ? &defaultDepthStencilState : DE_NULL);
class PointerWrapper
{
public:
-
PointerWrapper(): ptr(DE_NULL) {}
PointerWrapper(T* p0) : ptr(p0) {}
T* ptr;
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
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());
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,
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());
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());
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,
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();
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();
teseShaderModule,
geomShaderModule,
DE_NULL,
+ nullptr,
PipelineRenderingCreateInfoWrapper(),
*m_cache,
pipelineCreationFeedbackWrapper[1])
&depthStencilStateParams,
DE_NULL,
DE_NULL,
- DE_NULL,
*m_cache,
pipelineCreationFeedbackWrapper[2])
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams, DE_NULL, *m_cache, pipelineCreationFeedbackWrapper[3])
*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();
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();
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();
*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();
DE_NULL,
DE_NULL,
DE_NULL,
+ nullptr,
pipelineRenderingCreateInfo)
.setupFragmentShaderState(pipelineLayout,
renderPass,
*fragShader,
DE_NULL,
DE_NULL,
- DE_NULL,
&specializationInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendInfo)
.setMonolithicPipelineLayout(*pipelineLayout)
tescSpecInfo.get(),
teseSpecInfo.get(),
geomSpecInfo.get(),
+ nullptr,
PipelineRenderingCreateInfoWrapper(),
pipelineCache.get())
.setupFragmentShaderState(
fragModule,
&depthStencilState,
&multisampleState,
- nullptr,
fragSpecInfo.get(),
pipelineCache.get())
.setupFragmentOutputState(*renderPass, 0u, &colorBlendState, &multisampleState, pipelineCache.get())
tescToRun.getSpecInfo(),
teseToRun.getSpecInfo(),
geomToRun.getSpecInfo(),
+ nullptr,
PipelineRenderingCreateInfoWrapper(),
pipelineCache.get())
.setupFragmentShaderState2(
fragToRun.getModuleIdCreateInfo(),
&depthStencilState,
&multisampleState,
- nullptr,
fragToRun.getSpecInfo(),
pipelineCache.get())
.setupFragmentOutputState(*renderPass, 0u, &colorBlendState, &multisampleState, pipelineCache.get())
nullptr,
nullptr,
nullptr,
+ nullptr,
PipelineRenderingCreateInfoWrapper(),
pipelineCache.get())
.setupFragmentShaderState(
&depthStencilState,
&multisampleState,
nullptr,
- nullptr,
pipelineCache.get())
.setupFragmentOutputState(
*renderPass,
nullptr,
nullptr,
nullptr,
+ nullptr,
PipelineRenderingCreateInfoWrapper(),
pipelineCache.get())
.setupFragmentShaderState2(
&depthStencilState,
&multisampleState,
nullptr,
- nullptr,
pipelineCache.get())
.setupFragmentOutputState(
*renderPass,
*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();