Lines Matching defs:state
1838 // Store all dynamic state that are used with shader objects
1842 // Store the state that a pipeline would be created with, but shader objects have to set dynamically
2037 // make sure states are not yet setup - all pipeline states must know about dynamic state
2048 // Representative fragment test state is needed by the fragment shader state.
2123 // Needs MSAA info here as well as fragment output state
2203 // topology is needed by vertex input state, make sure vertex input state was not setup yet
2213 // patchControlPoints are needed by pre-rasterization shader state, make sure pre-rasterization state was not setup yet
2223 // Tessellation domain origin is needed by pre-rasterization shader state, make sure pre-rasterization state was not setup yet
2245 // rasterizerDiscardEnable is used in pre-rasterization shader state, make sure pre-rasterization state was not setup yet
2256 // RasterizationState is used in pre-rasterization shader state, make sure this state was not setup yet
2266 // DepthStencilState is used in fragment shader state, make sure fragment shader state was not setup yet
2276 // ColorBlendState is used in fragment shader state, make sure fragment shader state was not setup yet
2286 // MultisampleState is used in fragment shader state, make sure fragment shader state was not setup yet
2296 // Make sure vertex input state was not setup yet.
2306 // ViewportState is used in pre-rasterization shader state, make sure pre-rasterization state was not setup yet
2316 // ViewportState is used in pre-rasterization shader state, make sure pre-rasterization state was not setup yet
2326 // ViewportState is used in pre-rasterization shader state, make sure pre-rasterization state was not setup yet
2356 // ViewportState is used in pre-rasterization shader state, make sure pre-rasterization state was not setup yet
2373 // make sure states are set in order - no need to complicate logic to support out of order specification - this state needs to be set first
2544 // make sure states are set in order - no need to complicate logic to support out of order specification - this state needs to be set second
2779 // Make sure states are set in order - this state needs to be set first or second.
2956 // make sure states are set in order - no need to complicate logic to support out of order specification - this state needs to be set third
3082 // make sure states are set in order - no need to complicate logic to support out of order specification - this state needs to be set last
3470 // These dynamic state will already be set in the tests
3500 // Save state needed for setting shader object dynamic state
3501 auto state = &m_internalData->pipelineCreateState;
3506 state->viewports.resize(pointerToCreateInfo->pViewportState->viewportCount);
3508 state->viewports[i] = pointerToCreateInfo->pViewportState->pViewports[i];
3513 state->scissors.resize(pointerToCreateInfo->pViewportState->scissorCount);
3515 state->scissors[i] = pointerToCreateInfo->pViewportState->pScissors[i];
3520 state->negativeOneToOne = depthClipControl->negativeOneToOne;
3524 state->shadingRateImageEnable = viewportShadingRate->shadingRateImageEnable;
3525 state->shadingRatePaletteCount = viewportShadingRate->viewportCount;
3526 state->shadingRatePalettes.resize(viewportShadingRate->viewportCount);
3527 state->shadingRatePaletteEntries.resize(viewportShadingRate->viewportCount);
3530 state->shadingRatePalettes[i] = viewportShadingRate->pShadingRatePalettes[i];
3531 state->shadingRatePaletteEntries[i].resize(viewportShadingRate->pShadingRatePalettes[i].shadingRatePaletteEntryCount);
3533 state->shadingRatePaletteEntries[i][j] = viewportShadingRate->pShadingRatePalettes[i].pShadingRatePaletteEntries[j];
3534 state->shadingRatePalettes[i].pShadingRatePaletteEntries = state->shadingRatePaletteEntries[i].data();
3540 state->viewportSwizzles.resize(viewportSwizzle->viewportCount);
3542 state->viewportSwizzles[i] = viewportSwizzle->pViewportSwizzles[i];
3547 state->viewportWScalingEnable = viewportWScaling->viewportWScalingEnable;
3548 state->viewportWScalingCount = viewportWScaling->viewportCount;
3549 state->viewportWScalings.resize(viewportWScaling->viewportCount);
3551 state->viewportWScalings[i] = viewportWScaling->pViewportWScalings[i];
3556 state->coarseSampleOrderType = coarseSampleOrder->sampleOrderType;
3557 state->coarseCustomSampleOrderCount = coarseSampleOrder->customSampleOrderCount;
3558 state->coarseCustomSampleOrders.resize(coarseSampleOrder->customSampleOrderCount);
3559 state->coarseSampleLocations.resize(coarseSampleOrder->customSampleOrderCount);
3562 state->coarseCustomSampleOrders[i] = coarseSampleOrder->pCustomSampleOrders[i];
3563 state->coarseSampleLocations[i].resize(coarseSampleOrder->pCustomSampleOrders[i].sampleCount);
3565 state->coarseSampleLocations[i][j] = coarseSampleOrder->pCustomSampleOrders[i].pSampleLocations[j];
3566 state->coarseCustomSampleOrders[i].pSampleLocations = state->coarseSampleLocations[i].data();
3573 state->lineWidth = pointerToCreateInfo->pRasterizationState->lineWidth;
3574 state->depthBiasConstantFactor = pointerToCreateInfo->pRasterizationState->depthBiasConstantFactor;
3575 state->depthBiasClamp = pointerToCreateInfo->pRasterizationState->depthBiasClamp;
3576 state->depthBiasSlopeFactor = pointerToCreateInfo->pRasterizationState->depthBiasSlopeFactor;
3577 state->cullMode = pointerToCreateInfo->pRasterizationState->cullMode;
3578 state->frontFace = pointerToCreateInfo->pRasterizationState->frontFace;
3579 state->depthBiasEnable = pointerToCreateInfo->pRasterizationState->depthBiasEnable;
3580 state->rasterizerDiscardEnable = pointerToCreateInfo->pRasterizationState->rasterizerDiscardEnable;
3584 state->conservativeRasterizationMode = conservative->conservativeRasterizationMode;
3585 state->extraPrimitiveOverestimationSize = conservative->extraPrimitiveOverestimationSize;
3587 state->depthClampEnable = pointerToCreateInfo->pRasterizationState->depthClampEnable;
3590 state->depthClipEnable = depthClip->depthClipEnable;
3592 state->depthClipEnable = !pointerToCreateInfo->pRasterizationState->depthClampEnable && !depthClampEnableDynamic;
3597 state->lineRasterizationMode = rasterizationLine->lineRasterizationMode;
3598 state->stippledLineEnable = rasterizationLine->stippledLineEnable;
3599 state->lineStippleFactor = rasterizationLine->lineStippleFactor;
3600 state->lineStipplePattern = rasterizationLine->lineStipplePattern;
3604 state->rasterizationStream = rasterizationStream->rasterizationStream;
3605 state->polygonMode = pointerToCreateInfo->pRasterizationState->polygonMode;
3608 state->provokingVertexMode = provokingVertex->provokingVertexMode;
3612 state->depthBiasRepresentation = depthBiasRepresentationInfo->depthBiasRepresentation;
3613 state->depthBiasExact = depthBiasRepresentationInfo->depthBiasExact;
3618 memcpy(&state->blendConstants, pointerToCreateInfo->pColorBlendState->blendConstants, sizeof(float) * 4);
3619 state->logicOp = pointerToCreateInfo->pColorBlendState->logicOp;
3623 state->colorBlendAdvanced.resize(pointerToCreateInfo->pColorBlendState->attachmentCount);
3627 state->colorBlendAdvanced[i].advancedBlendOp = pointerToCreateInfo->pColorBlendState->pAttachments[i].colorBlendOp;
3628 state->colorBlendAdvanced[i].srcPremultiplied = blendAdvancedState->srcPremultiplied;
3629 state->colorBlendAdvanced[i].dstPremultiplied = blendAdvancedState->dstPremultiplied;
3630 state->colorBlendAdvanced[i].blendOverlap = blendAdvancedState->blendOverlap;
3631 state->colorBlendAdvanced[i].clampResults = VK_FALSE;
3634 state->colorBlendEnables.resize(pointerToCreateInfo->pColorBlendState->attachmentCount);
3635 state->blendEquations.resize(pointerToCreateInfo->pColorBlendState->attachmentCount);
3636 state->colorWriteMasks.resize(pointerToCreateInfo->pColorBlendState->attachmentCount);
3641 state->colorBlendEnables[i] = pointerToCreateInfo->pColorBlendState->pAttachments[i].blendEnable;
3642 state->blendEquations[i].srcColorBlendFactor = pointerToCreateInfo->pColorBlendState->pAttachments[i].srcColorBlendFactor;
3643 state->blendEquations[i].dstColorBlendFactor = pointerToCreateInfo->pColorBlendState->pAttachments[i].dstColorBlendFactor;
3644 state->blendEquations[i].colorBlendOp = pointerToCreateInfo->pColorBlendState->pAttachments[i].colorBlendOp;
3645 state->blendEquations[i].srcAlphaBlendFactor = pointerToCreateInfo->pColorBlendState->pAttachments[i].srcAlphaBlendFactor;
3646 state->blendEquations[i].dstAlphaBlendFactor = pointerToCreateInfo->pColorBlendState->pAttachments[i].dstAlphaBlendFactor;
3647 state->blendEquations[i].alphaBlendOp = pointerToCreateInfo->pColorBlendState->pAttachments[i].alphaBlendOp;
3648 state->colorWriteMasks[i] = pointerToCreateInfo->pColorBlendState->pAttachments[i].colorWriteMask;
3654 state->blendEquations[i].colorBlendOp = vk::VK_BLEND_OP_ADD;
3655 state->blendEquations[i].alphaBlendOp = vk::VK_BLEND_OP_ADD;
3658 state->logicOpEnable = pointerToCreateInfo->pColorBlendState->logicOpEnable;
3662 state->colorWriteEnableAttachmentCount = colorWrite->attachmentCount;
3663 state->colorWriteEnables.resize(colorWrite->attachmentCount);
3665 state->colorWriteEnables[i] = colorWrite->pColorWriteEnables[i];
3670 state->minDepthBounds = pointerToCreateInfo->pDepthStencilState->minDepthBounds;
3671 state->maxDepthBounds = pointerToCreateInfo->pDepthStencilState->maxDepthBounds;
3672 state->stencilFront = pointerToCreateInfo->pDepthStencilState->front;
3673 state->stencilBack = pointerToCreateInfo->pDepthStencilState->back;
3674 state->depthBoundsTestEnable = pointerToCreateInfo->pDepthStencilState->depthBoundsTestEnable;
3675 state->depthCompareOp = pointerToCreateInfo->pDepthStencilState->depthCompareOp;
3676 state->depthTestEnable = pointerToCreateInfo->pDepthStencilState->depthTestEnable;
3677 state->depthWriteEnable = pointerToCreateInfo->pDepthStencilState->depthWriteEnable;
3678 state->stencilTestEnable = pointerToCreateInfo->pDepthStencilState->stencilTestEnable;
3682 state->topology = pointerToCreateInfo->pInputAssemblyState->topology;
3683 state->primitiveRestartEnable = pointerToCreateInfo->pInputAssemblyState->primitiveRestartEnable;
3687 state->attributes.resize(pointerToCreateInfo->pVertexInputState->vertexAttributeDescriptionCount);
3688 state->bindings.resize(pointerToCreateInfo->pVertexInputState->vertexBindingDescriptionCount);
3691 state->attributes[i] = initVulkanStructure();
3692 state->attributes[i].location = pointerToCreateInfo->pVertexInputState->pVertexAttributeDescriptions[i].location;
3693 state->attributes[i].binding = pointerToCreateInfo->pVertexInputState->pVertexAttributeDescriptions[i].binding;
3694 state->attributes[i].format = pointerToCreateInfo->pVertexInputState->pVertexAttributeDescriptions[i].format;
3695 state->attributes[i].offset = pointerToCreateInfo->pVertexInputState->pVertexAttributeDescriptions[i].offset;
3702 state->bindings[i] = initVulkanStructure();
3703 state->bindings[i].binding = pointerToCreateInfo->pVertexInputState->pVertexBindingDescriptions[i].binding;
3704 state->bindings[i].stride = pointerToCreateInfo->pVertexInputState->pVertexBindingDescriptions[i].stride;
3705 state->bindings[i].inputRate = pointerToCreateInfo->pVertexInputState->pVertexBindingDescriptions[i].inputRate;
3706 state->bindings[i].divisor = 1;
3711 if (state->bindings[i].binding == divisorInfo->pVertexBindingDivisors[j].binding)
3713 state->bindings[i].divisor = divisorInfo->pVertexBindingDivisors[i].divisor;
3721 state->patchControlPoints = pointerToCreateInfo->pTessellationState->patchControlPoints;
3724 state->domainOrigin = tessellationDomainOrigin->domainOrigin;
3728 state->alphaToCoverageEnable = pointerToCreateInfo->pMultisampleState->alphaToCoverageEnable;
3729 state->alphaToOneEnable = pointerToCreateInfo->pMultisampleState->alphaToOneEnable;
3733 state->coverageModulationMode = coverageModulation->coverageModulationMode;
3734 state->coverageModulationTableEnable = coverageModulation->coverageModulationTableEnable;
3735 state->coverageModulationTable.resize(coverageModulation->coverageModulationTableCount);
3737 state->coverageModulationTable[i] = coverageModulation->pCoverageModulationTable[i];
3741 state->coverageReductionMode = coverageReduction->coverageReductionMode;
3745 state->coverageToColorEnable = coverageToColor->coverageToColorEnable;
3746 state->coverageToColorLocation = coverageToColor->coverageToColorLocation;
3748 state->rasterizationSamples = pointerToCreateInfo->pMultisampleState->rasterizationSamples;
3752 state->sampleLocationsEnable = sampleLocations->sampleLocationsEnable;
3753 state->sampleLocationsInfo = sampleLocations->sampleLocationsInfo;
3754 state->pSampleLocations.resize(sampleLocations->sampleLocationsInfo.sampleLocationsCount);
3756 state->pSampleLocations[i] = sampleLocations->sampleLocationsInfo.pSampleLocations[i];
3757 state->sampleLocationsInfo.pSampleLocations = state->pSampleLocations.data();
3759 state->rasterizationSamples = pointerToCreateInfo->pMultisampleState->rasterizationSamples;
3761 state->sampleMasks.resize(count, 0);
3764 state->sampleMasks[i] = pointerToCreateInfo->pMultisampleState->pSampleMask[i];
3766 state->sampleMasks[i] = 0xFF; // If pSampleMask is NULL, it is treated as if the mask has all bits set to 1
3771 state->representativeFragmentTestEnable = representativeFragment->representativeFragmentTestEnable;
3776 state->fragmentShadingRateSize = fragmentShadingRate->fragmentSize;
3777 state->combinerOps[0] = fragmentShadingRate->combinerOps[0];
3778 state->combinerOps[1] = fragmentShadingRate->combinerOps[1];
3783 state->exclusiveScissorCount = exclusiveScissor->exclusiveScissorCount;
3784 state->exclussiveScissors.resize(exclusiveScissor->exclusiveScissorCount);
3786 state->exclussiveScissors[i] = exclusiveScissor->pExclusiveScissors[i];
3791 state->discardRectangleEnable = discardRectangle->discardRectangleCount > 0;
3792 state->discardRectangles.resize(discardRectangle->discardRectangleCount);
3794 state->discardRectangles[i] = discardRectangle->pDiscardRectangles[i];
3795 state->discardRectangleMode = discardRectangle->discardRectangleMode;
3798 state->attachmentFeedbackLoopEnable |= VK_IMAGE_ASPECT_COLOR_BIT;
3800 state->attachmentFeedbackLoopEnable |= VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
3886 const auto state = &m_internalData->pipelineCreateState;
3888 // Some dynamic state only need to be set when these conditions are met
3891 const bool topologyPatchList = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY) || state->topology == VK_PRIMITIVE_TOPOLOGY_PATCH_LIST;
3892 const bool rasterizerDiscardDisabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE) || !state->rasterizerDiscardEnable;
3893 const bool polygonModeLine = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_POLYGON_MODE_EXT) || state->polygonMode == vk::VK_POLYGON_MODE_LINE;
3895 state->topology == vk::VK_PRIMITIVE_TOPOLOGY_LINE_LIST || state->topology == vk::VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY ||
3896 state->topology == vk::VK_PRIMITIVE_TOPOLOGY_LINE_STRIP || state->topology == vk::VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY;
3897 const bool depthTestEnabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE) || state->depthTestEnable;
3898 const bool depthBoundsTestEnabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE) || state->depthBoundsTestEnable;
3899 const bool depthBiasEnabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE) || state->depthBiasEnable;
3900 const bool stencilTestEnabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE) || state->stencilTestEnable;
3901 const bool logicOpEnabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT) || state->logicOpEnable;
3902 const bool discardRectangle = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT) || state->discardRectangleEnable;
3903 const bool sampleLocationsEnabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT) || state->sampleLocationsEnable;
3904 const bool stippledLineEnabled = !isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT) || state->stippledLineEnable;
3906 for (const auto& blend : state->blendEquations)
3925 if (!state->viewports.empty())
3926 vk.cmdSetViewportWithCount(cmdBuffer, (deUint32)state->viewports.size(), state->viewports.data());
3929 if (!state->scissors.empty())
3930 vk.cmdSetScissorWithCount(cmdBuffer, (deUint32)state->scissors.size(), state->scissors.data());
3934 vk.cmdSetLineWidth(cmdBuffer, state->lineWidth);
3941 depthBiasRepresentationInfo.depthBiasRepresentation = state->depthBiasRepresentation;
3942 depthBiasRepresentationInfo.depthBiasExact = state->depthBiasExact;
3945 depthBiasInfo.depthBiasConstantFactor = state->depthBiasConstantFactor;
3946 depthBiasInfo.depthBiasClamp = state->depthBiasClamp;
3947 depthBiasInfo.depthBiasSlopeFactor = state->depthBiasSlopeFactor;
3952 vk.cmdSetDepthBias(cmdBuffer, state->depthBiasConstantFactor, state->depthBiasClamp, state->depthBiasSlopeFactor);
3958 vk.cmdSetBlendConstants(cmdBuffer, state->blendConstants);
3962 vk.cmdSetDepthBounds(cmdBuffer, state->minDepthBounds, state->maxDepthBounds);
3966 vk.cmdSetStencilCompareMask(cmdBuffer, vk::VK_STENCIL_FACE_FRONT_BIT, state->stencilFront.compareMask);
3967 vk.cmdSetStencilCompareMask(cmdBuffer, vk::VK_STENCIL_FACE_BACK_BIT, state->stencilBack.compareMask);
3972 vk.cmdSetStencilWriteMask(cmdBuffer, vk::VK_STENCIL_FACE_FRONT_BIT, state->stencilFront.writeMask);
3973 vk.cmdSetStencilWriteMask(cmdBuffer, vk::VK_STENCIL_FACE_BACK_BIT, state->stencilBack.writeMask);
3978 vk.cmdSetStencilReference(cmdBuffer, vk::VK_STENCIL_FACE_FRONT_BIT, state->stencilFront.reference);
3979 vk.cmdSetStencilReference(cmdBuffer, vk::VK_STENCIL_FACE_BACK_BIT, state->stencilBack.reference);
3983 vk.cmdSetCullMode(cmdBuffer, state->cullMode);
3987 vk.cmdSetDepthBoundsTestEnable(cmdBuffer, state->depthBoundsTestEnable);
3991 vk.cmdSetDepthCompareOp(cmdBuffer, state->depthCompareOp);
3995 vk.cmdSetDepthTestEnable(cmdBuffer, state->depthTestEnable);
3999 vk.cmdSetDepthWriteEnable(cmdBuffer, state->depthWriteEnable);
4002 vk.cmdSetFrontFace(cmdBuffer, state->frontFace);
4006 vk.cmdSetPrimitiveTopology(cmdBuffer, state->topology);
4011 vk.cmdSetStencilOp(cmdBuffer, vk::VK_STENCIL_FACE_FRONT_BIT, state->stencilFront.failOp, state->stencilFront.passOp, state->stencilFront.depthFailOp, state->stencilFront.compareOp);
4012 vk.cmdSetStencilOp(cmdBuffer, vk::VK_STENCIL_FACE_BACK_BIT, state->stencilBack.failOp, state->stencilBack.passOp, state->stencilBack.depthFailOp, state->stencilBack.compareOp);
4017 vk.cmdSetStencilTestEnable(cmdBuffer, state->stencilTestEnable);
4021 vk.cmdSetVertexInputEXT(cmdBuffer, (deUint32)state->bindings.size(), state->bindings.data(), (deUint32)state->attributes.size(), state->attributes.data());
4025 vk.cmdSetDepthBiasEnable(cmdBuffer, state->depthBiasEnable);
4029 vk.cmdSetLogicOpEXT(cmdBuffer, state->logicOp);
4033 vk.cmdSetPatchControlPointsEXT(cmdBuffer, state->patchControlPoints);
4037 vk.cmdSetPrimitiveRestartEnable(cmdBuffer, state->primitiveRestartEnable);
4040 vk.cmdSetRasterizerDiscardEnable(cmdBuffer, state->rasterizerDiscardEnable);
4043 vk.cmdSetAlphaToCoverageEnableEXT(cmdBuffer, state->alphaToCoverageEnable);
4046 vk.cmdSetAlphaToOneEnableEXT(cmdBuffer, state->alphaToOneEnable);
4049 if (!state->colorBlendAdvanced.empty())
4051 for (deUint32 i = 0; i < (deUint32)state->colorBlendAdvanced.size(); ++i)
4052 if (!isShaderObjectDynamic(vk::VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT) || state->colorBlendEnables[i])
4053 vk.cmdSetColorBlendAdvancedEXT(cmdBuffer, i, 1, &state->colorBlendAdvanced[i]);
4059 if (!state->colorBlendEnables.empty())
4061 vk.cmdSetColorBlendEnableEXT(cmdBuffer, 0, (deUint32)state->colorBlendEnables.size(), state->colorBlendEnables.data());
4073 if (!state->blendEquations.empty())
4075 vk.cmdSetColorBlendEquationEXT(cmdBuffer, 0, (deUint32)state->blendEquations.size(), state->blendEquations.data());
4094 if (!state->colorWriteMasks.empty())
4096 vk.cmdSetColorWriteMaskEXT(cmdBuffer, 0, (deUint32)state->colorWriteMasks.size(), state->colorWriteMasks.data());
4106 vk.cmdSetConservativeRasterizationModeEXT(cmdBuffer, state->conservativeRasterizationMode);
4109 vk.cmdSetCoverageModulationModeNV(cmdBuffer, state->coverageModulationMode);
4112 vk.cmdSetCoverageModulationTableEnableNV(cmdBuffer, state->coverageModulationTableEnable);
4115 if (!state->coverageModulationTable.empty())
4116 vk.cmdSetCoverageModulationTableNV(cmdBuffer, (deUint32)state->coverageModulationTable.size(), state->coverageModulationTable.data());
4119 vk.cmdSetCoverageReductionModeNV(cmdBuffer, state->coverageReductionMode);
4122 vk.cmdSetCoverageToColorEnableNV(cmdBuffer, state->coverageToColorEnable);
4125 vk.cmdSetCoverageToColorLocationNV(cmdBuffer, state->coverageToColorLocation);
4129 vk.cmdSetDepthClampEnableEXT(cmdBuffer, state->depthClampEnable);
4132 vk.cmdSetDepthClipEnableEXT(cmdBuffer, state->depthClipEnable);
4135 vk.cmdSetDepthClipNegativeOneToOneEXT(cmdBuffer, state->negativeOneToOne);
4138 if (state->colorWriteEnableAttachmentCount > 0)
4139 vk.cmdSetColorWriteEnableEXT(cmdBuffer, state->colorWriteEnableAttachmentCount, state->colorWriteEnables.data());
4142 std::vector<VkBool32> enable(state->colorBlendEnables.empty() ? 1u : state->colorBlendEnables.size(), VK_TRUE);
4147 vk.cmdSetExtraPrimitiveOverestimationSizeEXT(cmdBuffer, state->extraPrimitiveOverestimationSize);
4150 vk.cmdSetLineRasterizationModeEXT(cmdBuffer, state->lineRasterizationMode);
4153 vk.cmdSetLineStippleEnableEXT(cmdBuffer, state->stippledLineEnable);
4157 vk.cmdSetLineStippleEXT(cmdBuffer, state->lineStippleFactor, state->lineStipplePattern);
4161 vk.cmdSetLogicOpEnableEXT(cmdBuffer, state->logicOpEnable);
4164 vk.cmdSetPolygonModeEXT(cmdBuffer, state->polygonMode);
4167 vk.cmdSetProvokingVertexModeEXT(cmdBuffer, state->provokingVertexMode);
4170 vk.cmdSetRasterizationSamplesEXT(cmdBuffer, state->rasterizationSamples);
4173 vk.cmdSetFragmentShadingRateKHR(cmdBuffer, &state->fragmentShadingRateSize, state->combinerOps);
4176 vk.cmdSetRasterizationStreamEXT(cmdBuffer, state->rasterizationStream);
4179 vk.cmdSetRepresentativeFragmentTestEnableNV(cmdBuffer, state->representativeFragmentTestEnable);
4182 vk.cmdSetSampleLocationsEnableEXT(cmdBuffer, state->sampleLocationsEnable);
4186 vk.cmdSetSampleLocationsEXT(cmdBuffer, &state->sampleLocationsInfo);
4189 if (!state->sampleMasks.empty())
4190 vk.cmdSetSampleMaskEXT(cmdBuffer, state->rasterizationSamples, state->sampleMasks.data());
4193 vk.cmdSetShadingRateImageEnableNV(cmdBuffer, state->shadingRateImageEnable);
4197 vk.cmdSetTessellationDomainOriginEXT(cmdBuffer, state->domainOrigin);
4200 if (!state->viewportSwizzles.empty())
4202 vk.cmdSetViewportSwizzleNV(cmdBuffer, 0, (deUint32)state->viewportSwizzles.size(), state->viewportSwizzles.data());
4220 vk.cmdSetViewportWScalingEnableNV(cmdBuffer, state->viewportWScalingEnable);
4223 if (state->viewportWScalingCount > 0)
4224 vk.cmdSetViewportWScalingNV(cmdBuffer, 0, state->viewportWScalingCount, state->viewportWScalings.data());
4228 vk.cmdSetVertexInputEXT(cmdBuffer, (deUint32)state->bindings.size(), state->bindings.data(), (deUint32)state->attributes.size(), state->attributes.data());
4231 vk.cmdSetCoarseSampleOrderNV(cmdBuffer, state->coarseSampleOrderType, state->coarseCustomSampleOrderCount, state->coarseCustomSampleOrders.data());
4234 if (state->shadingRatePaletteCount > 0)
4235 vk.cmdSetViewportShadingRatePaletteNV(cmdBuffer, 0, state->shadingRatePaletteCount, state->shadingRatePalettes.data());
4239 if (state->exclusiveScissorCount > 0)
4241 std::vector<VkBool32> exclusiveScissorEnable(state->exclusiveScissorCount, VK_TRUE);
4242 vk.cmdSetExclusiveScissorEnableNV(cmdBuffer, 0u, state->exclusiveScissorCount, exclusiveScissorEnable.data());
4252 if (state->exclusiveScissorCount > 0)
4253 vk.cmdSetExclusiveScissorNV(cmdBuffer, 0u, state->exclusiveScissorCount, state->exclussiveScissors.data());
4256 vk.cmdSetDiscardRectangleEnableEXT(cmdBuffer, state->discardRectangleEnable);
4260 vk.cmdSetDiscardRectangleEXT(cmdBuffer, 0, (deUint32)state->discardRectangles.size(), state->discardRectangles.data());
4264 vk.cmdSetDiscardRectangleModeEXT(cmdBuffer, state->discardRectangleMode);
4267 vk.cmdSetAttachmentFeedbackLoopEnableEXT(cmdBuffer, state->attachmentFeedbackLoopEnable);
4313 // Set all dynamic state that would otherwise have been set with the pipeline