| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Graphics.Vulkan.Core10.Pipeline
- newtype VkBlendFactor = VkBlendFactor Int32
- pattern VK_BLEND_FACTOR_ZERO :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE :: VkBlendFactor
- pattern VK_BLEND_FACTOR_SRC_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_DST_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_SRC_ALPHA :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA :: VkBlendFactor
- pattern VK_BLEND_FACTOR_DST_ALPHA :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA :: VkBlendFactor
- pattern VK_BLEND_FACTOR_CONSTANT_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_CONSTANT_ALPHA :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA :: VkBlendFactor
- pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE :: VkBlendFactor
- pattern VK_BLEND_FACTOR_SRC1_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR :: VkBlendFactor
- pattern VK_BLEND_FACTOR_SRC1_ALPHA :: VkBlendFactor
- pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: VkBlendFactor
- newtype VkBlendOp = VkBlendOp Int32
- pattern VK_BLEND_OP_ADD :: VkBlendOp
- pattern VK_BLEND_OP_SUBTRACT :: VkBlendOp
- pattern VK_BLEND_OP_REVERSE_SUBTRACT :: VkBlendOp
- pattern VK_BLEND_OP_MIN :: VkBlendOp
- pattern VK_BLEND_OP_MAX :: VkBlendOp
- newtype VkCompareOp = VkCompareOp Int32
- pattern VK_COMPARE_OP_NEVER :: VkCompareOp
- pattern VK_COMPARE_OP_LESS :: VkCompareOp
- pattern VK_COMPARE_OP_EQUAL :: VkCompareOp
- pattern VK_COMPARE_OP_LESS_OR_EQUAL :: VkCompareOp
- pattern VK_COMPARE_OP_GREATER :: VkCompareOp
- pattern VK_COMPARE_OP_NOT_EQUAL :: VkCompareOp
- pattern VK_COMPARE_OP_GREATER_OR_EQUAL :: VkCompareOp
- pattern VK_COMPARE_OP_ALWAYS :: VkCompareOp
- newtype VkDynamicState = VkDynamicState Int32
- pattern VK_DYNAMIC_STATE_VIEWPORT :: VkDynamicState
- pattern VK_DYNAMIC_STATE_SCISSOR :: VkDynamicState
- pattern VK_DYNAMIC_STATE_LINE_WIDTH :: VkDynamicState
- pattern VK_DYNAMIC_STATE_DEPTH_BIAS :: VkDynamicState
- pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS :: VkDynamicState
- pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS :: VkDynamicState
- pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK :: VkDynamicState
- pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK :: VkDynamicState
- pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE :: VkDynamicState
- newtype VkPolygonMode = VkPolygonMode Int32
- pattern VK_POLYGON_MODE_FILL :: VkPolygonMode
- pattern VK_POLYGON_MODE_LINE :: VkPolygonMode
- pattern VK_POLYGON_MODE_POINT :: VkPolygonMode
- newtype VkFrontFace = VkFrontFace Int32
- pattern VK_FRONT_FACE_COUNTER_CLOCKWISE :: VkFrontFace
- pattern VK_FRONT_FACE_CLOCKWISE :: VkFrontFace
- newtype VkLogicOp = VkLogicOp Int32
- pattern VK_LOGIC_OP_CLEAR :: VkLogicOp
- pattern VK_LOGIC_OP_AND :: VkLogicOp
- pattern VK_LOGIC_OP_AND_REVERSE :: VkLogicOp
- pattern VK_LOGIC_OP_COPY :: VkLogicOp
- pattern VK_LOGIC_OP_AND_INVERTED :: VkLogicOp
- pattern VK_LOGIC_OP_NO_OP :: VkLogicOp
- pattern VK_LOGIC_OP_XOR :: VkLogicOp
- pattern VK_LOGIC_OP_OR :: VkLogicOp
- pattern VK_LOGIC_OP_NOR :: VkLogicOp
- pattern VK_LOGIC_OP_EQUIVALENT :: VkLogicOp
- pattern VK_LOGIC_OP_INVERT :: VkLogicOp
- pattern VK_LOGIC_OP_OR_REVERSE :: VkLogicOp
- pattern VK_LOGIC_OP_COPY_INVERTED :: VkLogicOp
- pattern VK_LOGIC_OP_OR_INVERTED :: VkLogicOp
- pattern VK_LOGIC_OP_NAND :: VkLogicOp
- pattern VK_LOGIC_OP_SET :: VkLogicOp
- newtype VkPrimitiveTopology = VkPrimitiveTopology Int32
- pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology
- pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology
- newtype VkStencilOp = VkStencilOp Int32
- pattern VK_STENCIL_OP_KEEP :: VkStencilOp
- pattern VK_STENCIL_OP_ZERO :: VkStencilOp
- pattern VK_STENCIL_OP_REPLACE :: VkStencilOp
- pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP :: VkStencilOp
- pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP :: VkStencilOp
- pattern VK_STENCIL_OP_INVERT :: VkStencilOp
- pattern VK_STENCIL_OP_INCREMENT_AND_WRAP :: VkStencilOp
- pattern VK_STENCIL_OP_DECREMENT_AND_WRAP :: VkStencilOp
- newtype VkVertexInputRate = VkVertexInputRate Int32
- pattern VK_VERTEX_INPUT_RATE_VERTEX :: VkVertexInputRate
- pattern VK_VERTEX_INPUT_RATE_INSTANCE :: VkVertexInputRate
- newtype VkPipelineDepthStencilStateCreateFlags = VkPipelineDepthStencilStateCreateFlags VkFlags
- newtype VkPipelineDynamicStateCreateFlags = VkPipelineDynamicStateCreateFlags VkFlags
- newtype VkPipelineColorBlendStateCreateFlags = VkPipelineColorBlendStateCreateFlags VkFlags
- newtype VkPipelineMultisampleStateCreateFlags = VkPipelineMultisampleStateCreateFlags VkFlags
- newtype VkPipelineRasterizationStateCreateFlags = VkPipelineRasterizationStateCreateFlags VkFlags
- newtype VkPipelineViewportStateCreateFlags = VkPipelineViewportStateCreateFlags VkFlags
- newtype VkPipelineTessellationStateCreateFlags = VkPipelineTessellationStateCreateFlags VkFlags
- newtype VkPipelineInputAssemblyStateCreateFlags = VkPipelineInputAssemblyStateCreateFlags VkFlags
- newtype VkPipelineVertexInputStateCreateFlags = VkPipelineVertexInputStateCreateFlags VkFlags
- newtype VkPipelineShaderStageCreateFlags = VkPipelineShaderStageCreateFlags VkFlags
- newtype VkShaderStageFlagBits = VkShaderStageFlagBits VkFlags
- pattern VK_SHADER_STAGE_VERTEX_BIT :: VkShaderStageFlagBits
- pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT :: VkShaderStageFlagBits
- pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: VkShaderStageFlagBits
- pattern VK_SHADER_STAGE_GEOMETRY_BIT :: VkShaderStageFlagBits
- pattern VK_SHADER_STAGE_FRAGMENT_BIT :: VkShaderStageFlagBits
- pattern VK_SHADER_STAGE_COMPUTE_BIT :: VkShaderStageFlagBits
- pattern VK_SHADER_STAGE_ALL_GRAPHICS :: VkShaderStageFlagBits
- pattern VK_SHADER_STAGE_ALL :: VkShaderStageFlagBits
- newtype VkPipelineCreateFlagBits = VkPipelineCreateFlagBits VkFlags
- pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT :: VkPipelineCreateFlagBits
- pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT :: VkPipelineCreateFlagBits
- pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT :: VkPipelineCreateFlagBits
- newtype VkColorComponentFlagBits = VkColorComponentFlagBits VkFlags
- pattern VK_COLOR_COMPONENT_R_BIT :: VkColorComponentFlagBits
- pattern VK_COLOR_COMPONENT_G_BIT :: VkColorComponentFlagBits
- pattern VK_COLOR_COMPONENT_B_BIT :: VkColorComponentFlagBits
- pattern VK_COLOR_COMPONENT_A_BIT :: VkColorComponentFlagBits
- newtype VkCullModeFlagBits = VkCullModeFlagBits VkFlags
- pattern VK_CULL_MODE_FRONT_BIT :: VkCullModeFlagBits
- pattern VK_CULL_MODE_BACK_BIT :: VkCullModeFlagBits
- pattern VK_CULL_MODE_NONE :: VkCullModeFlagBits
- pattern VK_CULL_MODE_FRONT_AND_BACK :: VkCullModeFlagBits
- type VkPipeline = Ptr VkPipeline_T
- type VkPipelineLayout = Ptr VkPipelineLayout_T
- type VkRenderPass = Ptr VkRenderPass_T
- vkCreateGraphicsPipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkGraphicsPipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult
- vkCreateComputePipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkComputePipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult
- vkDestroyPipeline :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO ()
- data VkOffset2D = VkOffset2D {}
- data VkExtent2D = VkExtent2D {}
- data VkViewport = VkViewport {}
- data VkRect2D = VkRect2D {}
- data VkSpecializationMapEntry = VkSpecializationMapEntry {}
- data VkSpecializationInfo = VkSpecializationInfo {}
- data VkPipelineShaderStageCreateInfo = VkPipelineShaderStageCreateInfo {}
- data VkComputePipelineCreateInfo = VkComputePipelineCreateInfo {}
- data VkVertexInputBindingDescription = VkVertexInputBindingDescription {}
- data VkVertexInputAttributeDescription = VkVertexInputAttributeDescription {}
- data VkPipelineVertexInputStateCreateInfo = VkPipelineVertexInputStateCreateInfo {
- vkSType :: VkStructureType
- vkPNext :: Ptr ()
- vkFlags :: VkPipelineVertexInputStateCreateFlags
- vkVertexBindingDescriptionCount :: Word32
- vkPVertexBindingDescriptions :: Ptr VkVertexInputBindingDescription
- vkVertexAttributeDescriptionCount :: Word32
- vkPVertexAttributeDescriptions :: Ptr VkVertexInputAttributeDescription
- data VkPipelineInputAssemblyStateCreateInfo = VkPipelineInputAssemblyStateCreateInfo {}
- data VkPipelineTessellationStateCreateInfo = VkPipelineTessellationStateCreateInfo {}
- data VkPipelineViewportStateCreateInfo = VkPipelineViewportStateCreateInfo {}
- data VkPipelineRasterizationStateCreateInfo = VkPipelineRasterizationStateCreateInfo {
- vkSType :: VkStructureType
- vkPNext :: Ptr ()
- vkFlags :: VkPipelineRasterizationStateCreateFlags
- vkDepthClampEnable :: VkBool32
- vkRasterizerDiscardEnable :: VkBool32
- vkPolygonMode :: VkPolygonMode
- vkCullMode :: VkCullModeFlags
- vkFrontFace :: VkFrontFace
- vkDepthBiasEnable :: VkBool32
- vkDepthBiasConstantFactor :: CFloat
- vkDepthBiasClamp :: CFloat
- vkDepthBiasSlopeFactor :: CFloat
- vkLineWidth :: CFloat
- data VkPipelineMultisampleStateCreateInfo = VkPipelineMultisampleStateCreateInfo {}
- data VkPipelineColorBlendAttachmentState = VkPipelineColorBlendAttachmentState {}
- data VkPipelineColorBlendStateCreateInfo = VkPipelineColorBlendStateCreateInfo {}
- data VkPipelineDynamicStateCreateInfo = VkPipelineDynamicStateCreateInfo {}
- data VkStencilOpState = VkStencilOpState {}
- data VkPipelineDepthStencilStateCreateInfo = VkPipelineDepthStencilStateCreateInfo {
- vkSType :: VkStructureType
- vkPNext :: Ptr ()
- vkFlags :: VkPipelineDepthStencilStateCreateFlags
- vkDepthTestEnable :: VkBool32
- vkDepthWriteEnable :: VkBool32
- vkDepthCompareOp :: VkCompareOp
- vkDepthBoundsTestEnable :: VkBool32
- vkStencilTestEnable :: VkBool32
- vkFront :: VkStencilOpState
- vkBack :: VkStencilOpState
- vkMinDepthBounds :: CFloat
- vkMaxDepthBounds :: CFloat
- data VkGraphicsPipelineCreateInfo = VkGraphicsPipelineCreateInfo {
- vkSType :: VkStructureType
- vkPNext :: Ptr ()
- vkFlags :: VkPipelineCreateFlags
- vkStageCount :: Word32
- vkPStages :: Ptr VkPipelineShaderStageCreateInfo
- vkPVertexInputState :: Ptr VkPipelineVertexInputStateCreateInfo
- vkPInputAssemblyState :: Ptr VkPipelineInputAssemblyStateCreateInfo
- vkPTessellationState :: Ptr VkPipelineTessellationStateCreateInfo
- vkPViewportState :: Ptr VkPipelineViewportStateCreateInfo
- vkPRasterizationState :: Ptr VkPipelineRasterizationStateCreateInfo
- vkPMultisampleState :: Ptr VkPipelineMultisampleStateCreateInfo
- vkPDepthStencilState :: Ptr VkPipelineDepthStencilStateCreateInfo
- vkPColorBlendState :: Ptr VkPipelineColorBlendStateCreateInfo
- vkPDynamicState :: Ptr VkPipelineDynamicStateCreateInfo
- vkLayout :: VkPipelineLayout
- vkRenderPass :: VkRenderPass
- vkSubpass :: Word32
- vkBasePipelineHandle :: VkPipeline
- vkBasePipelineIndex :: Int32
- type VkPipelineCreateFlags = VkPipelineCreateFlagBits
- type VkColorComponentFlags = VkColorComponentFlagBits
- type VkCullModeFlags = VkCullModeFlagBits
- type VkSampleMask = Word32
Documentation
newtype VkBlendFactor Source #
VkBlendFactor - Framebuffer blending factors
Description
The semantics of each enum value is described in the table below:
+-----------------------------------------+-------------------+--------+ | VkBlendFactor | RGB Blend Factors | Alpha | | | (Sr,Sg,Sb) or | Blend | | | (Dr,Dg,Db) | Factor | | | | (Sa or | | | | Da) | +=========================================+===================+========+ | @VK_BLEND_FACTOR_ZERO@ | (0,0,0) | 0 | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE@ | (1,1,1) | 1 | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_SRC_COLOR@ | (Rs0,Gs0,Bs0) | As0 | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR@ | (1-Rs0,1-Gs0,1-Bs | 1-As0 | | | 0) | | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_DST_COLOR@ | (Rd,Gd,Bd) | Ad | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR@ | (1-Rd,1-Gd,1-Bd) | 1-Ad | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_SRC_ALPHA@ | (As0,As0,As0) | As0 | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA@ | (1-As0,1-As0,1-As | 1-As0 | | | 0) | | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_DST_ALPHA@ | (Ad,Ad,Ad) | Ad | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA@ | (1-Ad,1-Ad,1-Ad) | 1-Ad | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_CONSTANT_COLOR@ | (Rc,Gc,Bc) | Ac | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COL | (1-Rc,1-Gc,1-Bc) | 1-Ac | | OR@ | | | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_CONSTANT_ALPHA@ | (Ac,Ac,Ac) | Ac | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALP | (1-Ac,1-Ac,1-Ac) | 1-Ac | | HA@ | | | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_SRC_ALPHA_SATURATE@ | (f,f,f); f = | 1 | | | min(As0,1-Ad) | | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_SRC1_COLOR@ | (Rs1,Gs1,Bs1) | As1 | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR@ | (1-Rs1,1-Gs1,1-Bs | 1-As1 | | | 1) | | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_SRC1_ALPHA@ | (As1,As1,As1) | As1 | +-----------------------------------------+-------------------+--------+ | @VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA@ | (1-As1,1-As1,1-As | 1-As1 | | | 1) | | +-----------------------------------------+-------------------+--------+ Blend Factors
In this table, the following conventions are used:
- Rs0,Gs0,Bs0 and As0 represent the first source color R, G, B, and A components, respectively, for the fragment output location corresponding to the color attachment being blended.
- Rs1,Gs1,Bs1 and As1 represent the second source color R, G, B, and A components, respectively, used in dual source blending modes, for the fragment output location corresponding to the color attachment being blended.
- Rd,Gd,Bd and Ad represent the R, G, B, and A components of the destination color. That is, the color currently in the corresponding color attachment for this fragment/sample.
- Rc,Gc,Bc and Ac represent the blend constant R, G, B, and A components, respectively.
See Also
Constructors
| VkBlendFactor Int32 |
pattern VK_BLEND_FACTOR_ZERO :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_ONE :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_SRC_COLOR :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_DST_COLOR :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_SRC_ALPHA :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_DST_ALPHA :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_CONSTANT_COLOR :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_CONSTANT_ALPHA :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_SRC1_COLOR :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_SRC1_ALPHA :: VkBlendFactor Source #
pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: VkBlendFactor Source #
VkBlendOp - Framebuffer blending operations
Description
The semantics of each basic blend operations is described in the table below:
+-------------------------------+--------------------+----------------+ | VkBlendOp | RGB Components | Alpha | | | | Component | +===============================+====================+================+ | @VK_BLEND_OP_ADD@ | R = Rs0 × Sr + Rd | A = As0 × Sa + | | | × Dr | Ad × Da | | | G = Gs0 × Sg + Gd | | | | × Dg | | | | B = Bs0 × Sb + Bd | | | | × Db | | +-------------------------------+--------------------+----------------+ | @VK_BLEND_OP_SUBTRACT@ | R = Rs0 × Sr - Rd | A = As0 × Sa - | | | × Dr | Ad × Da | | | G = Gs0 × Sg - Gd | | | | × Dg | | | | B = Bs0 × Sb - Bd | | | | × Db | | +-------------------------------+--------------------+----------------+ | @VK_BLEND_OP_REVERSE_SUBTRACT | R = Rd × Dr - Rs0 | A = Ad × Da - | | @ | × Sr | As0 × Sa | | | G = Gd × Dg - Gs0 | | | | × Sg | | | | B = Bd × Db - Bs0 | | | | × Sb | | +-------------------------------+--------------------+----------------+ | @VK_BLEND_OP_MIN@ | R = min(Rs0,Rd) | A = | | | G = min(Gs0,Gd) | min(As0,Ad) | | | B = min(Bs0,Bd) | | +-------------------------------+--------------------+----------------+ | @VK_BLEND_OP_MAX@ | R = max(Rs0,Rd) | A = | | | G = max(Gs0,Gd) | max(As0,Ad) | | | B = max(Bs0,Bd) | | +-------------------------------+--------------------+----------------+ Basic Blend Operations
In this table, the following conventions are used:
- Rs0, Gs0, Bs0 and As0 represent the first source color R, G, B, and A components, respectively.
- Rd, Gd, Bd and Ad represent the R, G, B, and A components of the destination color. That is, the color currently in the corresponding color attachment for this fragment/sample.
- Sr, Sg, Sb and Sa represent the source blend factor R, G, B, and A components, respectively.
- Dr, Dg, Db and Da represent the destination blend factor R, G, B, and A components, respectively.
The blending operation produces a new set of values R, G, B and A, which are written to the framebuffer attachment. If blending is not enabled for this attachment, then R, G, B and A are assigned Rs0, Gs0, Bs0 and As0, respectively.
If the color attachment is fixed-point, the components of the source and destination values and blend factors are each clamped to [0,1] or [-1,1] respectively for an unsigned normalized or signed normalized color attachment prior to evaluating the blend operations. If the color attachment is floating-point, no clamping occurs.
See Also
pattern VK_BLEND_OP_ADD :: VkBlendOp Source #
pattern VK_BLEND_OP_SUBTRACT :: VkBlendOp Source #
pattern VK_BLEND_OP_REVERSE_SUBTRACT :: VkBlendOp Source #
pattern VK_BLEND_OP_MIN :: VkBlendOp Source #
pattern VK_BLEND_OP_MAX :: VkBlendOp Source #
newtype VkCompareOp Source #
VkCompareOp - Stencil comparison function
See Also
VkPipelineDepthStencilStateCreateInfo,
VkSamplerCreateInfo, VkStencilOpState
Constructors
| VkCompareOp Int32 |
Instances
pattern VK_COMPARE_OP_NEVER :: VkCompareOp Source #
VK_COMPARE_OP_NEVER specifies that the test never passes.
pattern VK_COMPARE_OP_LESS :: VkCompareOp Source #
VK_COMPARE_OP_LESS specifies that the test passes when R < S.
pattern VK_COMPARE_OP_EQUAL :: VkCompareOp Source #
VK_COMPARE_OP_EQUAL specifies that the test passes when R = S.
pattern VK_COMPARE_OP_LESS_OR_EQUAL :: VkCompareOp Source #
VK_COMPARE_OP_LESS_OR_EQUAL specifies that the test passes when R ≤ S.
pattern VK_COMPARE_OP_GREATER :: VkCompareOp Source #
VK_COMPARE_OP_GREATER specifies that the test passes when R > S.
pattern VK_COMPARE_OP_NOT_EQUAL :: VkCompareOp Source #
VK_COMPARE_OP_NOT_EQUAL specifies that the test passes when R ≠ S.
pattern VK_COMPARE_OP_GREATER_OR_EQUAL :: VkCompareOp Source #
VK_COMPARE_OP_GREATER_OR_EQUAL specifies that the test passes when R ≥
S.
pattern VK_COMPARE_OP_ALWAYS :: VkCompareOp Source #
VK_COMPARE_OP_ALWAYS specifies that the test always passes.
newtype VkDynamicState Source #
VkDynamicState - Indicate which dynamic state is taken from dynamic state commands
See Also
Constructors
| VkDynamicState Int32 |
pattern VK_DYNAMIC_STATE_VIEWPORT :: VkDynamicState Source #
VK_DYNAMIC_STATE_VIEWPORT specifies that the pViewports state in
VkPipelineViewportStateCreateInfo will be ignored and must be set
dynamically with
vkCmdSetViewport before
any draw commands. The number of viewports used by a pipeline is still
specified by the viewportCount member of
VkPipelineViewportStateCreateInfo.
pattern VK_DYNAMIC_STATE_SCISSOR :: VkDynamicState Source #
VK_DYNAMIC_STATE_SCISSOR specifies that the pScissors state in
VkPipelineViewportStateCreateInfo will be ignored and must be set
dynamically with
vkCmdSetScissor before
any draw commands. The number of scissor rectangles used by a pipeline
is still specified by the scissorCount member of
VkPipelineViewportStateCreateInfo.
pattern VK_DYNAMIC_STATE_LINE_WIDTH :: VkDynamicState Source #
VK_DYNAMIC_STATE_LINE_WIDTH specifies that the lineWidth state in
VkPipelineRasterizationStateCreateInfo will be ignored and must be
set dynamically with
vkCmdSetLineWidth before
any draw commands that generate line primitives for the rasterizer.
pattern VK_DYNAMIC_STATE_DEPTH_BIAS :: VkDynamicState Source #
VK_DYNAMIC_STATE_DEPTH_BIAS specifies that the
depthBiasConstantFactor, depthBiasClamp and depthBiasSlopeFactor
states in VkPipelineRasterizationStateCreateInfo will be ignored and
must be set dynamically with
vkCmdSetDepthBias before
any draws are performed with depthBiasEnable in
VkPipelineRasterizationStateCreateInfo set to VK_TRUE.
pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS :: VkDynamicState Source #
VK_DYNAMIC_STATE_BLEND_CONSTANTS specifies that the blendConstants
state in VkPipelineColorBlendStateCreateInfo will be ignored and
must be set dynamically with
vkCmdSetBlendConstants
before any draws are performed with a pipeline state with
VkPipelineColorBlendAttachmentState member blendEnable set to
VK_TRUE and any of the blend functions using a constant blend color.
pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS :: VkDynamicState Source #
VK_DYNAMIC_STATE_DEPTH_BOUNDS specifies that the minDepthBounds and
maxDepthBounds states of VkPipelineDepthStencilStateCreateInfo will
be ignored and must be set dynamically with
vkCmdSetDepthBounds
before any draws are performed with a pipeline state with
VkPipelineDepthStencilStateCreateInfo member depthBoundsTestEnable
set to VK_TRUE.
pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK :: VkDynamicState Source #
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK specifies that the compareMask
state in VkPipelineDepthStencilStateCreateInfo for both front and
back will be ignored and must be set dynamically with
vkCmdSetStencilCompareMask
before any draws are performed with a pipeline state with
VkPipelineDepthStencilStateCreateInfo member stencilTestEnable set
to VK_TRUE
pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK :: VkDynamicState Source #
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK specifies that the writeMask
state in VkPipelineDepthStencilStateCreateInfo for both front and
back will be ignored and must be set dynamically with
vkCmdSetStencilWriteMask
before any draws are performed with a pipeline state with
VkPipelineDepthStencilStateCreateInfo member stencilTestEnable set
to VK_TRUE
pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE :: VkDynamicState Source #
VK_DYNAMIC_STATE_STENCIL_REFERENCE specifies that the reference
state in VkPipelineDepthStencilStateCreateInfo for both front and
back will be ignored and must be set dynamically with
vkCmdSetStencilReference
before any draws are performed with a pipeline state with
VkPipelineDepthStencilStateCreateInfo member stencilTestEnable set
to VK_TRUE
newtype VkPolygonMode Source #
VkPolygonMode - Control polygon rasterization mode
Description
VK_POLYGON_MODE_POINTspecifies that polygon vertices are drawn as points.
VK_POLYGON_MODE_LINEspecifies that polygon edges are drawn as line segments.VK_POLYGON_MODE_FILLspecifies that polygons are rendered using the polygon rasterization rules in this section.VK_POLYGON_MODE_FILL_RECTANGLE_NVspecifies that polygons are rendered using polygon rasterization rules, modified to consider a sample within the primitive if the sample location is inside the axis-aligned bounding box of the triangle after projection. Note that the barycentric weights used in attribute interpolation can extend outside the range [0,1] when these primitives are shaded. Special treatment is given to a sample position on the boundary edge of the bounding box. In such a case, if two rectangles lie on either side of a common edge (with identical endpoints) on which a sample position lies, then exactly one of the triangles must produce a fragment that covers that sample during rasterization.Polygons rendered in
VK_POLYGON_MODE_FILL_RECTANGLE_NVmode may be clipped by the frustum or by user clip planes. If clipping is applied, the triangle is culled rather than clipped.Area calculation and facingness are determined for
VK_POLYGON_MODE_FILL_RECTANGLE_NVmode using the triangle’s vertices.
These modes affect only the final rasterization of polygons: in particular, a polygon’s vertices are shaded and the polygon is clipped and possibly culled before these modes are applied.
See Also
Constructors
| VkPolygonMode Int32 |
pattern VK_POLYGON_MODE_FILL :: VkPolygonMode Source #
pattern VK_POLYGON_MODE_LINE :: VkPolygonMode Source #
pattern VK_POLYGON_MODE_POINT :: VkPolygonMode Source #
newtype VkFrontFace Source #
VkFrontFace - Interpret polygon front-facing orientation
Description
VK_FRONT_FACE_COUNTER_CLOCKWISEspecifies that a triangle with positive area is considered front-facing.
VK_FRONT_FACE_CLOCKWISEspecifies that a triangle with negative area is considered front-facing.
Any triangle which is not front-facing is back-facing, including zero-area triangles.
See Also
Constructors
| VkFrontFace Int32 |
Instances
pattern VK_FRONT_FACE_COUNTER_CLOCKWISE :: VkFrontFace Source #
pattern VK_FRONT_FACE_CLOCKWISE :: VkFrontFace Source #
VkLogicOp - Framebuffer logical operations
Description
The logical operations supported by Vulkan are summarized in the following table in which
- ¬ is bitwise invert,
- ∧ is bitwise and,
- ∨ is bitwise or,
- ⊕ is bitwise exclusive or,
- s is the fragment’s Rs0, Gs0, Bs0 or As0 component value for the fragment output corresponding to the color attachment being updated, and
- d is the color attachment’s R, G, B or A component value:
+-----------------------------------+-----------------------------------+ | Mode | Operation | +===================================+===================================+ | @VK_LOGIC_OP_CLEAR@ | 0 | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_AND@ | s ∧ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_AND_REVERSE@ | s ∧ ¬ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_COPY@ | s | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_AND_INVERTED@ | ¬ s ∧ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_NO_OP@ | d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_XOR@ | s ⊕ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_OR@ | s ∨ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_NOR@ | ¬ (s ∨ d) | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_EQUIVALENT@ | ¬ (s ⊕ d) | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_INVERT@ | ¬ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_OR_REVERSE@ | s ∨ ¬ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_COPY_INVERTED@ | ¬ s | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_OR_INVERTED@ | ¬ s ∨ d | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_NAND@ | ¬ (s ∧ d) | +-----------------------------------+-----------------------------------+ | @VK_LOGIC_OP_SET@ | all 1s | +-----------------------------------+-----------------------------------+ Logical Operations
The result of the logical operation is then written to the color attachment as controlled by the component write mask, described in Blend Operations.
See Also
pattern VK_LOGIC_OP_CLEAR :: VkLogicOp Source #
pattern VK_LOGIC_OP_AND :: VkLogicOp Source #
pattern VK_LOGIC_OP_AND_REVERSE :: VkLogicOp Source #
pattern VK_LOGIC_OP_COPY :: VkLogicOp Source #
pattern VK_LOGIC_OP_AND_INVERTED :: VkLogicOp Source #
pattern VK_LOGIC_OP_NO_OP :: VkLogicOp Source #
pattern VK_LOGIC_OP_XOR :: VkLogicOp Source #
pattern VK_LOGIC_OP_OR :: VkLogicOp Source #
pattern VK_LOGIC_OP_NOR :: VkLogicOp Source #
pattern VK_LOGIC_OP_EQUIVALENT :: VkLogicOp Source #
pattern VK_LOGIC_OP_INVERT :: VkLogicOp Source #
pattern VK_LOGIC_OP_OR_REVERSE :: VkLogicOp Source #
pattern VK_LOGIC_OP_COPY_INVERTED :: VkLogicOp Source #
pattern VK_LOGIC_OP_OR_INVERTED :: VkLogicOp Source #
pattern VK_LOGIC_OP_NAND :: VkLogicOp Source #
pattern VK_LOGIC_OP_SET :: VkLogicOp Source #
newtype VkPrimitiveTopology Source #
VkPrimitiveTopology - Supported primitive topologies
Description
See Also
Constructors
| VkPrimitiveTopology Int32 |
newtype VkStencilOp Source #
VkStencilOp - Stencil comparison function
Description
VK_STENCIL_OP_KEEPkeeps the current value.
VK_STENCIL_OP_ZEROsets the value to 0.VK_STENCIL_OP_REPLACEsets the value toreference.VK_STENCIL_OP_INCREMENT_AND_CLAMPincrements the current value and clamps to the maximum representable unsigned value.VK_STENCIL_OP_DECREMENT_AND_CLAMPdecrements the current value and clamps to 0.VK_STENCIL_OP_INVERTbitwise-inverts the current value.VK_STENCIL_OP_INCREMENT_AND_WRAPincrements the current value and wraps to 0 when the maximum value would have been exceeded.VK_STENCIL_OP_DECREMENT_AND_WRAPdecrements the current value and wraps to the maximum possible value when the value would go below 0.
For purposes of increment and decrement, the stencil bits are considered as an unsigned integer.
If the stencil test fails, the sample’s coverage bit is cleared in the fragment. If there is no stencil framebuffer attachment, stencil modification cannot occur, and it is as if the stencil tests always pass.
If the stencil test passes, the writeMask member of the
VkStencilOpState structures controls how the updated stencil value is
written to the stencil framebuffer attachment.
The least significant s bits of writeMask, where s is the number of
bits in the stencil framebuffer attachment, specify an integer mask.
Where a 1 appears in this mask, the corresponding bit in the stencil
value in the depth/stencil attachment is written; where a 0 appears,
the bit is not written. The writeMask value uses either the
front-facing or back-facing state based on the facingness of the
fragment. Fragments generated by front-facing primitives use the front
mask and fragments generated by back-facing primitives use the back
mask.
See Also
Constructors
| VkStencilOp Int32 |
Instances
pattern VK_STENCIL_OP_KEEP :: VkStencilOp Source #
pattern VK_STENCIL_OP_ZERO :: VkStencilOp Source #
pattern VK_STENCIL_OP_REPLACE :: VkStencilOp Source #
pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP :: VkStencilOp Source #
pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP :: VkStencilOp Source #
pattern VK_STENCIL_OP_INVERT :: VkStencilOp Source #
pattern VK_STENCIL_OP_INCREMENT_AND_WRAP :: VkStencilOp Source #
pattern VK_STENCIL_OP_DECREMENT_AND_WRAP :: VkStencilOp Source #
newtype VkVertexInputRate Source #
VkVertexInputRate - Specify rate at which vertex attributes are pulled from buffers
See Also
Constructors
| VkVertexInputRate Int32 |
pattern VK_VERTEX_INPUT_RATE_VERTEX :: VkVertexInputRate Source #
VK_VERTEX_INPUT_RATE_VERTEX specifies that vertex attribute addressing
is a function of the vertex index.
pattern VK_VERTEX_INPUT_RATE_INSTANCE :: VkVertexInputRate Source #
VK_VERTEX_INPUT_RATE_INSTANCE specifies that vertex attribute
addressing is a function of the instance index.
newtype VkPipelineDepthStencilStateCreateFlags Source #
VkPipelineDepthStencilStateCreateFlags - Reserved for future use
Description
VkPipelineDepthStencilStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineDepthStencilStateCreateFlags VkFlags |
Instances
newtype VkPipelineDynamicStateCreateFlags Source #
VkPipelineDynamicStateCreateFlags - Reserved for future use
Description
VkPipelineDynamicStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineDynamicStateCreateFlags VkFlags |
Instances
newtype VkPipelineColorBlendStateCreateFlags Source #
VkPipelineColorBlendStateCreateFlags - Reserved for future use
Description
VkPipelineColorBlendStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineColorBlendStateCreateFlags VkFlags |
Instances
newtype VkPipelineMultisampleStateCreateFlags Source #
VkPipelineMultisampleStateCreateFlags - Reserved for future use
Description
VkPipelineMultisampleStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineMultisampleStateCreateFlags VkFlags |
Instances
newtype VkPipelineRasterizationStateCreateFlags Source #
VkPipelineRasterizationStateCreateFlags - Reserved for future use
Description
VkPipelineRasterizationStateCreateFlags is a bitmask type for setting
a mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineRasterizationStateCreateFlags VkFlags |
Instances
newtype VkPipelineViewportStateCreateFlags Source #
VkPipelineViewportStateCreateFlags - Reserved for future use
Description
VkPipelineViewportStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineViewportStateCreateFlags VkFlags |
Instances
newtype VkPipelineTessellationStateCreateFlags Source #
VkPipelineTessellationStateCreateFlags - Reserved for future use
Description
VkPipelineTessellationStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineTessellationStateCreateFlags VkFlags |
Instances
newtype VkPipelineInputAssemblyStateCreateFlags Source #
VkPipelineInputAssemblyStateCreateFlags - Reserved for future use
Description
VkPipelineInputAssemblyStateCreateFlags is a bitmask type for setting
a mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineInputAssemblyStateCreateFlags VkFlags |
Instances
newtype VkPipelineVertexInputStateCreateFlags Source #
VkPipelineVertexInputStateCreateFlags - Reserved for future use
Description
VkPipelineVertexInputStateCreateFlags is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Constructors
| VkPipelineVertexInputStateCreateFlags VkFlags |
Instances
newtype VkPipelineShaderStageCreateFlags Source #
VkPipelineShaderStageCreateFlags - Reserved for future use
Description
VkPipelineShaderStageCreateFlags is a bitmask type for setting a mask,
but is currently reserved for future use.
See Also
Constructors
| VkPipelineShaderStageCreateFlags VkFlags |
Instances
newtype VkShaderStageFlagBits Source #
VkShaderStageFlagBits - Bitmask specifying a pipeline stage
See Also
VkPipelineShaderStageCreateInfo,
VkShaderStageFlags,
vkGetShaderInfoAMD
Constructors
| VkShaderStageFlagBits VkFlags |
pattern VK_SHADER_STAGE_VERTEX_BIT :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_VERTEX_BIT specifies the vertex stage.
pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT specifies the tessellation
control stage.
pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT specifies the tessellation
evaluation stage.
pattern VK_SHADER_STAGE_GEOMETRY_BIT :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_GEOMETRY_BIT specifies the geometry stage.
pattern VK_SHADER_STAGE_FRAGMENT_BIT :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_FRAGMENT_BIT specifies the fragment stage.
pattern VK_SHADER_STAGE_COMPUTE_BIT :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_COMPUTE_BIT specifies the compute stage.
pattern VK_SHADER_STAGE_ALL_GRAPHICS :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_ALL_GRAPHICS is a combination of bits used as
shorthand to specify all graphics stages defined above (excluding the
compute stage).
pattern VK_SHADER_STAGE_ALL :: VkShaderStageFlagBits Source #
VK_SHADER_STAGE_ALL is a combination of bits used as shorthand to
specify all shader stages supported by the device, including all
additional stages which are introduced by extensions.
newtype VkPipelineCreateFlagBits Source #
VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created
Description
VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BITspecifies that the created pipeline will not be optimized. Using this flag may reduce the time taken to create the pipeline.
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BITspecifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent call tovkCreateGraphicsPipelinesorvkCreateComputePipelines.VK_PIPELINE_CREATE_DERIVATIVE_BITspecifies that the pipeline to be created will be a child of a previously created parent pipeline.VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BITspecifies that any shader input variables decorated asDeviceIndexwill be assigned values as if they were decorated asViewIndex.VK_PIPELINE_CREATE_DISPATCH_BASEspecifies that a compute pipeline can be used withvkCmdDispatchBasewith a non-zero base workgroup.
It is valid to set both VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT and
VK_PIPELINE_CREATE_DERIVATIVE_BIT. This allows a pipeline to be both a
parent and possibly a child in a pipeline hierarchy. See
Pipeline Derivatives
for more information.
See Also
Constructors
| VkPipelineCreateFlagBits VkFlags |
newtype VkColorComponentFlagBits Source #
VkColorComponentFlagBits - Bitmask controlling which components are written to the framebuffer
Description
VK_COLOR_COMPONENT_R_BITspecifies that the R value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.
VK_COLOR_COMPONENT_G_BITspecifies that the G value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.VK_COLOR_COMPONENT_B_BITspecifies that the B value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.VK_COLOR_COMPONENT_A_BITspecifies that the A value is written to the color attachment for the appropriate sample. Otherwise, the value in memory is unmodified.
The color write mask operation is applied regardless of whether blending is enabled.
See Also
Constructors
| VkColorComponentFlagBits VkFlags |
pattern VK_COLOR_COMPONENT_R_BIT :: VkColorComponentFlagBits Source #
pattern VK_COLOR_COMPONENT_G_BIT :: VkColorComponentFlagBits Source #
pattern VK_COLOR_COMPONENT_B_BIT :: VkColorComponentFlagBits Source #
pattern VK_COLOR_COMPONENT_A_BIT :: VkColorComponentFlagBits Source #
newtype VkCullModeFlagBits Source #
VkCullModeFlagBits - Bitmask controlling triangle culling
Description
VK_CULL_MODE_NONEspecifies that no triangles are discarded
VK_CULL_MODE_FRONT_BITspecifies that front-facing triangles are discardedVK_CULL_MODE_BACK_BITspecifies that back-facing triangles are discardedVK_CULL_MODE_FRONT_AND_BACKspecifies that all triangles are discarded.
Following culling, fragments are produced for any triangles which have not been discarded.
See Also
Constructors
| VkCullModeFlagBits VkFlags |
pattern VK_CULL_MODE_FRONT_BIT :: VkCullModeFlagBits Source #
pattern VK_CULL_MODE_BACK_BIT :: VkCullModeFlagBits Source #
pattern VK_CULL_MODE_NONE :: VkCullModeFlagBits Source #
pattern VK_CULL_MODE_FRONT_AND_BACK :: VkCullModeFlagBits Source #
type VkPipeline = Ptr VkPipeline_T Source #
VkPipeline - Opaque handle to a pipeline object
Description
See Also
VkComputePipelineCreateInfo, VkGraphicsPipelineCreateInfo,
VkObjectTablePipelineEntryNVX,
vkCmdBindPipeline,
vkCreateComputePipelines, vkCreateGraphicsPipelines,
vkDestroyPipeline,
vkGetShaderInfoAMD
type VkPipelineLayout = Ptr VkPipelineLayout_T Source #
VkPipelineLayout - Opaque handle to a pipeline layout object
Description
See Also
VkComputePipelineCreateInfo,
VkDescriptorUpdateTemplateCreateInfo,
VkGraphicsPipelineCreateInfo,
VkObjectTableDescriptorSetEntryNVX,
VkObjectTablePushConstantEntryNVX,
vkCmdBindDescriptorSets,
vkCmdPushConstants,
vkCmdPushDescriptorSetKHR,
vkCmdPushDescriptorSetWithTemplateKHR,
vkCreatePipelineLayout,
vkDestroyPipelineLayout
type VkRenderPass = Ptr VkRenderPass_T Source #
VkRenderPass - Opaque handle to a render pass object
Description
See Also
VkCommandBufferInheritanceInfo,
VkFramebufferCreateInfo,
VkGraphicsPipelineCreateInfo,
VkRenderPassBeginInfo,
vkCreateRenderPass,
vkDestroyRenderPass,
vkGetRenderAreaGranularity
vkCreateGraphicsPipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkGraphicsPipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult Source #
vkCreateGraphicsPipelines - Create graphics pipelines
Parameters
deviceis the logical device that creates the graphics pipelines.
pipelineCacheis eitherVK_NULL_HANDLE, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.createInfoCountis the length of thepCreateInfosandpPipelinesarrays.pCreateInfosis an array ofVkGraphicsPipelineCreateInfostructures.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pPipelinesis a pointer to an array in which the resulting graphics pipeline objects are returned.
Description
The VkGraphicsPipelineCreateInfo structure includes an array of shader
create info structures containing all the desired active shader stages,
as well as creation info to define all relevant fixed-function stages,
and a pipeline layout.
Valid Usage
- If the
flagsmember of any element ofpCreateInfoscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat corresponds to that element
- If the
flagsmember of any element ofpCreateInfoscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, the base pipeline must have been created with theVK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BITflag set
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- If
pipelineCacheis notVK_NULL_HANDLE,pipelineCachemust be a validVkPipelineCachehandle pCreateInfosmust be a valid pointer to an array ofcreateInfoCountvalidVkGraphicsPipelineCreateInfostructures- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pPipelinesmust be a valid pointer to an array ofcreateInfoCountVkPipelinehandlescreateInfoCountmust be greater than0- If
pipelineCacheis a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_INVALID_SHADER_NV
See Also
VkAllocationCallbacks,
VkDevice,
VkGraphicsPipelineCreateInfo, VkPipeline,
VkPipelineCache
vkCreateComputePipelines :: ("device" ::: VkDevice) -> ("pipelineCache" ::: VkPipelineCache) -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr VkComputePipelineCreateInfo) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> ("pPipelines" ::: Ptr VkPipeline) -> IO VkResult Source #
vkCreateComputePipelines - Creates a new compute pipeline object
Parameters
deviceis the logical device that creates the compute pipelines.
pipelineCacheis eitherVK_NULL_HANDLE, indicating that pipeline caching is disabled; or the handle of a valid pipeline cache object, in which case use of that cache is enabled for the duration of the command.createInfoCountis the length of thepCreateInfosandpPipelinesarrays.pCreateInfosis an array ofVkComputePipelineCreateInfostructures.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pPipelinesis a pointer to an array in which the resulting compute pipeline objects are returned.
Description
Valid Usage
- If the
flagsmember of any element ofpCreateInfoscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat corresponds to that element
- If the
flagsmember of any element ofpCreateInfoscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, the base pipeline must have been created with theVK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BITflag set
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- If
pipelineCacheis notVK_NULL_HANDLE,pipelineCachemust be a validVkPipelineCachehandle pCreateInfosmust be a valid pointer to an array ofcreateInfoCountvalidVkComputePipelineCreateInfostructures- If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure pPipelinesmust be a valid pointer to an array ofcreateInfoCountVkPipelinehandlescreateInfoCountmust be greater than0- If
pipelineCacheis a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
- Success
- -
VK_SUCCESS
- Failure
- -
VK_ERROR_OUT_OF_HOST_MEMORYVK_ERROR_OUT_OF_DEVICE_MEMORY
VK_ERROR_INVALID_SHADER_NV
See Also
VkAllocationCallbacks,
VkComputePipelineCreateInfo,
VkDevice, VkPipeline,
VkPipelineCache
vkDestroyPipeline :: ("device" ::: VkDevice) -> ("pipeline" ::: VkPipeline) -> ("pAllocator" ::: Ptr VkAllocationCallbacks) -> IO () Source #
vkDestroyPipeline - Destroy a pipeline object
Parameters
deviceis the logical device that destroys the pipeline.
pipelineis the handle of the pipeline to destroy.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.
Description
Valid Usage
- All submitted commands that refer to
pipelinemust have completed execution
- If
VkAllocationCallbackswere provided whenpipelinewas created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbackswere provided whenpipelinewas created,pAllocatormust beNULL
Valid Usage (Implicit)
devicemust be a validVkDevicehandle
- If
pipelineis notVK_NULL_HANDLE,pipelinemust be a validVkPipelinehandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validVkAllocationCallbacksstructure - If
pipelineis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
pipelinemust be externally synchronized
See Also
data VkOffset2D Source #
VkOffset2D - Structure specifying a two-dimensional offset
Description
See Also
Constructors
| VkOffset2D | |
Instances
data VkExtent2D Source #
VkExtent2D - Structure specifying a two-dimensional extent
Description
See Also
VkDisplayModeParametersKHR,
VkDisplayPlaneCapabilitiesKHR,
VkDisplayPropertiesKHR,
VkDisplaySurfaceCreateInfoKHR,
VkMultisamplePropertiesEXT,
VkPhysicalDeviceSampleLocationsPropertiesEXT,
VkRect2D,
VkRectLayerKHR,
VkSampleLocationsInfoEXT,
VkSurfaceCapabilities2EXT,
VkSurfaceCapabilitiesKHR,
VkSwapchainCreateInfoKHR,
vkGetRenderAreaGranularity
Constructors
| VkExtent2D | |
Instances
data VkViewport Source #
VkViewport - Structure specifying a viewport
Description
The framebuffer depth coordinate zf may be represented using either
a fixed-point or floating-point representation. However, a
floating-point representation must be used if the depth/stencil
attachment has a floating-point depth component. If an m-bit fixed-point
representation is used, we assume that it represents each value
\(\\frac{k}{2^m - 1}\), where k ∈ { 0, 1, …, 2m-1 }, as k (e.g. 1.0 is
represented in binary as a string of all ones).
The viewport parameters shown in the above equations are found from these values as
- ox =
x+width/ 2 - oy =
y+height/ 2 - oz =
minDepth - px =
width - py =
height - pz =
maxDepth-minDepth.
The application can specify a negative term for height, which has
the effect of negating the y coordinate in clip space before performing
the transform. When using a negative height, the application should
also adjust the y value to point to the lower left corner of the
viewport instead of the upper left corner. Using the negative height
allows the application to avoid having to negate the y component of the
Position output from the last vertex processing stage in shaders that
also target other graphics APIs.
The width and height of the implementation-dependent maximum viewport dimensions must be greater than or equal to the width and height of the largest image which can be created and attached to a framebuffer.
The floating-point viewport bounds are represented with an implementation-dependent precision.
Valid Usage
widthmust be greater than0.0
widthmust be less than or equal toVkPhysicalDeviceLimits::maxViewportDimensions[0]- The absolute value of
heightmust be less than or equal toVkPhysicalDeviceLimits::maxViewportDimensions[1] xmust be greater than or equal toviewportBoundsRange[0]- (
x+width) must be less than or equal toviewportBoundsRange[1] ymust be greater than or equal toviewportBoundsRange[0]ymust be less than or equal toviewportBoundsRange[1]- (
y+height) must be greater than or equal toviewportBoundsRange[0] - (
y+height) must be less than or equal toviewportBoundsRange[1] - Unless
{html_spec_relative}#VK_EXT_depth_range_unrestrictedextension is enabledminDepthmust be between0.0and1.0, inclusive - Unless
{html_spec_relative}#VK_EXT_depth_range_unrestrictedextension is enabledmaxDepthmust be between0.0and1.0, inclusive
See Also
Constructors
| VkViewport | |
Fields
| |
Instances
VkRect2D - Structure specifying a two-dimensional subregion
Description
See Also
VkBindImageMemoryDeviceGroupInfo,
VkClearRect,
VkDeviceGroupRenderPassBeginInfo,
VkDisplayPresentInfoKHR,
VkExtent2D, VkOffset2D,
VkPipelineDiscardRectangleStateCreateInfoEXT,
VkPipelineViewportStateCreateInfo,
VkRenderPassBeginInfo,
vkCmdSetDiscardRectangleEXT,
vkCmdSetScissor,
vkGetPhysicalDevicePresentRectanglesKHR
Constructors
| VkRect2D | |
Fields
| |
data VkSpecializationMapEntry Source #
VkSpecializationMapEntry - Structure specifying a specialization map entry
Description
If a constantID value is not a specialization constant ID used in the
shader, that map entry does not affect the behavior of the pipeline.
Valid Usage
- For a
constantIDspecialization constant declared in a shader,sizemust match the byte size of theconstantID. If the specialization constant is of typeboolean,sizemust be the byte size ofVkBool32
See Also
Constructors
| VkSpecializationMapEntry | |
Fields
| |
data VkSpecializationInfo Source #
VkSpecializationInfo - Structure specifying specialization info
Description
pMapEntries points to a structure of type VkSpecializationMapEntry.
Valid Usage
- The
offsetmember of each element ofpMapEntriesmust be less thandataSize
- The
sizemember of each element ofpMapEntriesmust be less than or equal todataSizeminusoffset - If
mapEntryCountis not0,pMapEntriesmust be a valid pointer to an array ofmapEntryCountvalidVkSpecializationMapEntrystructures
Valid Usage (Implicit)
- If
dataSizeis not0,pDatamust be a valid pointer to an array ofdataSizebytes
See Also
Constructors
| VkSpecializationInfo | |
Fields
| |
data VkPipelineShaderStageCreateInfo Source #
VkPipelineShaderStageCreateInfo - Structure specifying parameters of a newly created pipeline shader stage
Description
Valid Usage
- If the
geometry shaders
feature is not enabled,
stagemust not beVK_SHADER_STAGE_GEOMETRY_BIT
- If the
tessellation shaders
feature is not enabled,
stagemust not beVK_SHADER_STAGE_TESSELLATION_CONTROL_BITorVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stagemust not beVK_SHADER_STAGE_ALL_GRAPHICS, orVK_SHADER_STAGE_ALLpNamemust be the name of anOpEntryPointinmodulewith an execution model that matchesstage- If the identified entry point includes any variable in its interface
that is declared with the
ClipDistanceBuiltIndecoration, that variable must not have an array size greater thanVkPhysicalDeviceLimits::maxClipDistances - If the identified entry point includes any variable in its interface
that is declared with the
CullDistanceBuiltIndecoration, that variable must not have an array size greater thanVkPhysicalDeviceLimits::maxCullDistances - If the identified entry point includes any variables in its
interface that are declared with the
ClipDistanceorCullDistanceBuiltIndecoration, those variables must not have array sizes which sum to more thanVkPhysicalDeviceLimits::maxCombinedClipAndCullDistances - If the identified entry point includes any variable in its interface
that is declared with the
SampleMaskBuiltIndecoration, that variable must not have an array size greater thanVkPhysicalDeviceLimits::maxSampleMaskWords - If
stageisVK_SHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated withCullDistance - If
stageisVK_SHADER_STAGE_TESSELLATION_CONTROL_BITorVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has anOpExecutionModeinstruction that specifies a patch size withOutputVertices, the patch size must be greater than0and less than or equal toVkPhysicalDeviceLimits::maxTessellationPatchSize - If
stageisVK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction that specifies a maximum output vertex count that is greater than0and less than or equal toVkPhysicalDeviceLimits::maxGeometryOutputVertices - If
stageisVK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction that specifies an invocation count that is greater than0and less than or equal toVkPhysicalDeviceLimits::maxGeometryShaderInvocations - If
stageisVK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes toLayerfor any primitive, it must write the same value toLayerfor all vertices of a given primitive - If
stageisVK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes toViewportIndexfor any primitive, it must write the same value toViewportIndexfor all vertices of a given primitive - If
stageisVK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated withCullDistance - If
stageisVK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes toFragDepthin any execution path, it must write toFragDepthin all execution paths - If
stageisVK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes toFragStencilRefEXTin any execution path, it must write toFragStencilRefEXTin all execution paths
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
pNextmust beNULLflagsmust be0stagemust be a validVkShaderStageFlagBitsvaluemodulemust be a validVkShaderModulehandlepNamemust be a null-terminated UTF-8 string- If
pSpecializationInfois notNULL,pSpecializationInfomust be a valid pointer to a validVkSpecializationInfostructure
See Also
VkComputePipelineCreateInfo, VkGraphicsPipelineCreateInfo,
VkPipelineShaderStageCreateFlags,
VkShaderModule, VkShaderStageFlagBits,
VkSpecializationInfo, VkStructureType
Constructors
| VkPipelineShaderStageCreateInfo | |
Fields
| |
data VkComputePipelineCreateInfo Source #
VkComputePipelineCreateInfo - Structure specifying parameters of a newly created compute pipeline
Description
The parameters basePipelineHandle and basePipelineIndex are
described in more detail in
Pipeline Derivatives.
stage points to a structure of type VkPipelineShaderStageCreateInfo.
Valid Usage
- If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid handle to a computeVkPipeline
- If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisVK_NULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis not -1,basePipelineHandlemust beVK_NULL_HANDLE - If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleis notVK_NULL_HANDLE,basePipelineIndexmust be -1 - The
stagemember ofstagemust beVK_SHADER_STAGE_COMPUTE_BIT - The shader code for the entry point identified by
stageand the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter layoutmust be consistent with the layout of the compute shader specified instage- The number of resources in
layoutaccessible to the compute shader stage must be less than or equal toVkPhysicalDeviceLimits::maxPerStageResources
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
pNextmust beNULLflagsmust be a valid combination ofVkPipelineCreateFlagBitsvaluesstagemust be a validVkPipelineShaderStageCreateInfostructurelayoutmust be a validVkPipelineLayouthandle- Both of
basePipelineHandle, andlayoutthat are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkPipeline, VkPipelineCreateFlags, VkPipelineLayout,
VkPipelineShaderStageCreateInfo,
VkStructureType,
vkCreateComputePipelines
Constructors
| VkComputePipelineCreateInfo | |
Fields
| |
data VkVertexInputBindingDescription Source #
VkVertexInputBindingDescription - Structure specifying vertex input binding description
Description
Valid Usage
bindingmust be less thanVkPhysicalDeviceLimits::maxVertexInputBindings
stridemust be less than or equal toVkPhysicalDeviceLimits::maxVertexInputBindingStride
Valid Usage (Implicit)
inputRatemust be a validVkVertexInputRatevalue
See Also
Constructors
| VkVertexInputBindingDescription | |
Fields
| |
data VkVertexInputAttributeDescription Source #
VkVertexInputAttributeDescription - Structure specifying vertex input attribute description
Description
Valid Usage
locationmust be less thanVkPhysicalDeviceLimits::maxVertexInputAttributes
bindingmust be less thanVkPhysicalDeviceLimits::maxVertexInputBindingsoffsetmust be less than or equal toVkPhysicalDeviceLimits::maxVertexInputAttributeOffsetformatmust be allowed as a vertex buffer format, as specified by theVK_FORMAT_FEATURE_VERTEX_BUFFER_BITflag inVkFormatProperties::bufferFeaturesreturned byvkGetPhysicalDeviceFormatProperties
Valid Usage (Implicit)
formatmust be a validVkFormatvalue
See Also
Constructors
| VkVertexInputAttributeDescription | |
Fields
| |
data VkPipelineVertexInputStateCreateInfo Source #
VkPipelineVertexInputStateCreateInfo - Structure specifying parameters of a newly created pipeline vertex input state
Description
Valid Usage
vertexBindingDescriptionCountmust be less than or equal toVkPhysicalDeviceLimits::maxVertexInputBindings
vertexAttributeDescriptionCountmust be less than or equal toVkPhysicalDeviceLimits::maxVertexInputAttributes- For every
bindingspecified by each element ofpVertexAttributeDescriptions, aVkVertexInputBindingDescriptionmust exist inpVertexBindingDescriptionswith the same value ofbinding - All elements of
pVertexBindingDescriptionsmust describe distinct binding numbers - All elements of
pVertexAttributeDescriptionsmust describe distinct attribute locations
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
pNextmust beNULLor a pointer to a valid instance ofVkPipelineVertexInputDivisorStateCreateInfoEXTflagsmust be0- If
vertexBindingDescriptionCountis not0,pVertexBindingDescriptionsmust be a valid pointer to an array ofvertexBindingDescriptionCountvalidVkVertexInputBindingDescriptionstructures - If
vertexAttributeDescriptionCountis not0,pVertexAttributeDescriptionsmust be a valid pointer to an array ofvertexAttributeDescriptionCountvalidVkVertexInputAttributeDescriptionstructures
See Also
VkGraphicsPipelineCreateInfo, VkPipelineVertexInputStateCreateFlags,
VkStructureType,
VkVertexInputAttributeDescription, VkVertexInputBindingDescription
Constructors
| VkPipelineVertexInputStateCreateInfo | |
Fields
| |
data VkPipelineInputAssemblyStateCreateInfo Source #
VkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters of a newly created pipeline input assembly state
Description
Restarting the assembly of primitives discards the most recent index
values if those elements formed an incomplete primitive, and restarts
the primitive assembly using the subsequent indices, but only assembling
the immediately following element through the end of the originally
specified elements. The primitive restart index value comparison is
performed before adding the vertexOffset value to the index value.
Valid Usage
- If
topologyisVK_PRIMITIVE_TOPOLOGY_POINT_LIST,VK_PRIMITIVE_TOPOLOGY_LINE_LIST,VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCYorVK_PRIMITIVE_TOPOLOGY_PATCH_LIST,primitiveRestartEnablemust beVK_FALSE
- If the
geometry shaders
feature is not enabled,
topologymust not be any ofVK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCYorVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY - If the
tessellation shaders
feature is not enabled,
topologymust not beVK_PRIMITIVE_TOPOLOGY_PATCH_LIST
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
pNextmust beNULLflagsmust be0topologymust be a validVkPrimitiveTopologyvalue
See Also
VkBool32, VkGraphicsPipelineCreateInfo,
VkPipelineInputAssemblyStateCreateFlags, VkPrimitiveTopology,
VkStructureType
Constructors
| VkPipelineInputAssemblyStateCreateInfo | |
Fields
| |
data VkPipelineTessellationStateCreateInfo Source #
VkPipelineTessellationStateCreateInfo - Structure specifying parameters of a newly created pipeline tessellation state
Description
Valid Usage
patchControlPointsmust be greater than zero and less than or equal toVkPhysicalDeviceLimits::maxTessellationPatchSize
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
pNextmust beNULLor a pointer to a valid instance ofVkPipelineTessellationDomainOriginStateCreateInfoflagsmust be0
See Also
VkGraphicsPipelineCreateInfo,
VkPipelineTessellationStateCreateFlags,
VkStructureType
Constructors
| VkPipelineTessellationStateCreateInfo | |
Fields
| |
data VkPipelineViewportStateCreateInfo Source #
VkPipelineViewportStateCreateInfo - Structure specifying parameters of a newly created pipeline viewport state
Description
Valid Usage
- If the
multiple viewports
feature is not enabled,
viewportCountmust be1
- If the
multiple viewports
feature is not enabled,
scissorCountmust be1 viewportCountmust be between1andVkPhysicalDeviceLimits::maxViewports, inclusivescissorCountmust be between1andVkPhysicalDeviceLimits::maxViewports, inclusivescissorCountandviewportCountmust be identical- If the
viewportWScalingEnablemember of aVkPipelineViewportWScalingStateCreateInfoNVstructure chained to thepNextchain isVK_TRUE, theviewportCountmember of theVkPipelineViewportWScalingStateCreateInfoNVstructure must be equal toviewportCount
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkPipelineViewportSwizzleStateCreateInfoNVorVkPipelineViewportWScalingStateCreateInfoNV - Each
sTypemember in thepNextchain must be unique flagsmust be0viewportCountmust be greater than0scissorCountmust be greater than0
See Also
VkGraphicsPipelineCreateInfo, VkPipelineViewportStateCreateFlags,
VkRect2D, VkStructureType, VkViewport
Constructors
| VkPipelineViewportStateCreateInfo | |
Fields
| |
data VkPipelineRasterizationStateCreateInfo Source #
VkPipelineRasterizationStateCreateInfo - Structure specifying parameters of a newly created pipeline rasterization state
Description
The application can also add a
VkPipelineRasterizationStateRasterizationOrderAMD structure to the
pNext chain of a VkPipelineRasterizationStateCreateInfo structure.
This structure enables selecting the rasterization order to use when
rendering with the corresponding graphics pipeline as described in
Rasterization Order.
Valid Usage
- If the
depth clamping
feature is not enabled,
depthClampEnablemust beVK_FALSE
- If the
non-solid fill modes
feature is not enabled,
polygonModemust beVK_POLYGON_MODE_FILLorVK_POLYGON_MODE_FILL_RECTANGLE_NV - If the
{html_spec_relative}#VK_NV_fill_rectangleextension is not enabled,polygonModemust not beVK_POLYGON_MODE_FILL_RECTANGLE_NV
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkPipelineRasterizationConservativeStateCreateInfoEXTorVkPipelineRasterizationStateRasterizationOrderAMD - Each
sTypemember in thepNextchain must be unique flagsmust be0polygonModemust be a validVkPolygonModevaluecullModemust be a valid combination ofVkCullModeFlagBitsvaluesfrontFacemust be a validVkFrontFacevalue
See Also
VkBool32, VkCullModeFlags, VkFrontFace,
VkGraphicsPipelineCreateInfo,
VkPipelineRasterizationStateCreateFlags, VkPolygonMode,
VkStructureType
Constructors
| VkPipelineRasterizationStateCreateInfo | |
Fields
| |
data VkPipelineMultisampleStateCreateInfo Source #
VkPipelineMultisampleStateCreateInfo - Structure specifying parameters of a newly created pipeline multisample state
Description
Valid Usage
- If the
sample rate shading
feature is not enabled,
sampleShadingEnablemust beVK_FALSE
- If the
alpha to one
feature is not enabled,
alphaToOneEnablemust beVK_FALSE minSampleShadingmust be in the range [0,1]- If the subpass has any color attachments and
rasterizationSamplesis greater than the number of color samples, thensampleShadingEnablemust beVK_FALSE
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofVkPipelineCoverageModulationStateCreateInfoNV,VkPipelineCoverageToColorStateCreateInfoNV, orVkPipelineSampleLocationsStateCreateInfoEXT - Each
sTypemember in thepNextchain must be unique flagsmust be0rasterizationSamplesmust be a validVkSampleCountFlagBitsvalue- If
pSampleMaskis notNULL,pSampleMaskmust be a valid pointer to an array of \(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\)VkSampleMaskvalues
See Also
VkBool32, VkGraphicsPipelineCreateInfo,
VkPipelineMultisampleStateCreateFlags,
VkSampleCountFlagBits,
VkSampleMask, VkStructureType
Constructors
| VkPipelineMultisampleStateCreateInfo | |
Fields
| |
data VkPipelineColorBlendAttachmentState Source #
VkPipelineColorBlendAttachmentState - Structure specifying a pipeline color blend attachment state
Description
Valid Usage
- If the
dual source blending
feature is not enabled,
srcColorBlendFactormust not beVK_BLEND_FACTOR_SRC1_COLOR,VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,VK_BLEND_FACTOR_SRC1_ALPHA, orVK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
- If the
dual source blending
feature is not enabled,
dstColorBlendFactormust not beVK_BLEND_FACTOR_SRC1_COLOR,VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,VK_BLEND_FACTOR_SRC1_ALPHA, orVK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - If the
dual source blending
feature is not enabled,
srcAlphaBlendFactormust not beVK_BLEND_FACTOR_SRC1_COLOR,VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,VK_BLEND_FACTOR_SRC1_ALPHA, orVK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - If the
dual source blending
feature is not enabled,
dstAlphaBlendFactormust not beVK_BLEND_FACTOR_SRC1_COLOR,VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,VK_BLEND_FACTOR_SRC1_ALPHA, orVK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - If either of
colorBlendOporalphaBlendOpis an advanced blend operation, thencolorBlendOpmust equalalphaBlendOp - If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlendisVK_FALSEandcolorBlendOpis an advanced blend operation, thencolorBlendOpmust be the same for all attachments. - If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlendisVK_FALSEandalphaBlendOpis an advanced blend operation, thenalphaBlendOpmust be the same for all attachments. - If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperationsisVK_FALSE, thencolorBlendOpmust not beVK_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, orVK_BLEND_OP_BLUE_EXT - If
colorBlendOporalphaBlendOpis an advanced blend operation, thenVkSubpassDescription::colorAttachmentCountof the subpass this pipeline is compiled against must be less than or equal toVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments
Valid Usage (Implicit)
srcColorBlendFactormust be a validVkBlendFactorvalue
dstColorBlendFactormust be a validVkBlendFactorvaluecolorBlendOpmust be a validVkBlendOpvaluesrcAlphaBlendFactormust be a validVkBlendFactorvaluedstAlphaBlendFactormust be a validVkBlendFactorvaluealphaBlendOpmust be a validVkBlendOpvaluecolorWriteMaskmust be a valid combination ofVkColorComponentFlagBitsvalues
See Also
VkBlendFactor, VkBlendOp, VkBool32, VkColorComponentFlags,
VkPipelineColorBlendStateCreateInfo
Constructors
| VkPipelineColorBlendAttachmentState | |
Fields
| |
data VkPipelineColorBlendStateCreateInfo Source #
VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of a newly created pipeline color blend state
Description
Each element of the pAttachments array is a
VkPipelineColorBlendAttachmentState structure specifying per-target
blending state for each individual color attachment. If the
independent blending
feature is not enabled on the device, all
VkPipelineColorBlendAttachmentState elements in the pAttachments
array must be identical.
Valid Usage
- If the
independent blending
feature is not enabled, all elements of
pAttachmentsmust be identical
- If the
logic operations
feature is not enabled,
logicOpEnablemust beVK_FALSE - If
logicOpEnableisVK_TRUE,logicOpmust be a validVkLogicOpvalue
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
pNextmust beNULLor a pointer to a valid instance ofVkPipelineColorBlendAdvancedStateCreateInfoEXTflagsmust be0- If
attachmentCountis not0,pAttachmentsmust be a valid pointer to an array ofattachmentCountvalidVkPipelineColorBlendAttachmentStatestructures
See Also
VkBool32, VkGraphicsPipelineCreateInfo, VkLogicOp,
VkPipelineColorBlendAttachmentState,
VkPipelineColorBlendStateCreateFlags,
VkStructureType
Constructors
| VkPipelineColorBlendStateCreateInfo | |
Fields
| |
data VkPipelineDynamicStateCreateInfo Source #
VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a newly created pipeline dynamic state
Description
Valid Usage
- Each element of
pDynamicStatesmust be unique
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
pNextmust beNULLflagsmust be0pDynamicStatesmust be a valid pointer to an array ofdynamicStateCountvalidVkDynamicStatevaluesdynamicStateCountmust be greater than0
See Also
VkDynamicState, VkGraphicsPipelineCreateInfo,
VkPipelineDynamicStateCreateFlags,
VkStructureType
Constructors
| VkPipelineDynamicStateCreateInfo | |
Fields
| |
data VkStencilOpState Source #
VkStencilOpState - Structure specifying stencil operation state
Description
Valid Usage (Implicit)
failOpmust be a validVkStencilOpvalue
passOpmust be a validVkStencilOpvaluedepthFailOpmust be a validVkStencilOpvaluecompareOpmust be a validVkCompareOpvalue
See Also
VkCompareOp, VkPipelineDepthStencilStateCreateInfo, VkStencilOp
Constructors
| VkStencilOpState | |
Fields
| |
Instances
data VkPipelineDepthStencilStateCreateInfo Source #
VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters of a newly created pipeline depth stencil state
Description
Valid Usage
- If the
depth bounds testing
feature is not enabled,
depthBoundsTestEnablemust beVK_FALSE
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
pNextmust beNULLflagsmust be0depthCompareOpmust be a validVkCompareOpvaluefrontmust be a validVkStencilOpStatestructurebackmust be a validVkStencilOpStatestructure
See Also
VkBool32, VkCompareOp, VkGraphicsPipelineCreateInfo,
VkPipelineDepthStencilStateCreateFlags, VkStencilOpState,
VkStructureType
Constructors
| VkPipelineDepthStencilStateCreateInfo | |
Fields
| |
data VkGraphicsPipelineCreateInfo Source #
VkGraphicsPipelineCreateInfo - Structure specifying parameters of a newly created graphics pipeline
Description
The parameters basePipelineHandle and basePipelineIndex are
described in more detail in
Pipeline Derivatives.
pStages points to an array of VkPipelineShaderStageCreateInfo
structures, which were previously described in
Compute Pipelines.
pDynamicState points to a structure of type
VkPipelineDynamicStateCreateInfo.
If any shader stage fails to compile, the compile log will be reported
back to the application, and VK_ERROR_INVALID_SHADER_NV will be
generated.
Valid Usage
- If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid handle to a graphicsVkPipeline
- If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisVK_NULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis not -1,basePipelineHandlemust beVK_NULL_HANDLE - If
flagscontains theVK_PIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleis notVK_NULL_HANDLE,basePipelineIndexmust be -1 - The
stagemember of each element ofpStagesmust be unique - The
stagemember of one element ofpStagesmust beVK_SHADER_STAGE_VERTEX_BIT - The
stagemember of each element ofpStagesmust not beVK_SHADER_STAGE_COMPUTE_BIT - If
pStagesincludes a tessellation control shader stage, it must include a tessellation evaluation shader stage - If
pStagesincludes a tessellation evaluation shader stage, it must include a tessellation control shader stage - If
pStagesincludes a tessellation control shader stage and a tessellation evaluation shader stage,pTessellationStatemust be a valid pointer to a validVkPipelineTessellationStateCreateInfostructure - If
pStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction that specifies the type of subdivision in the pipeline - If
pStagesincludes tessellation shader stages, and the shader code of both stages contain anOpExecutionModeinstruction that specifies the type of subdivision in the pipeline, they must both specify the same subdivision mode - If
pStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction that specifies the output patch size in the pipeline - If
pStagesincludes tessellation shader stages, and the shader code of both contain anOpExecutionModeinstruction that specifies the out patch size in the pipeline, they must both specify the same patch size - If
pStagesincludes tessellation shader stages, thetopologymember ofpInputAssemblymust beVK_PRIMITIVE_TOPOLOGY_PATCH_LIST - If the
topologymember ofpInputAssemblyisVK_PRIMITIVE_TOPOLOGY_PATCH_LIST,pStagesmust include tessellation shader stages - If
pStagesincludes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain anOpExecutionModeinstruction that specifies an input primitive type that is compatible with the primitive topology specified inpInputAssembly - If
pStagesincludes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain anOpExecutionModeinstruction that specifies an input primitive type that is compatible with the primitive topology that is output by the tessellation stages - If
pStagesincludes a fragment shader stage and a geometry shader stage, and the fragment shader code reads from an input variable that is decorated withPrimitiveID, then the geometry shader code must write to a matching output variable, decorated withPrimitiveID, in all execution paths - If
pStagesincludes a fragment shader stage, its shader code must not read from any input attachment that is defined asVK_ATTACHMENT_UNUSEDinsubpass - The shader code for the entry points identified by
pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter - If rasterization is not disabled and
subpassuses a depth/stencil attachment inrenderPassthat has a layout ofVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALorVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMALin theVkAttachmentReferencedefined bysubpass, thedepthWriteEnablemember ofpDepthStencilStatemust beVK_FALSE - If rasterization is not disabled and
subpassuses a depth/stencil attachment inrenderPassthat has a layout ofVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALorVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMALin theVkAttachmentReferencedefined bysubpass, thefailOp,passOpanddepthFailOpmembers of each of thefrontandbackmembers ofpDepthStencilStatemust beVK_STENCIL_OP_KEEP - If rasterization is not disabled and the subpass uses color
attachments, then for each color attachment in the subpass the
blendEnablemember of the corresponding element of thepAttachmentmember ofpColorBlendStatemust beVK_FALSEif theformatof the attachment does not support color blend operations, as specified by theVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BITflag inVkFormatProperties::linearTilingFeaturesorVkFormatProperties::optimalTilingFeaturesreturned byvkGetPhysicalDeviceFormatProperties - If rasterization is not disabled and the subpass uses color
attachments, the
attachmentCountmember ofpColorBlendStatemust be equal to thecolorAttachmentCountused to createsubpass - If no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_VIEWPORT, thepViewportsmember ofpViewportStatemust be a valid pointer to an array ofpViewportState::viewportCountVkViewportstructures - If no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SCISSOR, thepScissorsmember ofpViewportStatemust be a valid pointer to an array ofpViewportState::scissorCountVkRect2Dstructures - If the wide lines feature is not enabled, and no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_LINE_WIDTH, thelineWidthmember ofpRasterizationStatemust be1.0 - If the
rasterizerDiscardEnablemember ofpRasterizationStateisVK_FALSE,pViewportStatemust be a valid pointer to a validVkPipelineViewportStateCreateInfostructure - If the
rasterizerDiscardEnablemember ofpRasterizationStateisVK_FALSE,pMultisampleStatemust be a valid pointer to a validVkPipelineMultisampleStateCreateInfostructure - If the
rasterizerDiscardEnablemember ofpRasterizationStateisVK_FALSE, andsubpassuses a depth/stencil attachment,pDepthStencilStatemust be a valid pointer to a validVkPipelineDepthStencilStateCreateInfostructure - If the
rasterizerDiscardEnablemember ofpRasterizationStateisVK_FALSE, andsubpassuses color attachments,pColorBlendStatemust be a valid pointer to a validVkPipelineColorBlendStateCreateInfostructure - If the depth bias clamping feature is not enabled, no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_DEPTH_BIAS, and thedepthBiasEnablemember ofpRasterizationStateisVK_TRUE, thedepthBiasClampmember ofpRasterizationStatemust be0.0 - If the
{html_spec_relative}#VK_EXT_depth_range_unrestrictedextension is not enabled and no element of thepDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_DEPTH_BOUNDS, and thedepthBoundsTestEnablemember ofpDepthStencilStateisVK_TRUE, theminDepthBoundsandmaxDepthBoundsmembers ofpDepthStencilStatemust be between0.0and1.0, inclusive - If no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of aVkPipelineSampleLocationsStateCreateInfoEXTstructure chained to thepNextchain ofpMultisampleStateisVK_TRUE,sampleLocationsInfo.sampleLocationGridSize.widthmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned byvkGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of aVkPipelineSampleLocationsStateCreateInfoEXTstructure chained to thepNextchain ofpMultisampleStateisVK_TRUE,sampleLocationsInfo.sampleLocationGridSize.heightmust evenly divideVkMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned byvkGetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of aVkPipelineSampleLocationsStateCreateInfoEXTstructure chained to thepNextchain ofpMultisampleStateisVK_TRUE,sampleLocationsInfo.sampleLocationsPerPixelmust equalrasterizationSamples - If the
sampleLocationsEnablemember of aVkPipelineSampleLocationsStateCreateInfoEXTstructure chained to thepNextchain ofpMultisampleStateisVK_TRUE, the fragment shader code must not statically use the extended instructionInterpolateAtSample layoutmust be consistent with all shaders specified inpStages- If
subpassuses color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust equal the maximum of the sample counts of those subpass attachments - If
subpasshas a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then therasterizationSamplesmember ofpMultisampleStatemust be the same as the sample count of the depth/stencil attachment - If
subpasshas any color attachments, then therasterizationSamplesmember ofpMultisampleStatemust be greater than or equal to the sample count for those subpass attachments - If
subpassdoes not use any color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust follow the rules for a zero-attachment subpass subpassmust be a valid subpass withinrenderPass- If the
renderPasshas multiview enabled andsubpasshas more than one bit set in the view mask andmultiviewTessellationShaderis not enabled, thenpStagesmust not include tessellation shaders. - If the
renderPasshas multiview enabled andsubpasshas more than one bit set in the view mask andmultiviewGeometryShaderis not enabled, thenpStagesmust not include a geometry shader. - If the
renderPasshas multiview enabled andsubpasshas more than one bit set in the view mask, shaders in the pipeline must not write to theLayerbuilt-in output - If the
renderPasshas multiview enabled, then all shaders must not include variables decorated with theLayerbuilt-in decoration in their interfaces. flagsmust not contain theVK_PIPELINE_CREATE_DISPATCH_BASEflag.- If
pStagesincludes a fragment shader stage and an input attachment was referenced by theVkRenderPassInputAttachmentAspectCreateInfoatrenderPasscreate time, its shader code must not read from any aspect that was not specified in theaspectMaskof the correspondingVkInputAttachmentAspectReferencestructure. - The number of resources in
layoutaccessible to each shader stage that is used by the pipeline must be less than or equal toVkPhysicalDeviceLimits::maxPerStageResources - If no element of the
pDynamicStatesmember ofpDynamicStateisVK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and theviewportWScalingEnablemember of aVkPipelineViewportWScalingStateCreateInfoNVstructure, chained to thepNextchain ofpViewportState, isVK_TRUE, thepViewportWScalingsmember of theVkPipelineViewportWScalingStateCreateInfoNVmust be a pointer to an array ofVkPipelineViewportWScalingStateCreateInfoNV::viewportCountvalidVkViewportWScalingNVstructures
Valid Usage (Implicit)
sTypemust beVK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
pNextmust beNULLor a pointer to a valid instance ofVkPipelineDiscardRectangleStateCreateInfoEXTflagsmust be a valid combination ofVkPipelineCreateFlagBitsvaluespStagesmust be a valid pointer to an array ofstageCountvalidVkPipelineShaderStageCreateInfostructurespVertexInputStatemust be a valid pointer to a validVkPipelineVertexInputStateCreateInfostructurepInputAssemblyStatemust be a valid pointer to a validVkPipelineInputAssemblyStateCreateInfostructurepRasterizationStatemust be a valid pointer to a validVkPipelineRasterizationStateCreateInfostructure- If
pDynamicStateis notNULL,pDynamicStatemust be a valid pointer to a validVkPipelineDynamicStateCreateInfostructure layoutmust be a validVkPipelineLayouthandlerenderPassmust be a validVkRenderPasshandlestageCountmust be greater than0- Each of
basePipelineHandle,layout, andrenderPassthat are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkPipeline, VkPipelineColorBlendStateCreateInfo,
VkPipelineCreateFlags, VkPipelineDepthStencilStateCreateInfo,
VkPipelineDynamicStateCreateInfo,
VkPipelineInputAssemblyStateCreateInfo, VkPipelineLayout,
VkPipelineMultisampleStateCreateInfo,
VkPipelineRasterizationStateCreateInfo,
VkPipelineShaderStageCreateInfo,
VkPipelineTessellationStateCreateInfo,
VkPipelineVertexInputStateCreateInfo,
VkPipelineViewportStateCreateInfo, VkRenderPass,
VkStructureType,
vkCreateGraphicsPipelines
Constructors
| VkGraphicsPipelineCreateInfo | |
Fields
| |
type VkPipelineCreateFlags = VkPipelineCreateFlagBits Source #
VkPipelineCreateFlags - Bitmask of VkPipelineCreateFlagBits
Description
VkPipelineCreateFlags is a bitmask type for setting a mask of zero or
more VkPipelineCreateFlagBits.
See Also
VkComputePipelineCreateInfo, VkGraphicsPipelineCreateInfo,
VkPipelineCreateFlagBits
type VkColorComponentFlags = VkColorComponentFlagBits Source #
VkColorComponentFlags - Bitmask of VkColorComponentFlagBits
Description
VkColorComponentFlags is a bitmask type for setting a mask of zero or
more VkColorComponentFlagBits.
See Also
VkColorComponentFlagBits, VkPipelineColorBlendAttachmentState
type VkCullModeFlags = VkCullModeFlagBits Source #
VkCullModeFlags - Bitmask of VkCullModeFlagBits
Description
VkCullModeFlags is a bitmask type for setting a mask of zero or more
VkCullModeFlagBits.
See Also
type VkSampleMask = Word32 Source #
VkSampleMask - Mask of sample coverage information