VkPipelineColorBlendAttachmentState
The VkPipelineColorBlendAttachmentState structure is defined as:
typedef struct VkPipelineColorBlendAttachmentState {
VkBool32 blendEnable;
VkBlendFactor srcColorBlendFactor;
VkBlendFactor dstColorBlendFactor;
VkBlendOp colorBlendOp;
VkBlendFactor srcAlphaBlendFactor;
VkBlendFactor dstAlphaBlendFactor;
VkBlendOp alphaBlendOp;
VkColorComponentFlags colorWriteMask;
} VkPipelineColorBlendAttachmentState;
blendEnablecontrols whether blending is enabled for the corresponding color attachment. If blending is not enabled, the source fragment’s color for that attachment is passed through unmodified.srcColorBlendFactorselects which blend factor is used to determine the source factors (Sr,Sg,Sb).dstColorBlendFactorselects which blend factor is used to determine the destination factors (Dr,Dg,Db).colorBlendOpselects which blend operation is used to calculate the RGB values to write to the color attachment.srcAlphaBlendFactorselects which blend factor is used to determine the source factor Sa.dstAlphaBlendFactorselects which blend factor is used to determine the destination factor Da.alphaBlendOpselects which blend operation is used to calculate the alpha values to write to the color attachment.colorWriteMaskis a bitmask of VkColorComponentFlagBits specifying which of the R, G, B, and/or A components are enabled for writing, as described for the Color Write Mask.
Valid Usage
VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608
If the dualSrcBlend feature is not
enabled, srcColorBlendFactor must not be
VK_BLEND_FACTOR_SRC1_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
VK_BLEND_FACTOR_SRC1_ALPHA, or
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609
If the dualSrcBlend feature is not
enabled, dstColorBlendFactor must not be
VK_BLEND_FACTOR_SRC1_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
VK_BLEND_FACTOR_SRC1_ALPHA, or
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610
If the dualSrcBlend feature is not
enabled, srcAlphaBlendFactor must not be
VK_BLEND_FACTOR_SRC1_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
VK_BLEND_FACTOR_SRC1_ALPHA, or
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611
If the dualSrcBlend feature is not
enabled, dstAlphaBlendFactor must not be
VK_BLEND_FACTOR_SRC1_COLOR,
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
VK_BLEND_FACTOR_SRC1_ALPHA, or
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406
If either of colorBlendOp or alphaBlendOp is an
advanced blend operation, then
colorBlendOp must equal alphaBlendOp
VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407
If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend
is VK_FALSE and colorBlendOp is an
advanced blend operation, then
colorBlendOp must be the same for all attachments
VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408
If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend
is VK_FALSE and alphaBlendOp is an
advanced blend operation, then
alphaBlendOp must be the same for all attachments
VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409
If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperations
is VK_FALSE, then colorBlendOp must not be
VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT,
VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT,
VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT,
VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT,
VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT,
VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT,
VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT,
VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT,
VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT,
VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT,
VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT,
VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT,
VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT,
VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT,
VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410
If colorBlendOp or alphaBlendOp is an
advanced blend operation, then
colorAttachmentCount of the subpass this pipeline is compiled
against must be less than or equal to
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments
VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454
If the VK_KHR_portability_subset extension is enabled, and
VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors
is VK_FALSE, srcColorBlendFactor must not be
VK_BLEND_FACTOR_CONSTANT_ALPHA or
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455
If the VK_KHR_portability_subset extension is enabled, and
VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors
is VK_FALSE, dstColorBlendFactor must not be
VK_BLEND_FACTOR_CONSTANT_ALPHA or
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
Valid Usage (Implicit)
VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter
srcColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter
dstColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter
colorBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter
srcAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter
dstAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter
alphaBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter
colorWriteMask must be a valid combination of VkColorComponentFlagBits values