Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- 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 (Sr,Sg,Sb) or (Dr,Dg,Db) | Alpha Blend 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-Bs0) | 1-As0 |
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-As0) | 1-As0 |
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_COLOR | (1-Rc,1-Gc,1-Bc) | 1-Ac |
VK_BLEND_FACTOR_CONSTANT_ALPHA | (Ac,Ac,Ac) | Ac |
VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA | (1-Ac,1-Ac,1-Ac) | 1-Ac |
VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
| (f,f,f); f = min(As0,1-Ad) | 1 |
VK_BLEND_FACTOR_SRC1_COLOR | (Rs1,Gs1,Bs1) | As1 |
VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR | (1-Rs1,1-Gs1,1-Bs1) | 1-As1 |
VK_BLEND_FACTOR_SRC1_ALPHA | (As1,As1,As1) | As1 |
VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA | (1-As1,1-As1,1-As1) | 1-As1 |
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
Instances
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
Instances
Eq VkBlendOp Source # | |
Ord VkBlendOp Source # | |
Read VkBlendOp Source # | |
Show VkBlendOp Source # | |
Storable VkBlendOp Source # | |
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
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
Instances
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_POINT
specifies that polygon vertices are drawn as points.
VK_POLYGON_MODE_LINE
specifies that polygon edges are drawn as line segments.VK_POLYGON_MODE_FILL
specifies that polygons are rendered using the polygon rasterization rules in this section.VK_POLYGON_MODE_FILL_RECTANGLE_NV
specifies 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_NV
mode 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_NV
mode 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
Instances
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_CLOCKWISE
specifies that a triangle with positive area is considered front-facing.
VK_FRONT_FACE_CLOCKWISE
specifies 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
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
Instances
Eq VkLogicOp Source # | |
Ord VkLogicOp Source # | |
Read VkLogicOp Source # | |
Show VkLogicOp Source # | |
Storable VkLogicOp Source # | |
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 #
Instances
newtype VkStencilOp Source #
VkStencilOp - Stencil comparison function
Description
VK_STENCIL_OP_KEEP
keeps the current value.
VK_STENCIL_OP_ZERO
sets the value to 0.VK_STENCIL_OP_REPLACE
sets the value toreference
.VK_STENCIL_OP_INCREMENT_AND_CLAMP
increments the current value and clamps to the maximum representable unsigned value.VK_STENCIL_OP_DECREMENT_AND_CLAMP
decrements the current value and clamps to 0.VK_STENCIL_OP_INVERT
bitwise-inverts the current value.VK_STENCIL_OP_INCREMENT_AND_WRAP
increments the current value and wraps to 0 when the maximum value would have been exceeded.VK_STENCIL_OP_DECREMENT_AND_WRAP
decrements 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
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
Instances
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
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
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
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
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
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
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
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
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
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
Instances
newtype VkShaderStageFlagBits Source #
VkShaderStageFlagBits - Bitmask specifying a pipeline stage
See Also
VkPipelineShaderStageCreateInfo
,
VkShaderStageFlags
,
vkGetShaderInfoAMD
Instances
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_BIT
specifies 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_BIT
specifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent call tovkCreateGraphicsPipelines
orvkCreateComputePipelines
.VK_PIPELINE_CREATE_DERIVATIVE_BIT
specifies that the pipeline to be created will be a child of a previously created parent pipeline.VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT
specifies that any shader input variables decorated asDeviceIndex
will be assigned values as if they were decorated asViewIndex
.VK_PIPELINE_CREATE_DISPATCH_BASE
specifies that a compute pipeline can be used withvkCmdDispatchBase
with 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
Instances
newtype VkColorComponentFlagBits Source #
VkColorComponentFlagBits - Bitmask controlling which components are written to the framebuffer
Description
VK_COLOR_COMPONENT_R_BIT
specifies 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_BIT
specifies 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_BIT
specifies 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_BIT
specifies 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
Instances
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_NONE
specifies that no triangles are discarded
VK_CULL_MODE_FRONT_BIT
specifies that front-facing triangles are discardedVK_CULL_MODE_BACK_BIT
specifies that back-facing triangles are discardedVK_CULL_MODE_FRONT_AND_BACK
specifies that all triangles are discarded.
Following culling, fragments are produced for any triangles which have not been discarded.
See Also
Instances
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
See Also
VkComputePipelineCreateInfo
, VkGraphicsPipelineCreateInfo
,
VkObjectTablePipelineEntryNVX
,
vkCmdBindPipeline
,
vkCreateComputePipelines
, vkCreateGraphicsPipelines
,
vkDestroyPipeline
,
vkGetShaderInfoAMD
type VkPipelineLayout = Ptr VkPipelineLayout_T Source #
VkPipelineLayout - Opaque handle to a pipeline layout object
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
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
device
is the logical device that creates the graphics pipelines.
pipelineCache
is 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.createInfoCount
is the length of thepCreateInfos
andpPipelines
arrays.pCreateInfos
is an array ofVkGraphicsPipelineCreateInfo
structures.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pPipelines
is 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
flags
member of any element ofpCreateInfos
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, and thebasePipelineIndex
member of that same element is not-1
,basePipelineIndex
must be less than the index intopCreateInfos
that corresponds to that element
- If the
flags
member of any element ofpCreateInfos
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline must have been created with theVK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set
Valid Usage (Implicit)
device
must be a validVkDevice
handle
- If
pipelineCache
is notVK_NULL_HANDLE
,pipelineCache
must be a validVkPipelineCache
handle pCreateInfos
must be a valid pointer to an array ofcreateInfoCount
validVkGraphicsPipelineCreateInfo
structures- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validVkAllocationCallbacks
structure pPipelines
must be a valid pointer to an array ofcreateInfoCount
VkPipeline
handlescreateInfoCount
must be greater than0
- If
pipelineCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_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
device
is the logical device that creates the compute pipelines.
pipelineCache
is 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.createInfoCount
is the length of thepCreateInfos
andpPipelines
arrays.pCreateInfos
is an array ofVkComputePipelineCreateInfo
structures.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pPipelines
is a pointer to an array in which the resulting compute pipeline objects are returned.
Valid Usage
- If the
flags
member of any element ofpCreateInfos
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, and thebasePipelineIndex
member of that same element is not-1
,basePipelineIndex
must be less than the index intopCreateInfos
that corresponds to that element
- If the
flags
member of any element ofpCreateInfos
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline must have been created with theVK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set
Valid Usage (Implicit)
device
must be a validVkDevice
handle
- If
pipelineCache
is notVK_NULL_HANDLE
,pipelineCache
must be a validVkPipelineCache
handle pCreateInfos
must be a valid pointer to an array ofcreateInfoCount
validVkComputePipelineCreateInfo
structures- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validVkAllocationCallbacks
structure pPipelines
must be a valid pointer to an array ofcreateInfoCount
VkPipeline
handlescreateInfoCount
must be greater than0
- If
pipelineCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
[Success]
- VK_SUCCESS
[Failure]
- VK_ERROR_OUT_OF_HOST_MEMORY
VK_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
device
is the logical device that destroys the pipeline.
pipeline
is the handle of the pipeline to destroy.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.
Valid Usage
- All submitted commands that refer to
pipeline
must have completed execution
- If
VkAllocationCallbacks
were provided whenpipeline
was created, a compatible set of callbacks must be provided here - If no
VkAllocationCallbacks
were provided whenpipeline
was created,pAllocator
must beNULL
Valid Usage (Implicit)
device
must be a validVkDevice
handle
- If
pipeline
is notVK_NULL_HANDLE
,pipeline
must be a validVkPipeline
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validVkAllocationCallbacks
structure - If
pipeline
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
pipeline
must be externally synchronized
See Also
data VkOffset2D Source #
VkOffset2D - Structure specifying a two-dimensional offset
See Also
Instances
Eq VkOffset2D Source # | |
(==) :: VkOffset2D -> VkOffset2D -> Bool # (/=) :: VkOffset2D -> VkOffset2D -> Bool # | |
Show VkOffset2D Source # | |
showsPrec :: Int -> VkOffset2D -> ShowS # show :: VkOffset2D -> String # showList :: [VkOffset2D] -> ShowS # | |
Storable VkOffset2D Source # | |
sizeOf :: VkOffset2D -> Int # alignment :: VkOffset2D -> Int # peekElemOff :: Ptr VkOffset2D -> Int -> IO VkOffset2D # pokeElemOff :: Ptr VkOffset2D -> Int -> VkOffset2D -> IO () # peekByteOff :: Ptr b -> Int -> IO VkOffset2D # pokeByteOff :: Ptr b -> Int -> VkOffset2D -> IO () # peek :: Ptr VkOffset2D -> IO VkOffset2D # poke :: Ptr VkOffset2D -> VkOffset2D -> IO () # |
data VkExtent2D Source #
VkExtent2D - Structure specifying a two-dimensional extent
See Also
VkDisplayModeParametersKHR
,
VkDisplayPlaneCapabilitiesKHR
,
VkDisplayPropertiesKHR
,
VkDisplaySurfaceCreateInfoKHR
,
VkMultisamplePropertiesEXT
,
VkPhysicalDeviceSampleLocationsPropertiesEXT
,
VkRect2D
,
VkRectLayerKHR
,
VkSampleLocationsInfoEXT
,
VkSurfaceCapabilities2EXT
,
VkSurfaceCapabilitiesKHR
,
VkSwapchainCreateInfoKHR
,
vkGetRenderAreaGranularity
Instances
Eq VkExtent2D Source # | |
(==) :: VkExtent2D -> VkExtent2D -> Bool # (/=) :: VkExtent2D -> VkExtent2D -> Bool # | |
Show VkExtent2D Source # | |
showsPrec :: Int -> VkExtent2D -> ShowS # show :: VkExtent2D -> String # showList :: [VkExtent2D] -> ShowS # | |
Storable VkExtent2D Source # | |
sizeOf :: VkExtent2D -> Int # alignment :: VkExtent2D -> Int # peekElemOff :: Ptr VkExtent2D -> Int -> IO VkExtent2D # pokeElemOff :: Ptr VkExtent2D -> Int -> VkExtent2D -> IO () # peekByteOff :: Ptr b -> Int -> IO VkExtent2D # pokeByteOff :: Ptr b -> Int -> VkExtent2D -> IO () # peek :: Ptr VkExtent2D -> IO VkExtent2D # poke :: Ptr VkExtent2D -> VkExtent2D -> IO () # |
data VkViewport Source #
VkViewport - Structure specifying a viewport
Description
The framebuffer depth coordinate z
f 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
width
must be greater than0.0
width
must be less than or equal toVkPhysicalDeviceLimits
::maxViewportDimensions
[0]- The absolute value of
height
must be less than or equal toVkPhysicalDeviceLimits
::maxViewportDimensions
[1] x
must be greater than or equal toviewportBoundsRange
[0]- (
x
+width
) must be less than or equal toviewportBoundsRange
[1] y
must be greater than or equal toviewportBoundsRange
[0]y
must 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_unrestricted
extension is enabledminDepth
must be between0.0
and1.0
, inclusive - Unless
{html_spec_relative}#VK_EXT_depth_range_unrestricted
extension is enabledmaxDepth
must be between0.0
and1.0
, inclusive
See Also
VkViewport | |
|
Instances
Eq VkViewport Source # | |
(==) :: VkViewport -> VkViewport -> Bool # (/=) :: VkViewport -> VkViewport -> Bool # | |
Show VkViewport Source # | |
showsPrec :: Int -> VkViewport -> ShowS # show :: VkViewport -> String # showList :: [VkViewport] -> ShowS # | |
Storable VkViewport Source # | |
sizeOf :: VkViewport -> Int # alignment :: VkViewport -> Int # peekElemOff :: Ptr VkViewport -> Int -> IO VkViewport # pokeElemOff :: Ptr VkViewport -> Int -> VkViewport -> IO () # peekByteOff :: Ptr b -> Int -> IO VkViewport # pokeByteOff :: Ptr b -> Int -> VkViewport -> IO () # peek :: Ptr VkViewport -> IO VkViewport # poke :: Ptr VkViewport -> VkViewport -> IO () # |
VkRect2D - Structure specifying a two-dimensional subregion
See Also
VkBindImageMemoryDeviceGroupInfo
,
VkClearRect
,
VkDeviceGroupRenderPassBeginInfo
,
VkDisplayPresentInfoKHR
,
VkExtent2D
, VkOffset2D
,
VkPipelineDiscardRectangleStateCreateInfoEXT
,
VkPipelineViewportStateCreateInfo
,
VkRenderPassBeginInfo
,
vkCmdSetDiscardRectangleEXT
,
vkCmdSetScissor
,
vkGetPhysicalDevicePresentRectanglesKHR
VkRect2D | |
|
Instances
Eq VkRect2D Source # | |
Show VkRect2D Source # | |
Storable VkRect2D Source # | |
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
constantID
specialization constant declared in a shader,size
must match the byte size of theconstantID
. If the specialization constant is of typeboolean
,size
must be the byte size ofVkBool32
See Also
VkSpecializationMapEntry | |
|
Instances
Eq VkSpecializationMapEntry Source # | |
Show VkSpecializationMapEntry Source # | |
showsPrec :: Int -> VkSpecializationMapEntry -> ShowS # show :: VkSpecializationMapEntry -> String # showList :: [VkSpecializationMapEntry] -> ShowS # | |
Storable VkSpecializationMapEntry Source # | |
sizeOf :: VkSpecializationMapEntry -> Int # alignment :: VkSpecializationMapEntry -> Int # peekElemOff :: Ptr VkSpecializationMapEntry -> Int -> IO VkSpecializationMapEntry # pokeElemOff :: Ptr VkSpecializationMapEntry -> Int -> VkSpecializationMapEntry -> IO () # peekByteOff :: Ptr b -> Int -> IO VkSpecializationMapEntry # pokeByteOff :: Ptr b -> Int -> VkSpecializationMapEntry -> IO () # peek :: Ptr VkSpecializationMapEntry -> IO VkSpecializationMapEntry # poke :: Ptr VkSpecializationMapEntry -> VkSpecializationMapEntry -> IO () # |
data VkSpecializationInfo Source #
VkSpecializationInfo - Structure specifying specialization info
Description
pMapEntries
points to a structure of type VkSpecializationMapEntry
.
Valid Usage
- The
offset
member of each element ofpMapEntries
must be less thandataSize
- The
size
member of each element ofpMapEntries
must be less than or equal todataSize
minusoffset
- If
mapEntryCount
is not0
,pMapEntries
must be a valid pointer to an array ofmapEntryCount
validVkSpecializationMapEntry
structures
Valid Usage (Implicit)
- If
dataSize
is not0
,pData
must be a valid pointer to an array ofdataSize
bytes
See Also
VkSpecializationInfo | |
|
Instances
Eq VkSpecializationInfo Source # | |
(==) :: VkSpecializationInfo -> VkSpecializationInfo -> Bool # (/=) :: VkSpecializationInfo -> VkSpecializationInfo -> Bool # | |
Show VkSpecializationInfo Source # | |
showsPrec :: Int -> VkSpecializationInfo -> ShowS # show :: VkSpecializationInfo -> String # showList :: [VkSpecializationInfo] -> ShowS # | |
Storable VkSpecializationInfo Source # | |
sizeOf :: VkSpecializationInfo -> Int # alignment :: VkSpecializationInfo -> Int # peekElemOff :: Ptr VkSpecializationInfo -> Int -> IO VkSpecializationInfo # pokeElemOff :: Ptr VkSpecializationInfo -> Int -> VkSpecializationInfo -> IO () # peekByteOff :: Ptr b -> Int -> IO VkSpecializationInfo # pokeByteOff :: Ptr b -> Int -> VkSpecializationInfo -> IO () # peek :: Ptr VkSpecializationInfo -> IO VkSpecializationInfo # poke :: Ptr VkSpecializationInfo -> VkSpecializationInfo -> IO () # |
data VkPipelineShaderStageCreateInfo Source #
VkPipelineShaderStageCreateInfo - Structure specifying parameters of a newly created pipeline shader stage
Valid Usage
- If the geometry
shaders
feature is not enabled,
stage
must not beVK_SHADER_STAGE_GEOMETRY_BIT
- If the tessellation
shaders
feature is not enabled,
stage
must not beVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
orVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
stage
must not beVK_SHADER_STAGE_ALL_GRAPHICS
, orVK_SHADER_STAGE_ALL
pName
must be the name of anOpEntryPoint
inmodule
with an execution model that matchesstage
- If the identified entry point includes any variable in its interface
that is declared with the
ClipDistance
BuiltIn
decoration, 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
CullDistance
BuiltIn
decoration, 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
ClipDistance
orCullDistance
BuiltIn
decoration, 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
SampleMask
BuiltIn
decoration, that variable must not have an array size greater thanVkPhysicalDeviceLimits
::maxSampleMaskWords
- If
stage
isVK_SHADER_STAGE_VERTEX_BIT
, the identified entry point must not include any input variable in its interface that is decorated withCullDistance
- If
stage
isVK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
orVK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
, and the identified entry point has anOpExecutionMode
instruction that specifies a patch size withOutputVertices
, the patch size must be greater than0
and less than or equal toVkPhysicalDeviceLimits
::maxTessellationPatchSize
- If
stage
isVK_SHADER_STAGE_GEOMETRY_BIT
, the identified entry point must have anOpExecutionMode
instruction that specifies a maximum output vertex count that is greater than0
and less than or equal toVkPhysicalDeviceLimits
::maxGeometryOutputVertices
- If
stage
isVK_SHADER_STAGE_GEOMETRY_BIT
, the identified entry point must have anOpExecutionMode
instruction that specifies an invocation count that is greater than0
and less than or equal toVkPhysicalDeviceLimits
::maxGeometryShaderInvocations
- If
stage
isVK_SHADER_STAGE_GEOMETRY_BIT
, and the identified entry point writes toLayer
for any primitive, it must write the same value toLayer
for all vertices of a given primitive - If
stage
isVK_SHADER_STAGE_GEOMETRY_BIT
, and the identified entry point writes toViewportIndex
for any primitive, it must write the same value toViewportIndex
for all vertices of a given primitive - If
stage
isVK_SHADER_STAGE_FRAGMENT_BIT
, the identified entry point must not include any output variables in its interface decorated withCullDistance
- If
stage
isVK_SHADER_STAGE_FRAGMENT_BIT
, and the identified entry point writes toFragDepth
in any execution path, it must write toFragDepth
in all execution paths - If
stage
isVK_SHADER_STAGE_FRAGMENT_BIT
, and the identified entry point writes toFragStencilRefEXT
in any execution path, it must write toFragStencilRefEXT
in all execution paths
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
pNext
must beNULL
flags
must be0
stage
must be a validVkShaderStageFlagBits
valuemodule
must be a validVkShaderModule
handlepName
must be a null-terminated UTF-8 string- If
pSpecializationInfo
is notNULL
,pSpecializationInfo
must be a valid pointer to a validVkSpecializationInfo
structure
See Also
VkComputePipelineCreateInfo
, VkGraphicsPipelineCreateInfo
,
VkPipelineShaderStageCreateFlags
,
VkShaderModule
, VkShaderStageFlagBits
,
VkSpecializationInfo
, VkStructureType
VkPipelineShaderStageCreateInfo | |
|
Instances
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
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is -1,basePipelineHandle
must be a valid handle to a computeVkPipeline
- If
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isVK_NULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is not -1,basePipelineHandle
must beVK_NULL_HANDLE
- If
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
is notVK_NULL_HANDLE
,basePipelineIndex
must be -1 - The
stage
member ofstage
must beVK_SHADER_STAGE_COMPUTE_BIT
- The shader code for the entry point identified by
stage
and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter layout
must be consistent with the layout of the compute shader specified instage
- The number of resources in
layout
accessible to the compute shader stage must be less than or equal toVkPhysicalDeviceLimits
::maxPerStageResources
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
pNext
must beNULL
flags
must be a valid combination ofVkPipelineCreateFlagBits
valuesstage
must be a validVkPipelineShaderStageCreateInfo
structurelayout
must be a validVkPipelineLayout
handle- Both of
basePipelineHandle
, andlayout
that are valid handles must have been created, allocated, or retrieved from the sameVkDevice
See Also
VkPipeline
, VkPipelineCreateFlags
, VkPipelineLayout
,
VkPipelineShaderStageCreateInfo
,
VkStructureType
,
vkCreateComputePipelines
VkComputePipelineCreateInfo | |
|
Instances
data VkVertexInputBindingDescription Source #
VkVertexInputBindingDescription - Structure specifying vertex input binding description
Valid Usage
binding
must be less thanVkPhysicalDeviceLimits
::maxVertexInputBindings
stride
must be less than or equal toVkPhysicalDeviceLimits
::maxVertexInputBindingStride
Valid Usage (Implicit)
inputRate
must be a validVkVertexInputRate
value
See Also
VkVertexInputBindingDescription | |
|
Instances
data VkVertexInputAttributeDescription Source #
VkVertexInputAttributeDescription - Structure specifying vertex input attribute description
Valid Usage
location
must be less thanVkPhysicalDeviceLimits
::maxVertexInputAttributes
binding
must be less thanVkPhysicalDeviceLimits
::maxVertexInputBindings
offset
must be less than or equal toVkPhysicalDeviceLimits
::maxVertexInputAttributeOffset
format
must be allowed as a vertex buffer format, as specified by theVK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
flag inVkFormatProperties
::bufferFeatures
returned byvkGetPhysicalDeviceFormatProperties
Valid Usage (Implicit)
format
must be a validVkFormat
value
See Also
VkVertexInputAttributeDescription | |
|
Instances
data VkPipelineVertexInputStateCreateInfo Source #
VkPipelineVertexInputStateCreateInfo - Structure specifying parameters of a newly created pipeline vertex input state
Valid Usage
vertexBindingDescriptionCount
must be less than or equal toVkPhysicalDeviceLimits
::maxVertexInputBindings
vertexAttributeDescriptionCount
must be less than or equal toVkPhysicalDeviceLimits
::maxVertexInputAttributes
- For every
binding
specified by each element ofpVertexAttributeDescriptions
, aVkVertexInputBindingDescription
must exist inpVertexBindingDescriptions
with the same value ofbinding
- All elements of
pVertexBindingDescriptions
must describe distinct binding numbers - All elements of
pVertexAttributeDescriptions
must describe distinct attribute locations
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofVkPipelineVertexInputDivisorStateCreateInfoEXT
flags
must be0
- If
vertexBindingDescriptionCount
is not0
,pVertexBindingDescriptions
must be a valid pointer to an array ofvertexBindingDescriptionCount
validVkVertexInputBindingDescription
structures - If
vertexAttributeDescriptionCount
is not0
,pVertexAttributeDescriptions
must be a valid pointer to an array ofvertexAttributeDescriptionCount
validVkVertexInputAttributeDescription
structures
See Also
VkGraphicsPipelineCreateInfo
, VkPipelineVertexInputStateCreateFlags
,
VkStructureType
,
VkVertexInputAttributeDescription
, VkVertexInputBindingDescription
VkPipelineVertexInputStateCreateInfo | |
|
Instances
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
topology
isVK_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_ADJACENCY
orVK_PRIMITIVE_TOPOLOGY_PATCH_LIST
,primitiveRestartEnable
must beVK_FALSE
- If the geometry
shaders
feature is not enabled,
topology
must not be any ofVK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
,VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
,VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
orVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
- If the tessellation
shaders
feature is not enabled,
topology
must not beVK_PRIMITIVE_TOPOLOGY_PATCH_LIST
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
pNext
must beNULL
flags
must be0
topology
must be a validVkPrimitiveTopology
value
See Also
VkBool32
, VkGraphicsPipelineCreateInfo
,
VkPipelineInputAssemblyStateCreateFlags
, VkPrimitiveTopology
,
VkStructureType
VkPipelineInputAssemblyStateCreateInfo | |
|
Instances
data VkPipelineTessellationStateCreateInfo Source #
VkPipelineTessellationStateCreateInfo - Structure specifying parameters of a newly created pipeline tessellation state
Valid Usage
patchControlPoints
must be greater than zero and less than or equal toVkPhysicalDeviceLimits
::maxTessellationPatchSize
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofVkPipelineTessellationDomainOriginStateCreateInfo
flags
must be0
See Also
VkGraphicsPipelineCreateInfo
,
VkPipelineTessellationStateCreateFlags
,
VkStructureType
VkPipelineTessellationStateCreateInfo | |
|
Instances
data VkPipelineViewportStateCreateInfo Source #
VkPipelineViewportStateCreateInfo - Structure specifying parameters of a newly created pipeline viewport state
Valid Usage
- If the multiple
viewports
feature is not enabled,
viewportCount
must be1
- If the multiple
viewports
feature is not enabled,
scissorCount
must be1
viewportCount
must be between1
andVkPhysicalDeviceLimits
::maxViewports
, inclusivescissorCount
must be between1
andVkPhysicalDeviceLimits
::maxViewports
, inclusivescissorCount
andviewportCount
must be identical- If the
viewportWScalingEnable
member of aVkPipelineViewportWScalingStateCreateInfoNV
structure chained to thepNext
chain isVK_TRUE
, theviewportCount
member of theVkPipelineViewportWScalingStateCreateInfoNV
structure must be equal toviewportCount
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofVkPipelineViewportSwizzleStateCreateInfoNV
orVkPipelineViewportWScalingStateCreateInfoNV
- Each
sType
member in thepNext
chain must be unique flags
must be0
viewportCount
must be greater than0
scissorCount
must be greater than0
See Also
VkGraphicsPipelineCreateInfo
, VkPipelineViewportStateCreateFlags
,
VkRect2D
, VkStructureType
, VkViewport
VkPipelineViewportStateCreateInfo | |
|
Instances
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,
depthClampEnable
must beVK_FALSE
- If the non-solid fill
modes
feature is not enabled,
polygonMode
must beVK_POLYGON_MODE_FILL
orVK_POLYGON_MODE_FILL_RECTANGLE_NV
- If the
{html_spec_relative}#VK_NV_fill_rectangle
extension is not enabled,polygonMode
must not beVK_POLYGON_MODE_FILL_RECTANGLE_NV
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofVkPipelineRasterizationConservativeStateCreateInfoEXT
orVkPipelineRasterizationStateRasterizationOrderAMD
- Each
sType
member in thepNext
chain must be unique flags
must be0
polygonMode
must be a validVkPolygonMode
valuecullMode
must be a valid combination ofVkCullModeFlagBits
valuesfrontFace
must be a validVkFrontFace
value
See Also
VkBool32
, VkCullModeFlags
, VkFrontFace
,
VkGraphicsPipelineCreateInfo
,
VkPipelineRasterizationStateCreateFlags
, VkPolygonMode
,
VkStructureType
VkPipelineRasterizationStateCreateInfo | |
|
Instances
data VkPipelineMultisampleStateCreateInfo Source #
VkPipelineMultisampleStateCreateInfo - Structure specifying parameters of a newly created pipeline multisample state
Valid Usage
- If the sample rate
shading
feature is not enabled,
sampleShadingEnable
must beVK_FALSE
- If the alpha to
one
feature is not enabled,
alphaToOneEnable
must beVK_FALSE
minSampleShading
must be in the range [0,1]- If the subpass has any color attachments and
rasterizationSamples
is greater than the number of color samples, thensampleShadingEnable
must beVK_FALSE
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofVkPipelineCoverageModulationStateCreateInfoNV
,VkPipelineCoverageToColorStateCreateInfoNV
, orVkPipelineSampleLocationsStateCreateInfoEXT
- Each
sType
member in thepNext
chain must be unique flags
must be0
rasterizationSamples
must be a validVkSampleCountFlagBits
value- If
pSampleMask
is notNULL
,pSampleMask
must be a valid pointer to an array of \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)VkSampleMask
values
See Also
VkBool32
, VkGraphicsPipelineCreateInfo
,
VkPipelineMultisampleStateCreateFlags
,
VkSampleCountFlagBits
,
VkSampleMask
, VkStructureType
VkPipelineMultisampleStateCreateInfo | |
|
Instances
data VkPipelineColorBlendAttachmentState Source #
VkPipelineColorBlendAttachmentState - Structure specifying a pipeline color blend attachment state
Valid Usage
- If the dual source
blending
feature is not enabled,
srcColorBlendFactor
must 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,
dstColorBlendFactor
must 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,
srcAlphaBlendFactor
must 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,
dstAlphaBlendFactor
must 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
colorBlendOp
oralphaBlendOp
is an advanced blend operation, thencolorBlendOp
must equalalphaBlendOp
- If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendIndependentBlend
isVK_FALSE
andcolorBlendOp
is an advanced blend operation, thencolorBlendOp
must be the same for all attachments. - If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendIndependentBlend
isVK_FALSE
andalphaBlendOp
is an advanced blend operation, thenalphaBlendOp
must be the same for all attachments. - If
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendAllOperations
isVK_FALSE
, thencolorBlendOp
must 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
colorBlendOp
oralphaBlendOp
is an advanced blend operation, thenVkSubpassDescription
::colorAttachmentCount
of the subpass this pipeline is compiled against must be less than or equal toVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendMaxColorAttachments
Valid Usage (Implicit)
srcColorBlendFactor
must be a validVkBlendFactor
value
dstColorBlendFactor
must be a validVkBlendFactor
valuecolorBlendOp
must be a validVkBlendOp
valuesrcAlphaBlendFactor
must be a validVkBlendFactor
valuedstAlphaBlendFactor
must be a validVkBlendFactor
valuealphaBlendOp
must be a validVkBlendOp
valuecolorWriteMask
must be a valid combination ofVkColorComponentFlagBits
values
See Also
VkBlendFactor
, VkBlendOp
, VkBool32
, VkColorComponentFlags
,
VkPipelineColorBlendStateCreateInfo
VkPipelineColorBlendAttachmentState | |
|
Instances
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
pAttachments
must be identical
- If the logic
operations
feature is not enabled,
logicOpEnable
must beVK_FALSE
- If
logicOpEnable
isVK_TRUE
,logicOp
must be a validVkLogicOp
value
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofVkPipelineColorBlendAdvancedStateCreateInfoEXT
flags
must be0
- If
attachmentCount
is not0
,pAttachments
must be a valid pointer to an array ofattachmentCount
validVkPipelineColorBlendAttachmentState
structures
See Also
VkBool32
, VkGraphicsPipelineCreateInfo
, VkLogicOp
,
VkPipelineColorBlendAttachmentState
,
VkPipelineColorBlendStateCreateFlags
,
VkStructureType
VkPipelineColorBlendStateCreateInfo | |
|
Instances
data VkPipelineDynamicStateCreateInfo Source #
VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a newly created pipeline dynamic state
Valid Usage
- Each element of
pDynamicStates
must be unique
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
pNext
must beNULL
flags
must be0
pDynamicStates
must be a valid pointer to an array ofdynamicStateCount
validVkDynamicState
valuesdynamicStateCount
must be greater than0
See Also
VkDynamicState
, VkGraphicsPipelineCreateInfo
,
VkPipelineDynamicStateCreateFlags
,
VkStructureType
VkPipelineDynamicStateCreateInfo | |
|
Instances
data VkStencilOpState Source #
VkStencilOpState - Structure specifying stencil operation state
Valid Usage (Implicit)
failOp
must be a validVkStencilOp
value
passOp
must be a validVkStencilOp
valuedepthFailOp
must be a validVkStencilOp
valuecompareOp
must be a validVkCompareOp
value
See Also
VkCompareOp
, VkPipelineDepthStencilStateCreateInfo
, VkStencilOp
VkStencilOpState | |
|
Instances
Eq VkStencilOpState Source # | |
(==) :: VkStencilOpState -> VkStencilOpState -> Bool # (/=) :: VkStencilOpState -> VkStencilOpState -> Bool # | |
Show VkStencilOpState Source # | |
showsPrec :: Int -> VkStencilOpState -> ShowS # show :: VkStencilOpState -> String # showList :: [VkStencilOpState] -> ShowS # | |
Storable VkStencilOpState Source # | |
sizeOf :: VkStencilOpState -> Int # alignment :: VkStencilOpState -> Int # peekElemOff :: Ptr VkStencilOpState -> Int -> IO VkStencilOpState # pokeElemOff :: Ptr VkStencilOpState -> Int -> VkStencilOpState -> IO () # peekByteOff :: Ptr b -> Int -> IO VkStencilOpState # pokeByteOff :: Ptr b -> Int -> VkStencilOpState -> IO () # peek :: Ptr VkStencilOpState -> IO VkStencilOpState # poke :: Ptr VkStencilOpState -> VkStencilOpState -> IO () # |
data VkPipelineDepthStencilStateCreateInfo Source #
VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters of a newly created pipeline depth stencil state
Valid Usage
- If the depth bounds
testing
feature is not enabled,
depthBoundsTestEnable
must beVK_FALSE
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
pNext
must beNULL
flags
must be0
depthCompareOp
must be a validVkCompareOp
valuefront
must be a validVkStencilOpState
structureback
must be a validVkStencilOpState
structure
See Also
VkBool32
, VkCompareOp
, VkGraphicsPipelineCreateInfo
,
VkPipelineDepthStencilStateCreateFlags
, VkStencilOpState
,
VkStructureType
VkPipelineDepthStencilStateCreateInfo | |
|
Instances
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
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is -1,basePipelineHandle
must be a valid handle to a graphicsVkPipeline
- If
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isVK_NULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is not -1,basePipelineHandle
must beVK_NULL_HANDLE
- If
flags
contains theVK_PIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
is notVK_NULL_HANDLE
,basePipelineIndex
must be -1 - The
stage
member of each element ofpStages
must be unique - The
stage
member of one element ofpStages
must beVK_SHADER_STAGE_VERTEX_BIT
- The
stage
member of each element ofpStages
must not beVK_SHADER_STAGE_COMPUTE_BIT
- If
pStages
includes a tessellation control shader stage, it must include a tessellation evaluation shader stage - If
pStages
includes a tessellation evaluation shader stage, it must include a tessellation control shader stage - If
pStages
includes a tessellation control shader stage and a tessellation evaluation shader stage,pTessellationState
must be a valid pointer to a validVkPipelineTessellationStateCreateInfo
structure - If
pStages
includes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionMode
instruction that specifies the type of subdivision in the pipeline - If
pStages
includes tessellation shader stages, and the shader code of both stages contain anOpExecutionMode
instruction that specifies the type of subdivision in the pipeline, they must both specify the same subdivision mode - If
pStages
includes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionMode
instruction that specifies the output patch size in the pipeline - If
pStages
includes tessellation shader stages, and the shader code of both contain anOpExecutionMode
instruction that specifies the out patch size in the pipeline, they must both specify the same patch size - If
pStages
includes tessellation shader stages, thetopology
member ofpInputAssembly
must beVK_PRIMITIVE_TOPOLOGY_PATCH_LIST
- If the
topology
member ofpInputAssembly
isVK_PRIMITIVE_TOPOLOGY_PATCH_LIST
,pStages
must include tessellation shader stages - If
pStages
includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain anOpExecutionMode
instruction that specifies an input primitive type that is compatible with the primitive topology specified inpInputAssembly
- If
pStages
includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain anOpExecutionMode
instruction that specifies an input primitive type that is compatible with the primitive topology that is output by the tessellation stages - If
pStages
includes 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
pStages
includes a fragment shader stage, its shader code must not read from any input attachment that is defined asVK_ATTACHMENT_UNUSED
insubpass
- 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
subpass
uses a depth/stencil attachment inrenderPass
that has a layout ofVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
orVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
in theVkAttachmentReference
defined bysubpass
, thedepthWriteEnable
member ofpDepthStencilState
must beVK_FALSE
- If rasterization is not disabled and
subpass
uses a depth/stencil attachment inrenderPass
that has a layout ofVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
orVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
in theVkAttachmentReference
defined bysubpass
, thefailOp
,passOp
anddepthFailOp
members of each of thefront
andback
members ofpDepthStencilState
must beVK_STENCIL_OP_KEEP
- If rasterization is not disabled and the subpass uses color
attachments, then for each color attachment in the subpass the
blendEnable
member of the corresponding element of thepAttachment
member ofpColorBlendState
must beVK_FALSE
if theformat
of the attachment does not support color blend operations, as specified by theVK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
flag inVkFormatProperties
::linearTilingFeatures
orVkFormatProperties
::optimalTilingFeatures
returned byvkGetPhysicalDeviceFormatProperties
- If rasterization is not disabled and the subpass uses color
attachments, the
attachmentCount
member ofpColorBlendState
must be equal to thecolorAttachmentCount
used to createsubpass
- If no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_VIEWPORT
, thepViewports
member ofpViewportState
must be a valid pointer to an array ofpViewportState
::viewportCount
VkViewport
structures - If no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_SCISSOR
, thepScissors
member ofpViewportState
must be a valid pointer to an array ofpViewportState
::scissorCount
VkRect2D
structures - If the wide lines feature is not enabled, and no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_LINE_WIDTH
, thelineWidth
member ofpRasterizationState
must be1.0
- If the
rasterizerDiscardEnable
member ofpRasterizationState
isVK_FALSE
,pViewportState
must be a valid pointer to a validVkPipelineViewportStateCreateInfo
structure - If the
rasterizerDiscardEnable
member ofpRasterizationState
isVK_FALSE
,pMultisampleState
must be a valid pointer to a validVkPipelineMultisampleStateCreateInfo
structure - If the
rasterizerDiscardEnable
member ofpRasterizationState
isVK_FALSE
, andsubpass
uses a depth/stencil attachment,pDepthStencilState
must be a valid pointer to a validVkPipelineDepthStencilStateCreateInfo
structure - If the
rasterizerDiscardEnable
member ofpRasterizationState
isVK_FALSE
, andsubpass
uses color attachments,pColorBlendState
must be a valid pointer to a validVkPipelineColorBlendStateCreateInfo
structure - If the depth bias clamping feature is not enabled, no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_DEPTH_BIAS
, and thedepthBiasEnable
member ofpRasterizationState
isVK_TRUE
, thedepthBiasClamp
member ofpRasterizationState
must be0.0
- If the
{html_spec_relative}#VK_EXT_depth_range_unrestricted
extension is not enabled and no element of thepDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_DEPTH_BOUNDS
, and thedepthBoundsTestEnable
member ofpDepthStencilState
isVK_TRUE
, theminDepthBounds
andmaxDepthBounds
members ofpDepthStencilState
must be between0.0
and1.0
, inclusive - If no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
, and thesampleLocationsEnable
member of aVkPipelineSampleLocationsStateCreateInfoEXT
structure chained to thepNext
chain ofpMultisampleState
isVK_TRUE
,sampleLocationsInfo.sampleLocationGridSize.width
must evenly divideVkMultisamplePropertiesEXT
::sampleLocationGridSize.width
as returned byvkGetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
, and thesampleLocationsEnable
member of aVkPipelineSampleLocationsStateCreateInfoEXT
structure chained to thepNext
chain ofpMultisampleState
isVK_TRUE
,sampleLocationsInfo.sampleLocationGridSize.height
must evenly divideVkMultisamplePropertiesEXT
::sampleLocationGridSize.height
as returned byvkGetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
, and thesampleLocationsEnable
member of aVkPipelineSampleLocationsStateCreateInfoEXT
structure chained to thepNext
chain ofpMultisampleState
isVK_TRUE
,sampleLocationsInfo.sampleLocationsPerPixel
must equalrasterizationSamples
- If the
sampleLocationsEnable
member of aVkPipelineSampleLocationsStateCreateInfoEXT
structure chained to thepNext
chain ofpMultisampleState
isVK_TRUE
, the fragment shader code must not statically use the extended instructionInterpolateAtSample
layout
must be consistent with all shaders specified inpStages
- If
subpass
uses color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must equal the maximum of the sample counts of those subpass attachments - If
subpass
has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then therasterizationSamples
member ofpMultisampleState
must be the same as the sample count of the depth/stencil attachment - If
subpass
has any color attachments, then therasterizationSamples
member ofpMultisampleState
must be greater than or equal to the sample count for those subpass attachments - If
subpass
does not use any color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must follow the rules for a zero-attachment subpass subpass
must be a valid subpass withinrenderPass
- If the
renderPass
has multiview enabled andsubpass
has more than one bit set in the view mask andmultiviewTessellationShader
is not enabled, thenpStages
must not include tessellation shaders. - If the
renderPass
has multiview enabled andsubpass
has more than one bit set in the view mask andmultiviewGeometryShader
is not enabled, thenpStages
must not include a geometry shader. - If the
renderPass
has multiview enabled andsubpass
has more than one bit set in the view mask, shaders in the pipeline must not write to theLayer
built-in output - If the
renderPass
has multiview enabled, then all shaders must not include variables decorated with theLayer
built-in decoration in their interfaces. flags
must not contain theVK_PIPELINE_CREATE_DISPATCH_BASE
flag.- If
pStages
includes a fragment shader stage and an input attachment was referenced by theVkRenderPassInputAttachmentAspectCreateInfo
atrenderPass
create time, its shader code must not read from any aspect that was not specified in theaspectMask
of the correspondingVkInputAttachmentAspectReference
structure. - The number of resources in
layout
accessible to each shader stage that is used by the pipeline must be less than or equal toVkPhysicalDeviceLimits
::maxPerStageResources
- If no element of the
pDynamicStates
member ofpDynamicState
isVK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV
, and theviewportWScalingEnable
member of aVkPipelineViewportWScalingStateCreateInfoNV
structure, chained to thepNext
chain ofpViewportState
, isVK_TRUE
, thepViewportWScalings
member of theVkPipelineViewportWScalingStateCreateInfoNV
must be a pointer to an array ofVkPipelineViewportWScalingStateCreateInfoNV
::viewportCount
validVkViewportWScalingNV
structures
Valid Usage (Implicit)
sType
must beVK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofVkPipelineDiscardRectangleStateCreateInfoEXT
flags
must be a valid combination ofVkPipelineCreateFlagBits
valuespStages
must be a valid pointer to an array ofstageCount
validVkPipelineShaderStageCreateInfo
structurespVertexInputState
must be a valid pointer to a validVkPipelineVertexInputStateCreateInfo
structurepInputAssemblyState
must be a valid pointer to a validVkPipelineInputAssemblyStateCreateInfo
structurepRasterizationState
must be a valid pointer to a validVkPipelineRasterizationStateCreateInfo
structure- If
pDynamicState
is notNULL
,pDynamicState
must be a valid pointer to a validVkPipelineDynamicStateCreateInfo
structure layout
must be a validVkPipelineLayout
handlerenderPass
must be a validVkRenderPass
handlestageCount
must be greater than0
- Each of
basePipelineHandle
,layout
, andrenderPass
that 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
VkGraphicsPipelineCreateInfo | |
|
Instances
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 #