dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.0_1_1_1_1
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.fast_linked
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_union_handle
-dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_null_handle
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.1
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.11
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.01
dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.0_1_1_1_1
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.fast_linked
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_union_handle
-dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_null_handle
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.1
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.11
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.01
linkedCreateInfo.pNext = &linkingInfo;
linkedCreateInfo.flags = m_internalData->pipelineFlags;
+ linkedCreateInfo.layout = m_internalData->monolithicPipelineCreateInfo.layout;
pointerToCreateInfo = &linkedCreateInfo;
if (m_internalData->pipelineConstructionType == PIPELINE_CONSTRUCTION_TYPE_LINK_TIME_OPTIMIZED_LIBRARY)
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&depthStencilState))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&depthStencilState))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&m_depthStencilState_1))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
m_pipeline_2.setDefaultTopology(m_topology)
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&m_depthStencilState_2))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
std::vector<vk::VkImageView> attachments(2);
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&depthStencilState))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&depthStencilState))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
m_pipelineAdditional.setDefaultTopology(vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&depthStencilState))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
*m_fragModule,
&pipelinestate::depthStencil)
.setupFragmentOutputState(*m_renderPass, 0u, &pipelinestate::blend)
+ .setMonolithicPipelineLayout(*m_rectanglePipelineLayout)
.buildPipeline();
}
const VkPipeline graphicsPipeline = m_rectanglePipelines[staticViewportCount].getPipeline();
static_cast<const vk::VkPipelineRasterizationStateCreateInfo*>(&rasterizerState))
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&m_depthStencilState))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
*gs)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fs, static_cast<const vk::VkPipelineDepthStencilStateCreateInfo*>(&depthStencilState))
.setupFragmentOutputState(*m_renderPass, 0u, static_cast<const vk::VkPipelineColorBlendStateCreateInfo*>(&colorBlendState))
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
&multisampleStateCreateInfo,
&shadingRateStateCreateInfo)
.setupFragmentOutputState(*renderPass, 0u, DE_NULL, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.back().getPipeline());
}
&multisampleStateCreateInfo,
&shadingRateStateCreateInfo)
.setupFragmentOutputState(*renderPass, 0u, DE_NULL, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.back().getPipeline());
}
*vertShader)
.setupFragmentShaderState(*graphicsPipelineLayout, *renderPass, 0u, *fragShader)
.setupFragmentOutputState(*renderPass, 0u)
+ .setMonolithicPipelineLayout(*graphicsPipelineLayout)
.buildPipeline();
}
.setupPreRasterizationShaderState(viewport, scissor, *m_pipelineLayout, *m_renderPass, 0u, m_shaderModules[0].get())
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, m_shaderModules[1].get(), &depthStencilStateParams, &multisampleStateParams)
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams, &multisampleStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
.setupPreRasterizationShaderState(viewport, scissor, *m_pipelineLayout, m_renderPasses[0].get(), 0u, m_shaderModules[0].get())
.setupFragmentShaderState(*m_pipelineLayout, m_renderPasses[0].get(), 0u, m_shaderModules[1].get(), &depthStencilStateParams, &multisampleStateParams)
.setupFragmentOutputState(m_renderPasses[0].get(), 0u, &colorBlendStateParams[0], &multisampleStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
// Create second pipeline
.setupPreRasterizationShaderState(viewport, scissor, *m_pipelineLayout, m_renderPasses[1].get(), 0u, m_shaderModules[0].get())
.setupFragmentShaderState(*m_pipelineLayout, m_renderPasses[1].get(), 0u, m_shaderModules[1].get(), &depthStencilStateParams, &multisampleStateParams)
.setupFragmentOutputState(m_renderPasses[1].get(), 0u, &colorBlendStateParams[1], &multisampleStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
*m_vertexShaderModule)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule)
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
}
*m_vertexShaderModule)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule)
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
}
*vertexShaderModule)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentShaderModule)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Vertex buffer
*geomShaderModule)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fragShaderModule, &defaultDepthStencilState)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline(cache);
}
&depthStencilStateCreateInfo,
&multisampleStateCreateInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
&depthStencilStateCreateInfo,
&multisampleStateCreateInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Command buffer.
pipelineCreationFeedbackCreateInfo[1].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks;
pipelineCreationFeedbackCreateInfo[2].pipelineStageCreationFeedbackCount = 1u;
pipelineCreationFeedbackCreateInfo[2].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks + geometryStages;
+
+ if (m_param->getPipelineConstructionType() == PIPELINE_CONSTRUCTION_TYPE_LINK_TIME_OPTIMIZED_LIBRARY)
+ {
+ pipelineCreationFeedbackCreateInfo[4].pipelineStageCreationFeedbackCount = 1u + geometryStages;
+ pipelineCreationFeedbackCreateInfo[4].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks;
+ }
}
gpw.setDefaultTopology((tescShaderModule == DE_NULL) ? VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST : VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)
*m_cache,
&pipelineCreationFeedbackCreateInfo[2])
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams, DE_NULL, *m_cache, &pipelineCreationFeedbackCreateInfo[3])
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline(*m_cache, basePipelineHandle, basePipelineHandle != DE_NULL ? -1 : 0, &pipelineCreationFeedbackCreateInfo[4]);
}
&rasterStateParams)
.setupFragmentShaderState(*m_pipelineLayout, renderpass, 0u, *m_fragModule, &depthStencilStateParams)
.setupFragmentOutputState(renderpass, 0u, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
*m_fragmentShaderModule,
&depthStencilStateParams)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
if (useAltGraphicsPipelines)
*m_fragmentShaderModule,
&depthStencilStateParams)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
}
const vector<VkRect2D> scissors { makeRect2D(m_renderSize) };
m_graphicsPipelines.emplace_back(vk, vkDevice, m_params.pipelineConstructionType);
- m_graphicsPipelines.back().setDefaultRasterizationState()
+ m_graphicsPipelines.back().setMonolithicPipelineLayout(*m_pipelineLayout)
+ .setDefaultRasterizationState()
.setDefaultDepthStencilState()
.setDefaultColorBlendState()
.setDefaultMultisampleState()
&rasterizationStateCreateInfo)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentShaderModule)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline(params.usePipelineCache ? *pipelineCache : DE_NULL);
const deUint32 framebufferWidth = 32;
geomShaderModule)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, fragShaderModule, &depthStencilStateParams)
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline(*m_cache);
}
*geomModule)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule, &depthStencilStateCreateInfo, &multisampleStateCreateInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
*geomModule)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule, &depthStencilStateCreateInfo, &multisampleStateCreateInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendStateCreateInfo, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
vertexModule)
.setupFragmentShaderState(pipelineLayout, renderPass, subpass, fragmentModule, DE_NULL, &pipelineMultisampleStateInfo)
.setupFragmentOutputState(renderPass, subpass, &pipelineColorBlendStateInfo, &pipelineMultisampleStateInfo)
+ .setMonolithicPipelineLayout(pipelineLayout)
.buildPipeline();
}
*m_fragmentShaderModule,
&depthStencilStateParams)
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
*m_geomShaderModule)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragShaderModule)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
// create vertex buffer
appendStructurePtrToVulkanChain(&graphicsPipelineCreateInfo.pNext, &graphicsPipelineLibraryCreateInfo);
if (linkingInfo.libraryCount != 0)
+ {
appendStructurePtrToVulkanChain(&graphicsPipelineCreateInfo.pNext, &linkingInfo);
+ graphicsPipelineCreateInfo.layout = *pipelineLayoutSame;
+ }
node.pipeline = createGraphicsPipeline(vk, device, DE_NULL, &graphicsPipelineCreateInfo);
{
INDEPENDENT_PIPELINE_LAYOUT_SETS_FAST_LINKED = 0,
INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE,
- INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE,
BIND_NULL_DESCRIPTOR_SET,
COMPARE_LINK_TIMES
};
protected:
tcu::TestStatus runNullDescriptorSet (void);
- tcu::TestStatus runIndependentPipelineLayoutSets (bool useLinkTimeOptimization = false, bool useNullLayout = false);
+ tcu::TestStatus runIndependentPipelineLayoutSets (bool useLinkTimeOptimization = false);
tcu::TestStatus runCompareLinkTimes (void);
struct VerificationData
return runIndependentPipelineLayoutSets();
else if (m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE)
return runIndependentPipelineLayoutSets(true);
- else if (m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE)
- return runIndependentPipelineLayoutSets(true, true);
else if (m_testParams.mode == MiscTestMode::COMPARE_LINK_TIMES)
return runCompareLinkTimes();
return verifyResult(verificationData, colorPixelAccess);
}
-tcu::TestStatus PipelineLibraryMiscTestInstance::runIndependentPipelineLayoutSets (bool useLinkTimeOptimization, bool useNullLayout)
+tcu::TestStatus PipelineLibraryMiscTestInstance::runIndependentPipelineLayoutSets (bool useLinkTimeOptimization)
{
const DeviceInterface& vk = m_context.getDeviceInterface();
const VkDevice device = m_context.getDevice();
// for the link time opt (and when null handle is used) use total pipeline layout recreated without the INDEPENDENT SETS bit
deUint32 allLayoutsFlag = deUint32(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT);
- if (useLinkTimeOptimization && !useNullLayout)
+ if (useLinkTimeOptimization)
allLayoutsFlag = 0u;
// Pre-rasterization stage library has sets 0, 1, 2
VkGraphicsPipelineCreateInfo finalPipelineInfo = initVulkanStructure();
finalPipelineInfo.flags = finalPipelineFlag;
- finalPipelineInfo.layout = useNullLayout ? DE_NULL : *allLayouts;
+ finalPipelineInfo.layout = *allLayouts;
appendStructurePtrToVulkanChain(&finalPipelineInfo.pNext, &linkingInfo);
Move<VkPipeline> pipeline = createGraphicsPipeline(vk, device, DE_NULL, &finalPipelineInfo);
VkPipelineLibraryCreateInfoKHR linkingInfo = makePipelineLibraryCreateInfo(pipelinesToLink);
VkGraphicsPipelineCreateInfo finalPipelineInfo = initVulkanStructure();
+ finalPipelineInfo.layout = layout;
appendStructurePtrToVulkanChain(&finalPipelineInfo.pNext, &linkingInfo);
"}\n");
}
else if ((m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_FAST_LINKED) ||
- (m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE) ||
(m_testParams.mode == MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE))
{
programCollection.glslSources.add("vert") << glu::VertexSource(
de::MovePtr<tcu::TestCaseGroup> independentLayoutSetsTests(new tcu::TestCaseGroup(testCtx, "independent_pipeline_layout_sets", ""));
independentLayoutSetsTests->addChild(new PipelineLibraryMiscTestCase(testCtx, "fast_linked", { MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_FAST_LINKED, 0u, 0u }));
independentLayoutSetsTests->addChild(new PipelineLibraryMiscTestCase(testCtx, "link_opt_union_handle", { MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_UNION_HANDLE, 0u, 0u }));
- independentLayoutSetsTests->addChild(new PipelineLibraryMiscTestCase(testCtx, "link_opt_null_handle", { MiscTestMode::INDEPENDENT_PIPELINE_LAYOUT_SETS_WITH_LINK_TIME_OPTIMIZATION_NULL_HANDLE, 0u, 0u }));
miscTests->addChild(independentLayoutSetsTests.release());
de::MovePtr<tcu::TestCaseGroup> bindNullDescriptorCombinationsTests(new tcu::TestCaseGroup(testCtx, "bind_null_descriptor_set", ""));
*vertexShaderModule)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentShaderModule)
.setupFragmentOutputState(*renderPass, 0u)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline(params.usePipelineCache ? *pipelineCache : DE_NULL);
// Passes as long as createGraphicsPipeline didn't crash.
&pSpecInfo)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule)
.setupFragmentOutputState(*renderPass)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Draw commands
*vsModule)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fsModule, DE_NULL, &multisampleStateInfo)
.setupFragmentOutputState(*renderPass, 0, DE_NULL, &multisampleStateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Create command buffer for compute and transfer oparations
.setupPreRasterizationShaderState(viewports, scissors, *pipelineLayoutMSPass, *renderPass, 0u, *vsMSPassModule)
.setupFragmentShaderState(*pipelineLayoutMSPass, *renderPass, 0u, *fsMSPassModule, DE_NULL, &multisampleStateInfo)
.setupFragmentOutputState(*renderPass, 0u, DE_NULL, &multisampleStateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayoutMSPass)
.buildPipeline();
std::vector<GraphicsPipelineWrapper> graphicsPipelinesPerSampleFetch;
.setupPreRasterizationShaderState(viewports, scissors, *pipelineLayoutPerSampleFetchPass, *renderPass, subpass, *vsPerSampleFetchPassModule)
.setupFragmentShaderState(*pipelineLayoutPerSampleFetchPass, *renderPass, subpass, *fsPerSampleFetchPassModule)
.setupFragmentOutputState(*renderPass, subpass)
+ .setMonolithicPipelineLayout(*pipelineLayoutPerSampleFetchPass)
.buildPipeline();
}
}
vertexModule)
.setupFragmentShaderState(pipelineLayout, renderPass, subpassNdx, fragmentModule, DE_NULL, &pipelineMultisampleStateInfo)
.setupFragmentOutputState(renderPass, subpassNdx, &pipelineColorBlendStateInfo, &pipelineMultisampleStateInfo)
+ .setMonolithicPipelineLayout(pipelineLayout)
.buildPipeline();
}
&pipelineMultisampleStateInfo,
(useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL))
.setupFragmentOutputState(renderPass, subpassNdx, &pipelineColorBlendStateInfo, &pipelineMultisampleStateInfo)
+ .setMonolithicPipelineLayout(pipelineLayout)
.buildPipeline();
}
DE_NULL,
&multisampleStateCreateInfo)
.setupFragmentOutputState(renderPass, 0u, DE_NULL, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(pipelineLayout)
.buildPipeline();
}
&pipelineMultisampleStateInfo,
(useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL))
.setupFragmentOutputState(renderPass, subpassIndex, &colorBlendStateCreateInfoDefault, &pipelineMultisampleStateInfo)
+ .setMonolithicPipelineLayout(pipelineLayout)
.buildPipeline();
}
.setupPreRasterizationShaderState(viewport, scissor, *emptyPipelineLayout, *renderPass, 0u, *vertModule)
.setupFragmentShaderState(*emptyPipelineLayout, *renderPass, 0u, *writeModule, &depthStencilInfo, &multisampleInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendInfo, &multisampleInfo)
+ .setMonolithicPipelineLayout(*emptyPipelineLayout)
.buildPipeline();
// Pipeline for the second subpass.
.setupPreRasterizationShaderState(viewport, scissor, *checkPipelineLayout, *renderPass, 1u, *vertModule)
.setupFragmentShaderState(*checkPipelineLayout, *renderPass, 1u, *checkModule, &depthStencilInfo, &multisampleInfo)
.setupFragmentOutputState(*renderPass, 1u, &colorBlendInfo, &multisampleInfo)
+ .setMonolithicPipelineLayout(*checkPipelineLayout)
.buildPipeline();
// Command pool and command buffer.
*vertexModuleDraw)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragmentModuleDraw, DE_NULL, &multisampleStateInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendStateInfo, &multisampleStateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
*vertexModuleSample)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 1u, *fragmentModuleSample, DE_NULL, &multisampleStateInfo)
.setupFragmentOutputState(*renderPass, 1u, &colorBlendStateInfo, &multisampleStateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
*vertexModuleDraw)
.setupFragmentShaderState(*pipelineLayout, *renderPass, layerNdx, *fragmentModuleDraw, DE_NULL, &multisampleStateInfo)
.setupFragmentOutputState(*renderPass, layerNdx, &colorBlendStateInfo, &multisampleStateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
&m_multisampleStateParams,
m_useFragmentShadingRate ? &shadingRateStateCreateInfo : DE_NULL)
.setupFragmentOutputState(*m_renderPass, subpassIdx, &colorBlendStateParams, &m_multisampleStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
}
subpassIdx,
*m_copySampleFragmentShaderModule)
.setupFragmentOutputState(*m_renderPass, subpassIdx, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*m_copySamplePipelineLayout)
.buildPipeline();
}
}
*vertModule)
.setupFragmentShaderState(*pipelineLayout, *renderPassSingleSubpass, 0u, *fragModule)
.setupFragmentOutputState(*renderPassSingleSubpass, 0u, DE_NULL, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
*vertModule)
.setupFragmentShaderState(*pipelineLayout, *renderPassMultiplePasses, subpass, *fragModule)
.setupFragmentOutputState(*renderPassMultiplePasses, subpass, DE_NULL, &multisampleStateCreateInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
*geom)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *frag)
.setupFragmentOutputState(*renderPass)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Descriptor set and output SSBO if needed.
*m_vertexShaderModule)
.setupFragmentShaderState(*(m_pipelineLayout[0]), *m_renderPass, 0u, *m_fragmentShaderModule)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*(m_pipelineLayout[0]))
.buildPipeline();
m_graphicsPipeline[1].setDefaultRasterizationState()
*m_vertexShaderModule)
.setupFragmentShaderState(*(m_pipelineLayout[1]), *m_renderPass, 0u, *m_fragmentShaderModule)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*(m_pipelineLayout[1]))
.buildPipeline();
}
*vertModule)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule)
.setupFragmentOutputState(*renderPass)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
}
*m_vertexShaderModule)
.setupFragmentShaderState(*m_fragmentStatePipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_preRasterizationStatePipelineLayout)
.buildPipeline();
}
vertexModule)
.setupFragmentShaderState(pipelineLayout, renderPass, subpass, fragmentModule, &pipelineDepthStencilStateInfo)
.setupFragmentOutputState(renderPass, subpass, &pipelineColorBlendStateInfo)
+ .setMonolithicPipelineLayout(pipelineLayout)
.buildPipeline(DE_NULL, basePipeline, -1);
}
DE_NULL,
&specializationInfo)
.setupFragmentOutputState(*renderPass, 0u, &colorBlendInfo)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Framebuffer.
*vertexModule)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragModule)
.setupFragmentOutputState(*renderPass)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Command pool and command buffer.
pSpecInfo)
.setupFragmentShaderState(*pipelineLayout, *renderPass, 0u, *fragShaderModule, DE_NULL, DE_NULL, DE_NULL, pSpecInfo)
.setupFragmentOutputState(*renderPass)
+ .setMonolithicPipelineLayout(*pipelineLayout)
.buildPipeline();
// Draw commands
vertexModule)
.setupFragmentShaderState(pipelineLayout, renderPass, subpass, fragmentModule, &pipelineDepthStencilStateInfo)
.setupFragmentOutputState(renderPass, subpass, &pipelineColorBlendStateInfo)
+ .setMonolithicPipelineLayout(pipelineLayout)
.buildPipeline();
}
&rasterizationStateParams)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *m_fragmentShaderModule, &depthStencilStateParams)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
}
*vertexShaderModule)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fragmentShaderModule, &defaultDepthStencilStateParams)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
*geomShaderModule)
.setupFragmentShaderState(*m_pipelineLayout, *m_renderPass, 0u, *fragShaderModule, &defaultDepthStencilStateParams)
.setupFragmentOutputState(*m_renderPass)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
0u,
*m_fragmentShaderModule)
.setupFragmentOutputState(*m_renderPass, 0u, &colorBlendStateParams)
+ .setMonolithicPipelineLayout(*m_pipelineLayout)
.buildPipeline();
}
dEQP-VK.pipeline.pipeline_library.graphics_library.optimize.0_1_1_1_1
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.fast_linked
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_union_handle
-dEQP-VK.pipeline.pipeline_library.graphics_library.misc.independent_pipeline_layout_sets.link_opt_null_handle
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.1
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.11
dEQP-VK.pipeline.pipeline_library.graphics_library.misc.bind_null_descriptor_set.01