Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- createGraphicsPipelines :: forall io. MonadIO io => Device -> PipelineCache -> ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "pipelines" ::: Vector Pipeline)
- withGraphicsPipelines :: forall io r. MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
- createComputePipelines :: forall io. MonadIO io => Device -> PipelineCache -> ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "pipelines" ::: Vector Pipeline)
- withComputePipelines :: forall io r. MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
- destroyPipeline :: forall io. MonadIO io => Device -> Pipeline -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- data Viewport = Viewport {}
- data SpecializationMapEntry = SpecializationMapEntry {}
- data SpecializationInfo = SpecializationInfo {
- mapEntries :: Vector SpecializationMapEntry
- dataSize :: Word64
- data' :: Ptr ()
- data PipelineShaderStageCreateInfo (es :: [Type]) = PipelineShaderStageCreateInfo {}
- data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo {}
- data VertexInputBindingDescription = VertexInputBindingDescription {}
- data VertexInputAttributeDescription = VertexInputAttributeDescription {}
- data PipelineVertexInputStateCreateInfo (es :: [Type]) = PipelineVertexInputStateCreateInfo {}
- data PipelineInputAssemblyStateCreateInfo = PipelineInputAssemblyStateCreateInfo {}
- data PipelineTessellationStateCreateInfo (es :: [Type]) = PipelineTessellationStateCreateInfo {}
- data PipelineViewportStateCreateInfo (es :: [Type]) = PipelineViewportStateCreateInfo {}
- data PipelineRasterizationStateCreateInfo (es :: [Type]) = PipelineRasterizationStateCreateInfo {
- next :: Chain es
- flags :: PipelineRasterizationStateCreateFlags
- depthClampEnable :: Bool
- rasterizerDiscardEnable :: Bool
- polygonMode :: PolygonMode
- cullMode :: CullModeFlags
- frontFace :: FrontFace
- depthBiasEnable :: Bool
- depthBiasConstantFactor :: Float
- depthBiasClamp :: Float
- depthBiasSlopeFactor :: Float
- lineWidth :: Float
- data PipelineMultisampleStateCreateInfo (es :: [Type]) = PipelineMultisampleStateCreateInfo {}
- data PipelineColorBlendAttachmentState = PipelineColorBlendAttachmentState {}
- data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateCreateInfo {}
- data PipelineDynamicStateCreateInfo = PipelineDynamicStateCreateInfo {}
- data StencilOpState = StencilOpState {}
- data PipelineDepthStencilStateCreateInfo = PipelineDepthStencilStateCreateInfo {}
- data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo {
- next :: Chain es
- flags :: PipelineCreateFlags
- stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
- vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)
- inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo
- tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)
- viewportState :: Maybe (SomeStruct PipelineViewportStateCreateInfo)
- rasterizationState :: SomeStruct PipelineRasterizationStateCreateInfo
- multisampleState :: Maybe (SomeStruct PipelineMultisampleStateCreateInfo)
- depthStencilState :: Maybe PipelineDepthStencilStateCreateInfo
- colorBlendState :: Maybe (SomeStruct PipelineColorBlendStateCreateInfo)
- dynamicState :: Maybe PipelineDynamicStateCreateInfo
- layout :: PipelineLayout
- renderPass :: RenderPass
- subpass :: Word32
- basePipelineHandle :: Pipeline
- basePipelineIndex :: Int32
- newtype Pipeline = Pipeline Word64
- newtype PipelineLayoutCreateFlags = PipelineLayoutCreateFlags Flags
- newtype PipelineDepthStencilStateCreateFlags = PipelineDepthStencilStateCreateFlags Flags
- newtype PipelineDynamicStateCreateFlags = PipelineDynamicStateCreateFlags Flags
- newtype PipelineColorBlendStateCreateFlags = PipelineColorBlendStateCreateFlags Flags
- newtype PipelineMultisampleStateCreateFlags = PipelineMultisampleStateCreateFlags Flags
- newtype PipelineRasterizationStateCreateFlags = PipelineRasterizationStateCreateFlags Flags
- newtype PipelineViewportStateCreateFlags = PipelineViewportStateCreateFlags Flags
- newtype PipelineTessellationStateCreateFlags = PipelineTessellationStateCreateFlags Flags
- newtype PipelineInputAssemblyStateCreateFlags = PipelineInputAssemblyStateCreateFlags Flags
- newtype PipelineVertexInputStateCreateFlags = PipelineVertexInputStateCreateFlags Flags
- newtype PrimitiveTopology where
- PrimitiveTopology Int32
- pattern PRIMITIVE_TOPOLOGY_POINT_LIST :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_LIST :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_STRIP :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: PrimitiveTopology
- pattern PRIMITIVE_TOPOLOGY_PATCH_LIST :: PrimitiveTopology
- newtype CompareOp where
- CompareOp Int32
- pattern COMPARE_OP_NEVER :: CompareOp
- pattern COMPARE_OP_LESS :: CompareOp
- pattern COMPARE_OP_EQUAL :: CompareOp
- pattern COMPARE_OP_LESS_OR_EQUAL :: CompareOp
- pattern COMPARE_OP_GREATER :: CompareOp
- pattern COMPARE_OP_NOT_EQUAL :: CompareOp
- pattern COMPARE_OP_GREATER_OR_EQUAL :: CompareOp
- pattern COMPARE_OP_ALWAYS :: CompareOp
- newtype PolygonMode where
- PolygonMode Int32
- pattern POLYGON_MODE_FILL :: PolygonMode
- pattern POLYGON_MODE_LINE :: PolygonMode
- pattern POLYGON_MODE_POINT :: PolygonMode
- pattern POLYGON_MODE_FILL_RECTANGLE_NV :: PolygonMode
- newtype CullModeFlagBits where
- CullModeFlagBits Flags
- pattern CULL_MODE_NONE :: CullModeFlagBits
- pattern CULL_MODE_FRONT_BIT :: CullModeFlagBits
- pattern CULL_MODE_BACK_BIT :: CullModeFlagBits
- pattern CULL_MODE_FRONT_AND_BACK :: CullModeFlagBits
- type CullModeFlags = CullModeFlagBits
- newtype FrontFace where
- FrontFace Int32
- pattern FRONT_FACE_COUNTER_CLOCKWISE :: FrontFace
- pattern FRONT_FACE_CLOCKWISE :: FrontFace
- newtype BlendFactor where
- BlendFactor Int32
- pattern BLEND_FACTOR_ZERO :: BlendFactor
- pattern BLEND_FACTOR_ONE :: BlendFactor
- pattern BLEND_FACTOR_SRC_COLOR :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_SRC_COLOR :: BlendFactor
- pattern BLEND_FACTOR_DST_COLOR :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_DST_COLOR :: BlendFactor
- pattern BLEND_FACTOR_SRC_ALPHA :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_SRC_ALPHA :: BlendFactor
- pattern BLEND_FACTOR_DST_ALPHA :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_DST_ALPHA :: BlendFactor
- pattern BLEND_FACTOR_CONSTANT_COLOR :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR :: BlendFactor
- pattern BLEND_FACTOR_CONSTANT_ALPHA :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA :: BlendFactor
- pattern BLEND_FACTOR_SRC_ALPHA_SATURATE :: BlendFactor
- pattern BLEND_FACTOR_SRC1_COLOR :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_SRC1_COLOR :: BlendFactor
- pattern BLEND_FACTOR_SRC1_ALPHA :: BlendFactor
- pattern BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: BlendFactor
- newtype BlendOp where
- BlendOp Int32
- pattern BLEND_OP_ADD :: BlendOp
- pattern BLEND_OP_SUBTRACT :: BlendOp
- pattern BLEND_OP_REVERSE_SUBTRACT :: BlendOp
- pattern BLEND_OP_MIN :: BlendOp
- pattern BLEND_OP_MAX :: BlendOp
- pattern BLEND_OP_BLUE_EXT :: BlendOp
- pattern BLEND_OP_GREEN_EXT :: BlendOp
- pattern BLEND_OP_RED_EXT :: BlendOp
- pattern BLEND_OP_INVERT_OVG_EXT :: BlendOp
- pattern BLEND_OP_CONTRAST_EXT :: BlendOp
- pattern BLEND_OP_MINUS_CLAMPED_EXT :: BlendOp
- pattern BLEND_OP_MINUS_EXT :: BlendOp
- pattern BLEND_OP_PLUS_DARKER_EXT :: BlendOp
- pattern BLEND_OP_PLUS_CLAMPED_ALPHA_EXT :: BlendOp
- pattern BLEND_OP_PLUS_CLAMPED_EXT :: BlendOp
- pattern BLEND_OP_PLUS_EXT :: BlendOp
- pattern BLEND_OP_HSL_LUMINOSITY_EXT :: BlendOp
- pattern BLEND_OP_HSL_COLOR_EXT :: BlendOp
- pattern BLEND_OP_HSL_SATURATION_EXT :: BlendOp
- pattern BLEND_OP_HSL_HUE_EXT :: BlendOp
- pattern BLEND_OP_HARDMIX_EXT :: BlendOp
- pattern BLEND_OP_PINLIGHT_EXT :: BlendOp
- pattern BLEND_OP_LINEARLIGHT_EXT :: BlendOp
- pattern BLEND_OP_VIVIDLIGHT_EXT :: BlendOp
- pattern BLEND_OP_LINEARBURN_EXT :: BlendOp
- pattern BLEND_OP_LINEARDODGE_EXT :: BlendOp
- pattern BLEND_OP_INVERT_RGB_EXT :: BlendOp
- pattern BLEND_OP_INVERT_EXT :: BlendOp
- pattern BLEND_OP_EXCLUSION_EXT :: BlendOp
- pattern BLEND_OP_DIFFERENCE_EXT :: BlendOp
- pattern BLEND_OP_SOFTLIGHT_EXT :: BlendOp
- pattern BLEND_OP_HARDLIGHT_EXT :: BlendOp
- pattern BLEND_OP_COLORBURN_EXT :: BlendOp
- pattern BLEND_OP_COLORDODGE_EXT :: BlendOp
- pattern BLEND_OP_LIGHTEN_EXT :: BlendOp
- pattern BLEND_OP_DARKEN_EXT :: BlendOp
- pattern BLEND_OP_OVERLAY_EXT :: BlendOp
- pattern BLEND_OP_SCREEN_EXT :: BlendOp
- pattern BLEND_OP_MULTIPLY_EXT :: BlendOp
- pattern BLEND_OP_XOR_EXT :: BlendOp
- pattern BLEND_OP_DST_ATOP_EXT :: BlendOp
- pattern BLEND_OP_SRC_ATOP_EXT :: BlendOp
- pattern BLEND_OP_DST_OUT_EXT :: BlendOp
- pattern BLEND_OP_SRC_OUT_EXT :: BlendOp
- pattern BLEND_OP_DST_IN_EXT :: BlendOp
- pattern BLEND_OP_SRC_IN_EXT :: BlendOp
- pattern BLEND_OP_DST_OVER_EXT :: BlendOp
- pattern BLEND_OP_SRC_OVER_EXT :: BlendOp
- pattern BLEND_OP_DST_EXT :: BlendOp
- pattern BLEND_OP_SRC_EXT :: BlendOp
- pattern BLEND_OP_ZERO_EXT :: BlendOp
- newtype StencilOp where
- StencilOp Int32
- pattern STENCIL_OP_KEEP :: StencilOp
- pattern STENCIL_OP_ZERO :: StencilOp
- pattern STENCIL_OP_REPLACE :: StencilOp
- pattern STENCIL_OP_INCREMENT_AND_CLAMP :: StencilOp
- pattern STENCIL_OP_DECREMENT_AND_CLAMP :: StencilOp
- pattern STENCIL_OP_INVERT :: StencilOp
- pattern STENCIL_OP_INCREMENT_AND_WRAP :: StencilOp
- pattern STENCIL_OP_DECREMENT_AND_WRAP :: StencilOp
- newtype LogicOp where
- LogicOp Int32
- pattern LOGIC_OP_CLEAR :: LogicOp
- pattern LOGIC_OP_AND :: LogicOp
- pattern LOGIC_OP_AND_REVERSE :: LogicOp
- pattern LOGIC_OP_COPY :: LogicOp
- pattern LOGIC_OP_AND_INVERTED :: LogicOp
- pattern LOGIC_OP_NO_OP :: LogicOp
- pattern LOGIC_OP_XOR :: LogicOp
- pattern LOGIC_OP_OR :: LogicOp
- pattern LOGIC_OP_NOR :: LogicOp
- pattern LOGIC_OP_EQUIVALENT :: LogicOp
- pattern LOGIC_OP_INVERT :: LogicOp
- pattern LOGIC_OP_OR_REVERSE :: LogicOp
- pattern LOGIC_OP_COPY_INVERTED :: LogicOp
- pattern LOGIC_OP_OR_INVERTED :: LogicOp
- pattern LOGIC_OP_NAND :: LogicOp
- pattern LOGIC_OP_SET :: LogicOp
- newtype VertexInputRate where
- VertexInputRate Int32
- pattern VERTEX_INPUT_RATE_VERTEX :: VertexInputRate
- pattern VERTEX_INPUT_RATE_INSTANCE :: VertexInputRate
- newtype DynamicState where
- DynamicState Int32
- pattern DYNAMIC_STATE_VIEWPORT :: DynamicState
- pattern DYNAMIC_STATE_SCISSOR :: DynamicState
- pattern DYNAMIC_STATE_LINE_WIDTH :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_BIAS :: DynamicState
- pattern DYNAMIC_STATE_BLEND_CONSTANTS :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_BOUNDS :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_COMPARE_MASK :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_WRITE_MASK :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_REFERENCE :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_OP_EXT :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT :: DynamicState
- pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT :: DynamicState
- pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT :: DynamicState
- pattern DYNAMIC_STATE_FRONT_FACE_EXT :: DynamicState
- pattern DYNAMIC_STATE_CULL_MODE_EXT :: DynamicState
- pattern DYNAMIC_STATE_LINE_STIPPLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV :: DynamicState
- pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT :: DynamicState
- pattern DYNAMIC_STATE_DISCARD_RECTANGLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: DynamicState
- newtype ShaderStageFlagBits where
- ShaderStageFlagBits Flags
- pattern SHADER_STAGE_VERTEX_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_TESSELLATION_CONTROL_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_GEOMETRY_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_FRAGMENT_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_COMPUTE_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_ALL_GRAPHICS :: ShaderStageFlagBits
- pattern SHADER_STAGE_ALL :: ShaderStageFlagBits
- pattern SHADER_STAGE_MESH_BIT_NV :: ShaderStageFlagBits
- pattern SHADER_STAGE_TASK_BIT_NV :: ShaderStageFlagBits
- pattern SHADER_STAGE_CALLABLE_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_INTERSECTION_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_MISS_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_CLOSEST_HIT_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_ANY_HIT_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_RAYGEN_BIT_KHR :: ShaderStageFlagBits
- type ShaderStageFlags = ShaderStageFlagBits
- newtype PipelineCreateFlagBits where
- PipelineCreateFlagBits Flags
- pattern PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DERIVATIVE_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_LIBRARY_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DEFER_COMPILE_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DISPATCH_BASE_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT :: PipelineCreateFlagBits
- type PipelineCreateFlags = PipelineCreateFlagBits
- newtype PipelineShaderStageCreateFlagBits where
- type PipelineShaderStageCreateFlags = PipelineShaderStageCreateFlagBits
- newtype ColorComponentFlagBits where
- type ColorComponentFlags = ColorComponentFlagBits
- type SampleMask = Word32
Documentation
createGraphicsPipelines Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineCache |
|
-> ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo)) |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io (Result, "pipelines" ::: Vector Pipeline) |
vkCreateGraphicsPipelines - Create graphics pipelines
Description
The GraphicsPipelineCreateInfo
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 thePIPELINE_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 thePIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set - If
pipelineCache
was created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
, host access topipelineCache
must be externally synchronized
Note
An implicit cache may be provided by the implementation or a layer. For
this reason, it is still valid to set
PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
on flags
for any element of pCreateInfos
while passing
NULL_HANDLE
for pipelineCache
.
Valid Usage (Implicit)
device
must be a validDevice
handle
- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validPipelineCache
handle pCreateInfos
must be a valid pointer to an array ofcreateInfoCount
validGraphicsPipelineCreateInfo
structures- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure pPipelines
must be a valid pointer to an array ofcreateInfoCount
Pipeline
handlescreateInfoCount
must be greater than0
- If
pipelineCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
See Also
AllocationCallbacks
,
Device
, GraphicsPipelineCreateInfo
,
Pipeline
, PipelineCache
withGraphicsPipelines :: forall io r. MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
createGraphicsPipelines
and destroyPipeline
To ensure that destroyPipeline
is always called: pass
bracket
(or the allocate function from your
favourite resource management library) as the first argument.
To just extract the pair pass (,)
as the first argument.
createComputePipelines Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineCache |
|
-> ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo)) |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io (Result, "pipelines" ::: Vector Pipeline) |
vkCreateComputePipelines - Creates a new compute pipeline object
Valid Usage
- If the
flags
member of any element ofpCreateInfos
contains thePIPELINE_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 thePIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set - If
pipelineCache
was created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
, host access topipelineCache
must be externally synchronized
Valid Usage (Implicit)
device
must be a validDevice
handle
- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validPipelineCache
handle pCreateInfos
must be a valid pointer to an array ofcreateInfoCount
validComputePipelineCreateInfo
structures- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure pPipelines
must be a valid pointer to an array ofcreateInfoCount
Pipeline
handlescreateInfoCount
must be greater than0
- If
pipelineCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
See Also
AllocationCallbacks
,
ComputePipelineCreateInfo
, Device
,
Pipeline
, PipelineCache
withComputePipelines :: forall io r. MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
createComputePipelines
and destroyPipeline
To ensure that destroyPipeline
is always called: pass
bracket
(or the allocate function from your
favourite resource management library) as the first argument.
To just extract the pair pass (,)
as the first argument.
:: forall io. MonadIO io | |
=> Device |
|
-> Pipeline |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io () |
vkDestroyPipeline - Destroy a pipeline object
Valid Usage
- All submitted commands that refer to
pipeline
must have completed execution
- If
AllocationCallbacks
were provided whenpipeline
was created, a compatible set of callbacks must be provided here - If no
AllocationCallbacks
were provided whenpipeline
was created,pAllocator
must beNULL
Valid Usage (Implicit)
device
must be a validDevice
handle
- If
pipeline
is notNULL_HANDLE
,pipeline
must be a validPipeline
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
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
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
.
If a render pass transform is enabled, the values (px,py) and (ox, oy) defining the viewport are transformed as described in render pass transform before participating in the viewport transform.
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 toPhysicalDeviceLimits
::maxViewportDimensions
[0]- The absolute value of
height
must be less than or equal toPhysicalDeviceLimits
::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
VK_EXT_depth_range_unrestricted
extension is enabledminDepth
must be between0.0
and1.0
, inclusive - Unless
VK_EXT_depth_range_unrestricted
extension is enabledmaxDepth
must be between0.0
and1.0
, inclusive
See Also
PipelineViewportStateCreateInfo
,
cmdSetViewport
,
cmdSetViewportWithCountEXT
Viewport | |
|
Instances
data SpecializationMapEntry 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 ofBool32
See Also
Instances
data SpecializationInfo Source #
VkSpecializationInfo - Structure specifying specialization info
Description
pMapEntries
is a pointer to a SpecializationMapEntry
structure.
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
Valid Usage (Implicit)
- If
mapEntryCount
is not0
,pMapEntries
must be a valid pointer to an array ofmapEntryCount
validSpecializationMapEntry
structures
- If
dataSize
is not0
,pData
must be a valid pointer to an array ofdataSize
bytes
See Also
SpecializationInfo | |
|
Instances
data PipelineShaderStageCreateInfo (es :: [Type]) 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 beSHADER_STAGE_GEOMETRY_BIT
- If the
tessellation shaders
feature is not enabled,
stage
must not beSHADER_STAGE_TESSELLATION_CONTROL_BIT
orSHADER_STAGE_TESSELLATION_EVALUATION_BIT
- If the
mesh shader
feature is not enabled,
stage
must not beSHADER_STAGE_MESH_BIT_NV
- If the
task shader
feature is not enabled,
stage
must not beSHADER_STAGE_TASK_BIT_NV
stage
must not beSHADER_STAGE_ALL_GRAPHICS
, orSHADER_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 thanPhysicalDeviceLimits
::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 thanPhysicalDeviceLimits
::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 thanPhysicalDeviceLimits
::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 thanPhysicalDeviceLimits
::maxSampleMaskWords
- If
stage
isSHADER_STAGE_VERTEX_BIT
, the identified entry point must not include any input variable in its interface that is decorated withCullDistance
- If
stage
isSHADER_STAGE_TESSELLATION_CONTROL_BIT
orSHADER_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 toPhysicalDeviceLimits
::maxTessellationPatchSize
- If
stage
isSHADER_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 toPhysicalDeviceLimits
::maxGeometryOutputVertices
- If
stage
isSHADER_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 toPhysicalDeviceLimits
::maxGeometryShaderInvocations
- If
stage
is a vertex processing stage, 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
is a vertex processing stage, 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
isSHADER_STAGE_FRAGMENT_BIT
, the identified entry point must not include any output variables in its interface decorated withCullDistance
- If
stage
isSHADER_STAGE_FRAGMENT_BIT
, and the identified entry point writes toFragDepth
in any execution path, it must write toFragDepth
in all execution paths - If
stage
isSHADER_STAGE_FRAGMENT_BIT
, and the identified entry point writes toFragStencilRefEXT
in any execution path, it must write toFragStencilRefEXT
in all execution paths - If
stage
isSHADER_STAGE_MESH_BIT_NV
, the identified entry point must have anOpExecutionMode
instruction that specifies a maximum output vertex count,OutputVertices
, that is greater than0
and less than or equal toPhysicalDeviceMeshShaderPropertiesNV
::maxMeshOutputVertices
- If
stage
isSHADER_STAGE_MESH_BIT_NV
, the identified entry point must have anOpExecutionMode
instruction that specifies a maximum output primitive count,OutputPrimitivesNV
, that is greater than0
and less than or equal toPhysicalDeviceMeshShaderPropertiesNV
::maxMeshOutputPrimitives
- If
flags
has thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
flag set, the subgroupSizeControl feature must be enabled - If
flags
has thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
flag set, the computeFullSubgroups feature must be enabled - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
structure is included in thepNext
chain,flags
must not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
flag set - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
structure is included in thepNext
chain, the subgroupSizeControl feature must be enabled, andstage
must be a valid bit specified in requiredSubgroupSizeStages - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
structure is included in thepNext
chain andstage
isSHADER_STAGE_COMPUTE_BIT
, the local workgroup size of the shader must be less than or equal to the product ofPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
::requiredSubgroupSize
and maxComputeWorkgroupSubgroups - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
structure is included in thepNext
chain, andflags
has thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
flag set, the local workgroup size in the X dimension of the pipeline must be a multiple ofPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
::requiredSubgroupSize
- If
flags
has both thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
andPIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize - If
flags
has thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
flag set andflags
does not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
flag set and noPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
structure is included in thepNext
chain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be a valid combination ofPipelineShaderStageCreateFlagBits
valuesstage
must be a validShaderStageFlagBits
valuemodule
must be a validShaderModule
handlepName
must be a null-terminated UTF-8 string- If
pSpecializationInfo
is notNULL
,pSpecializationInfo
must be a valid pointer to a validSpecializationInfo
structure
See Also
ComputePipelineCreateInfo
, GraphicsPipelineCreateInfo
,
GraphicsShaderGroupCreateInfoNV
,
PipelineShaderStageCreateFlags
,
RayTracingPipelineCreateInfoKHR
,
RayTracingPipelineCreateInfoNV
,
ShaderModule
,
ShaderStageFlagBits
,
SpecializationInfo
, StructureType
PipelineShaderStageCreateInfo | |
|
Instances
data ComputePipelineCreateInfo (es :: [Type]) 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.
Valid Usage
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is -1,basePipelineHandle
must be a valid handle to a computePipeline
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isNULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is not -1,basePipelineHandle
must beNULL_HANDLE
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
is notNULL_HANDLE
,basePipelineIndex
must be -1 - The
stage
member ofstage
must beSHADER_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 toPhysicalDeviceLimits
::maxPerStageResources
flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
flags
must not includePIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
- If the
pipelineCreationCacheControl
feature is not enabled,
flags
must not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
orPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofPipelineCompilerControlCreateInfoAMD
orPipelineCreationFeedbackCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be a valid combination ofPipelineCreateFlagBits
valuesstage
must be a validPipelineShaderStageCreateInfo
structurelayout
must be a validPipelineLayout
handle- Both of
basePipelineHandle
, andlayout
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
Pipeline
,
PipelineCreateFlags
,
PipelineLayout
, PipelineShaderStageCreateInfo
,
StructureType
,
createComputePipelines
ComputePipelineCreateInfo | |
|
Instances
data VertexInputBindingDescription Source #
VkVertexInputBindingDescription - Structure specifying vertex input binding description
Valid Usage (Implicit)
See Also
VertexInputBindingDescription | |
|
Instances
data VertexInputAttributeDescription Source #
VkVertexInputAttributeDescription - Structure specifying vertex input attribute description
Valid Usage (Implicit)
See Also
VertexInputAttributeDescription | |
|
Instances
data PipelineVertexInputStateCreateInfo (es :: [Type]) Source #
VkPipelineVertexInputStateCreateInfo - Structure specifying parameters of a newly created pipeline vertex input state
Valid Usage
vertexBindingDescriptionCount
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputBindings
vertexAttributeDescriptionCount
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputAttributes
- For every
binding
specified by each element ofpVertexAttributeDescriptions
, aVertexInputBindingDescription
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 beSTRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofPipelineVertexInputDivisorStateCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be0
- If
vertexBindingDescriptionCount
is not0
,pVertexBindingDescriptions
must be a valid pointer to an array ofvertexBindingDescriptionCount
validVertexInputBindingDescription
structures - If
vertexAttributeDescriptionCount
is not0
,pVertexAttributeDescriptions
must be a valid pointer to an array ofvertexAttributeDescriptionCount
validVertexInputAttributeDescription
structures
See Also
GraphicsPipelineCreateInfo
,
GraphicsShaderGroupCreateInfoNV
,
PipelineVertexInputStateCreateFlags
,
StructureType
,
VertexInputAttributeDescription
, VertexInputBindingDescription
PipelineVertexInputStateCreateInfo | |
|
Instances
data PipelineInputAssemblyStateCreateInfo 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
isPRIMITIVE_TOPOLOGY_POINT_LIST
,PRIMITIVE_TOPOLOGY_LINE_LIST
,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
,PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
orPRIMITIVE_TOPOLOGY_PATCH_LIST
,primitiveRestartEnable
must beFALSE
- If the
geometry shaders
feature is not enabled,
topology
must not be any ofPRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
,PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
orPRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
- If the
tessellation shaders
feature is not enabled,
topology
must not bePRIMITIVE_TOPOLOGY_PATCH_LIST
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
pNext
must beNULL
flags
must be0
topology
must be a validPrimitiveTopology
value
See Also
Bool32
, GraphicsPipelineCreateInfo
,
PipelineInputAssemblyStateCreateFlags
,
PrimitiveTopology
,
StructureType
PipelineInputAssemblyStateCreateInfo | |
|
Instances
data PipelineTessellationStateCreateInfo (es :: [Type]) 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 toPhysicalDeviceLimits
::maxTessellationPatchSize
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofPipelineTessellationDomainOriginStateCreateInfo
- The
sType
value of each struct in thepNext
chain must be unique flags
must be0
See Also
GraphicsPipelineCreateInfo
,
GraphicsShaderGroupCreateInfoNV
,
PipelineTessellationStateCreateFlags
,
StructureType
PipelineTessellationStateCreateInfo | |
|
Instances
data PipelineViewportStateCreateInfo (es :: [Type]) Source #
VkPipelineViewportStateCreateInfo - Structure specifying parameters of a newly created pipeline viewport state
Valid Usage
- If the
multiple viewports
feature is not enabled,
viewportCount
must not be greater than1
- If the
multiple viewports
feature is not enabled,
scissorCount
must not be greater than1
viewportCount
must be less than or equal toPhysicalDeviceLimits
::maxViewports
scissorCount
must be less than or equal toPhysicalDeviceLimits
::maxViewports
- The
x
andy
members ofoffset
member of any element ofpScissors
must be greater than or equal to0
- Evaluation of (
offset.x
+extent.width
) must not cause a signed integer addition overflow for any element ofpScissors
- Evaluation of (
offset.y
+extent.height
) must not cause a signed integer addition overflow for any element ofpScissors
- If the graphics pipeline is being created without
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
andDYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
set thenscissorCount
andviewportCount
must be identical - If the graphics pipeline is being created with
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
set thenviewportCount
must be0
, otherwise it must be greater than0
- If the graphics pipeline is being created with
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
set thenscissorCount
must be0
, otherwise it must be greater than0
- If the
viewportWScalingEnable
member of aPipelineViewportWScalingStateCreateInfoNV
structure included in thepNext
chain isTRUE
, theviewportCount
member of thePipelineViewportWScalingStateCreateInfoNV
structure must be greater than or equal toPipelineViewportStateCreateInfo
::viewportCount
Valid Usage (Implicit)
sType
must beSTRUCTURE_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 ofPipelineViewportCoarseSampleOrderStateCreateInfoNV
,PipelineViewportExclusiveScissorStateCreateInfoNV
,PipelineViewportShadingRateImageStateCreateInfoNV
,PipelineViewportSwizzleStateCreateInfoNV
, orPipelineViewportWScalingStateCreateInfoNV
- The
sType
value of each struct in thepNext
chain must be unique flags
must be0
See Also
GraphicsPipelineCreateInfo
,
PipelineViewportStateCreateFlags
,
Rect2D
,
StructureType
, Viewport
PipelineViewportStateCreateInfo | |
|
Instances
data PipelineRasterizationStateCreateInfo (es :: [Type]) Source #
VkPipelineRasterizationStateCreateInfo - Structure specifying parameters of a newly created pipeline rasterization state
Description
The application can also add a
PipelineRasterizationStateRasterizationOrderAMD
structure to the pNext
chain of a
PipelineRasterizationStateCreateInfo
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 beFALSE
- If the
non-solid fill modes
feature is not enabled,
polygonMode
must bePOLYGON_MODE_FILL
orPOLYGON_MODE_FILL_RECTANGLE_NV
- If the
VK_NV_fill_rectangle
extension is not enabled,polygonMode
must not bePOLYGON_MODE_FILL_RECTANGLE_NV
Valid Usage (Implicit)
sType
must beSTRUCTURE_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 ofPipelineRasterizationConservativeStateCreateInfoEXT
,PipelineRasterizationDepthClipStateCreateInfoEXT
,PipelineRasterizationLineStateCreateInfoEXT
,PipelineRasterizationStateRasterizationOrderAMD
, orPipelineRasterizationStateStreamCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be0
polygonMode
must be a validPolygonMode
valuecullMode
must be a valid combination ofCullModeFlagBits
valuesfrontFace
must be a validFrontFace
value
See Also
Bool32
,
CullModeFlags
,
FrontFace
, GraphicsPipelineCreateInfo
,
PipelineRasterizationStateCreateFlags
,
PolygonMode
,
StructureType
PipelineRasterizationStateCreateInfo | |
|
Instances
data PipelineMultisampleStateCreateInfo (es :: [Type]) Source #
VkPipelineMultisampleStateCreateInfo - Structure specifying parameters of a newly created pipeline multisample state
Description
Each bit in the sample mask is associated with a unique
sample index
as defined for the
coverage mask.
Each bit b for mask word w in the sample mask corresponds to sample
index i, where i = 32 × w + b. pSampleMask
has a length equal to ⌈
rasterizationSamples
/ 32 ⌉ words.
If pSampleMask
is NULL
, it is treated as if the mask has all bits
set to 1
.
Valid Usage
- If the
sample rate shading
feature is not enabled,
sampleShadingEnable
must beFALSE
- If the
alpha to one
feature is not enabled,
alphaToOneEnable
must beFALSE
minSampleShading
must be in the range [0,1]- If the
VK_NV_framebuffer_mixed_samples
extension is enabled, and if the subpass has any color attachments andrasterizationSamples
is greater than the number of color samples, thensampleShadingEnable
must beFALSE
Valid Usage (Implicit)
sType
must beSTRUCTURE_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 ofPipelineCoverageModulationStateCreateInfoNV
,PipelineCoverageReductionStateCreateInfoNV
,PipelineCoverageToColorStateCreateInfoNV
, orPipelineSampleLocationsStateCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be0
rasterizationSamples
must be a validSampleCountFlagBits
value- If
pSampleMask
is notNULL
,pSampleMask
must be a valid pointer to an array of \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)SampleMask
values
See Also
Bool32
, GraphicsPipelineCreateInfo
,
PipelineMultisampleStateCreateFlags
,
SampleCountFlagBits
,
SampleMask
,
StructureType
PipelineMultisampleStateCreateInfo | |
|
Instances
data PipelineColorBlendAttachmentState Source #
VkPipelineColorBlendAttachmentState - Structure specifying a pipeline color blend attachment state
Valid Usage
- If the
dual source blending
feature is not enabled,
srcColorBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
- If the
dual source blending
feature is not enabled,
dstColorBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
- If the
dual source blending
feature is not enabled,
srcAlphaBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
- If the
dual source blending
feature is not enabled,
dstAlphaBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
- If either of
colorBlendOp
oralphaBlendOp
is an advanced blend operation, thencolorBlendOp
must equalalphaBlendOp
- If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendIndependentBlend
isFALSE
andcolorBlendOp
is an advanced blend operation, thencolorBlendOp
must be the same for all attachments - If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendIndependentBlend
isFALSE
andalphaBlendOp
is an advanced blend operation, thenalphaBlendOp
must be the same for all attachments - If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendAllOperations
isFALSE
, thencolorBlendOp
must not beBLEND_OP_ZERO_EXT
,BLEND_OP_SRC_EXT
,BLEND_OP_DST_EXT
,BLEND_OP_SRC_OVER_EXT
,BLEND_OP_DST_OVER_EXT
,BLEND_OP_SRC_IN_EXT
,BLEND_OP_DST_IN_EXT
,BLEND_OP_SRC_OUT_EXT
,BLEND_OP_DST_OUT_EXT
,BLEND_OP_SRC_ATOP_EXT
,BLEND_OP_DST_ATOP_EXT
,BLEND_OP_XOR_EXT
,BLEND_OP_INVERT_EXT
,BLEND_OP_INVERT_RGB_EXT
,BLEND_OP_LINEARDODGE_EXT
,BLEND_OP_LINEARBURN_EXT
,BLEND_OP_VIVIDLIGHT_EXT
,BLEND_OP_LINEARLIGHT_EXT
,BLEND_OP_PINLIGHT_EXT
,BLEND_OP_HARDMIX_EXT
,BLEND_OP_PLUS_EXT
,BLEND_OP_PLUS_CLAMPED_EXT
,BLEND_OP_PLUS_CLAMPED_ALPHA_EXT
,BLEND_OP_PLUS_DARKER_EXT
,BLEND_OP_MINUS_EXT
,BLEND_OP_MINUS_CLAMPED_EXT
,BLEND_OP_CONTRAST_EXT
,BLEND_OP_INVERT_OVG_EXT
,BLEND_OP_RED_EXT
,BLEND_OP_GREEN_EXT
, orBLEND_OP_BLUE_EXT
- If
colorBlendOp
oralphaBlendOp
is an advanced blend operation, thenSubpassDescription
::colorAttachmentCount
of the subpass this pipeline is compiled against must be less than or equal toPhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendMaxColorAttachments
Valid Usage (Implicit)
srcColorBlendFactor
must be a validBlendFactor
value
dstColorBlendFactor
must be a validBlendFactor
valuecolorBlendOp
must be a validBlendOp
valuesrcAlphaBlendFactor
must be a validBlendFactor
valuedstAlphaBlendFactor
must be a validBlendFactor
valuealphaBlendOp
must be a validBlendOp
valuecolorWriteMask
must be a valid combination ofColorComponentFlagBits
values
See Also
BlendFactor
,
BlendOp
,
Bool32
,
ColorComponentFlags
,
PipelineColorBlendStateCreateInfo
PipelineColorBlendAttachmentState | |
|
Instances
data PipelineColorBlendStateCreateInfo (es :: [Type]) Source #
VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of a newly created pipeline color blend state
Description
Each element of the pAttachments
array is a
PipelineColorBlendAttachmentState
structure specifying per-target
blending state for each individual color attachment. If the
independent blending
feature is not enabled on the device, all
PipelineColorBlendAttachmentState
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 beFALSE
- If
logicOpEnable
isTRUE
,logicOp
must be a validLogicOp
value
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
pNext
must beNULL
or a pointer to a valid instance ofPipelineColorBlendAdvancedStateCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique flags
must be0
- If
attachmentCount
is not0
,pAttachments
must be a valid pointer to an array ofattachmentCount
validPipelineColorBlendAttachmentState
structures
See Also
Bool32
, GraphicsPipelineCreateInfo
,
LogicOp
,
PipelineColorBlendAttachmentState
,
PipelineColorBlendStateCreateFlags
,
StructureType
PipelineColorBlendStateCreateInfo | |
|
Instances
data PipelineDynamicStateCreateInfo 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 beSTRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
pNext
must beNULL
flags
must be0
- If
dynamicStateCount
is not0
,pDynamicStates
must be a valid pointer to an array ofdynamicStateCount
validDynamicState
values
See Also
DynamicState
,
GraphicsPipelineCreateInfo
,
PipelineDynamicStateCreateFlags
,
StructureType
PipelineDynamicStateCreateInfo | |
|
Instances
data StencilOpState Source #
VkStencilOpState - Structure specifying stencil operation state
Valid Usage (Implicit)
See Also
StencilOpState | |
|
Instances
data PipelineDepthStencilStateCreateInfo 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 beFALSE
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
pNext
must beNULL
flags
must be0
depthCompareOp
must be a validCompareOp
valuefront
must be a validStencilOpState
structureback
must be a validStencilOpState
structure
See Also
Bool32
,
CompareOp
, GraphicsPipelineCreateInfo
,
PipelineDepthStencilStateCreateFlags
,
StencilOpState
, StructureType
PipelineDepthStencilStateCreateInfo | |
|
Instances
data GraphicsPipelineCreateInfo (es :: [Type]) 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.
If any shader stage fails to compile, the compile log will be reported
back to the application, and
ERROR_INVALID_SHADER_NV
will be generated.
Valid Usage
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is -1,basePipelineHandle
must be a valid handle to a graphicsPipeline
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isNULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is not -1,basePipelineHandle
must beNULL_HANDLE
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
is notNULL_HANDLE
,basePipelineIndex
must be -1 - The
stage
member of each element ofpStages
must be unique - The geometric shader stages provided in
pStages
must be either from the mesh shading pipeline (stage
isSHADER_STAGE_TASK_BIT_NV
orSHADER_STAGE_MESH_BIT_NV
) or from the primitive shading pipeline (stage
isSHADER_STAGE_VERTEX_BIT
,SHADER_STAGE_TESSELLATION_CONTROL_BIT
,SHADER_STAGE_TESSELLATION_EVALUATION_BIT
, orSHADER_STAGE_GEOMETRY_BIT
) - The
stage
member of one element ofpStages
must be eitherSHADER_STAGE_VERTEX_BIT
orSHADER_STAGE_MESH_BIT_NV
- The
stage
member of each element ofpStages
must not beSHADER_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 validPipelineTessellationStateCreateInfo
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 bePRIMITIVE_TOPOLOGY_PATCH_LIST
- If the
topology
member ofpInputAssembly
isPRIMITIVE_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 asATTACHMENT_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 ofIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
orIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
in theAttachmentReference
defined bysubpass
, thedepthWriteEnable
member ofpDepthStencilState
must beFALSE
- If rasterization is not disabled and
subpass
uses a depth/stencil attachment inrenderPass
that has a layout ofIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
orIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
in theAttachmentReference
defined bysubpass
, thefailOp
,passOp
anddepthFailOp
members of each of thefront
andback
members ofpDepthStencilState
must beSTENCIL_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 beFALSE
if the attached image’s format features does not containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
- 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
isDYNAMIC_STATE_VIEWPORT
orDYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
, thepViewports
member ofpViewportState
must be a valid pointer to an array ofpViewportState->viewportCount
validViewport
structures - If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_SCISSOR
orDYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
, thepScissors
member ofpViewportState
must be a valid pointer to an array ofpViewportState->scissorCount
Rect2D
structures - If the wide lines feature is not enabled, and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_LINE_WIDTH
, thelineWidth
member ofpRasterizationState
must be1.0
- If the
rasterizerDiscardEnable
member ofpRasterizationState
isFALSE
,pViewportState
must be a valid pointer to a validPipelineViewportStateCreateInfo
structure - If the
rasterizerDiscardEnable
member ofpRasterizationState
isFALSE
,pMultisampleState
must be a valid pointer to a validPipelineMultisampleStateCreateInfo
structure - If the
rasterizerDiscardEnable
member ofpRasterizationState
isFALSE
, andsubpass
uses a depth/stencil attachment,pDepthStencilState
must be a valid pointer to a validPipelineDepthStencilStateCreateInfo
structure - If the
rasterizerDiscardEnable
member ofpRasterizationState
isFALSE
, andsubpass
uses color attachments,pColorBlendState
must be a valid pointer to a validPipelineColorBlendStateCreateInfo
structure - If the depth bias clamping feature is not enabled, no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DEPTH_BIAS
, and thedepthBiasEnable
member ofpRasterizationState
isTRUE
, thedepthBiasClamp
member ofpRasterizationState
must be0.0
- If the
VK_EXT_depth_range_unrestricted
extension is not enabled and no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DEPTH_BOUNDS
, and thedepthBoundsTestEnable
member ofpDepthStencilState
isTRUE
, theminDepthBounds
andmaxDepthBounds
members ofpDepthStencilState
must be between0.0
and1.0
, inclusive - If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
, and thesampleLocationsEnable
member of aPipelineSampleLocationsStateCreateInfoEXT
structure included in thepNext
chain ofpMultisampleState
isTRUE
,sampleLocationsInfo.sampleLocationGridSize.width
must evenly divideMultisamplePropertiesEXT
::sampleLocationGridSize.width
as returned bygetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
, and thesampleLocationsEnable
member of aPipelineSampleLocationsStateCreateInfoEXT
structure included in thepNext
chain ofpMultisampleState
isTRUE
,sampleLocationsInfo.sampleLocationGridSize.height
must evenly divideMultisamplePropertiesEXT
::sampleLocationGridSize.height
as returned bygetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
, and thesampleLocationsEnable
member of aPipelineSampleLocationsStateCreateInfoEXT
structure included in thepNext
chain ofpMultisampleState
isTRUE
,sampleLocationsInfo.sampleLocationsPerPixel
must equalrasterizationSamples
- If the
sampleLocationsEnable
member of aPipelineSampleLocationsStateCreateInfoEXT
structure included in thepNext
chain ofpMultisampleState
isTRUE
, the fragment shader code must not statically use the extended instructionInterpolateAtSample
layout
must be consistent with all shaders specified inpStages
- If neither the
VK_AMD_mixed_attachment_samples
nor theVK_NV_framebuffer_mixed_samples
extensions are enabled, and ifsubpass
uses color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must be the same as the sample count for those subpass attachments - If the
VK_AMD_mixed_attachment_samples
extension is enabled, and ifsubpass
uses color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must equal the maximum of the sample counts of those subpass attachments - If the
VK_NV_framebuffer_mixed_samples
extension is enabled, and ifsubpass
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 the
VK_NV_framebuffer_mixed_samples
extension is enabled, and ifsubpass
has any color attachments, then therasterizationSamples
member ofpMultisampleState
must be greater than or equal to the sample count for those subpass attachments - If the
VK_NV_coverage_reduction_mode
extension is enabled, the coverage reduction mode specified byPipelineCoverageReductionStateCreateInfoNV
::coverageReductionMode
, therasterizationSamples
member ofpMultisampleState
and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned bygetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
- 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 thePIPELINE_CREATE_DISPATCH_BASE
flag- If
pStages
includes a fragment shader stage and an input attachment was referenced by anaspectMask
atrenderPass
creation time, its shader code must only read from the aspects that were specified for that input attachment - The number of resources in
layout
accessible to each shader stage that is used by the pipeline must be less than or equal toPhysicalDeviceLimits
::maxPerStageResources
- If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT_W_SCALING_NV
, and theviewportWScalingEnable
member of aPipelineViewportWScalingStateCreateInfoNV
structure, included in thepNext
chain ofpViewportState
, isTRUE
, thepViewportWScalings
member of thePipelineViewportWScalingStateCreateInfoNV
must be a pointer to an array ofPipelineViewportWScalingStateCreateInfoNV
::viewportCount
validViewportWScalingNV
structures - If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
, and ifpViewportState->pNext
chain includes aPipelineViewportExclusiveScissorStateCreateInfoNV
structure, and if itsexclusiveScissorCount
member is not0
, then itspExclusiveScissors
member must be a valid pointer to an array ofexclusiveScissorCount
Rect2D
structures - If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV
, and ifpViewportState->pNext
chain includes aPipelineViewportShadingRateImageStateCreateInfoNV
structure, then itspShadingRatePalettes
member must be a valid pointer to an array ofviewportCount
validShadingRatePaletteNV
structures - If no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DISCARD_RECTANGLE_EXT
, and ifpNext
chain includes aPipelineDiscardRectangleStateCreateInfoEXT
structure, and if itsdiscardRectangleCount
member is not0
, then itspDiscardRectangles
member must be a valid pointer to an array ofdiscardRectangleCount
Rect2D
structures - If
pStages
includes a vertex shader stage,pVertexInputState
must be a valid pointer to a validPipelineVertexInputStateCreateInfo
structure - If
pStages
includes a vertex shader stage,pInputAssemblyState
must be a valid pointer to a validPipelineInputAssemblyStateCreateInfo
structure - The
Xfb
execution mode can be specified by only one shader stage inpStages
- If any shader stage in
pStages
specifiesXfb
execution mode it must be the last vertex processing stage - If a
PipelineRasterizationStateStreamCreateInfoEXT
::rasterizationStream
value other than zero is specified, all variables in the output interface of the entry point being compiled decorated withPosition
,PointSize
,ClipDistance
, orCullDistance
must all be decorated with identicalStream
values that match therasterizationStream
- If
PipelineRasterizationStateStreamCreateInfoEXT
::rasterizationStream
is zero, or not specified, all variables in the output interface of the entry point being compiled decorated withPosition
,PointSize
,ClipDistance
, orCullDistance
must all be decorated with aStream
value of zero, or must not specify theStream
decoration - If the last vertex processing stage is a geometry shader, and that
geometry shader uses the
GeometryStreams
capability, thenPhysicalDeviceTransformFeedbackFeaturesEXT
::geometryStreams
feature must be enabled - If there are any mesh shader stages in the pipeline there must not
be any shader stage in the pipeline with a
Xfb
execution mode - If the
lineRasterizationMode
member of aPipelineRasterizationLineStateCreateInfoEXT
structure included in thepNext
chain ofpRasterizationState
isLINE_RASTERIZATION_MODE_BRESENHAM_EXT
orLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
and if rasterization is enabled, then thealphaToCoverageEnable
,alphaToOneEnable
, andsampleShadingEnable
members ofpMultisampleState
must all beFALSE
- If the
stippledLineEnable
member ofPipelineRasterizationLineStateCreateInfoEXT
isTRUE
and no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_LINE_STIPPLE_EXT
, then thelineStippleFactor
member ofPipelineRasterizationLineStateCreateInfoEXT
must be in the range [1,256] flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
- If the
extendedDynamicState
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_CULL_MODE_EXT
,DYNAMIC_STATE_FRONT_FACE_EXT
,DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT
,DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
,DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
,DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
,DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
,DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
,DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
,DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
,DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
, orDYNAMIC_STATE_STENCIL_OP_EXT
- If
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
is included in thepDynamicStates
array thenviewportCount
must be zero - If
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
is included in thepDynamicStates
array thenscissorCount
must be zero - If
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
is included in thepDynamicStates
array thenDYNAMIC_STATE_VIEWPORT
must not be present - If
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
is included in thepDynamicStates
array thenDYNAMIC_STATE_SCISSOR
must not be present - If
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then the ::deviceGeneratedCommands feature must be enabled - If
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then all stages must not specifyXfb
execution mode - If the
pipelineCreationCacheControl
feature is not enabled,
flags
must not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
orPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofGraphicsPipelineShaderGroupsCreateInfoNV
,PipelineCompilerControlCreateInfoAMD
,PipelineCreationFeedbackCreateInfoEXT
,PipelineDiscardRectangleStateCreateInfoEXT
, orPipelineRepresentativeFragmentTestStateCreateInfoNV
- The
sType
value of each struct in thepNext
chain must be unique flags
must be a valid combination ofPipelineCreateFlagBits
valuespStages
must be a valid pointer to an array ofstageCount
validPipelineShaderStageCreateInfo
structurespRasterizationState
must be a valid pointer to a validPipelineRasterizationStateCreateInfo
structure- If
pDynamicState
is notNULL
,pDynamicState
must be a valid pointer to a validPipelineDynamicStateCreateInfo
structure layout
must be a validPipelineLayout
handlerenderPass
must be a validRenderPass
handlestageCount
must be greater than0
- Each of
basePipelineHandle
,layout
, andrenderPass
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
Pipeline
, PipelineColorBlendStateCreateInfo
,
PipelineCreateFlags
,
PipelineDepthStencilStateCreateInfo
, PipelineDynamicStateCreateInfo
,
PipelineInputAssemblyStateCreateInfo
,
PipelineLayout
,
PipelineMultisampleStateCreateInfo
,
PipelineRasterizationStateCreateInfo
, PipelineShaderStageCreateInfo
,
PipelineTessellationStateCreateInfo
,
PipelineVertexInputStateCreateInfo
, PipelineViewportStateCreateInfo
,
RenderPass
,
StructureType
,
createGraphicsPipelines
GraphicsPipelineCreateInfo | |
|
Instances
VkPipeline - Opaque handle to a pipeline object
See Also
ComputePipelineCreateInfo
,
GeneratedCommandsInfoNV
,
GeneratedCommandsMemoryRequirementsInfoNV
,
GraphicsPipelineCreateInfo
,
GraphicsPipelineShaderGroupsCreateInfoNV
,
PipelineExecutableInfoKHR
,
PipelineInfoKHR
,
PipelineLibraryCreateInfoKHR
,
RayTracingPipelineCreateInfoKHR
,
RayTracingPipelineCreateInfoNV
,
cmdBindPipeline
,
cmdBindPipelineShaderGroupNV
,
compileDeferredNV
,
createComputePipelines
,
createGraphicsPipelines
,
createRayTracingPipelinesKHR
,
createRayTracingPipelinesNV
,
destroyPipeline
,
getRayTracingCaptureReplayShaderGroupHandlesKHR
,
getRayTracingShaderGroupHandlesKHR
,
getRayTracingShaderGroupHandlesNV
,
getShaderInfoAMD
Instances
Eq Pipeline Source # | |
Ord Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
Show Pipeline Source # | |
Storable Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
Zero Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
HasObjectType Pipeline Source # | |
Defined in Vulkan.Core10.Handles objectTypeAndHandle :: Pipeline -> (ObjectType, Word64) Source # | |
IsHandle Pipeline Source # | |
Defined in Vulkan.Core10.Handles |
newtype PipelineLayoutCreateFlags Source #
VkPipelineLayoutCreateFlags - Reserved for future use
Description
PipelineLayoutCreateFlags
is a bitmask type for setting a mask, but is
currently reserved for future use.
See Also
Instances
newtype PipelineDepthStencilStateCreateFlags Source #
VkPipelineDepthStencilStateCreateFlags - Reserved for future use
Description
PipelineDepthStencilStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineDynamicStateCreateFlags Source #
VkPipelineDynamicStateCreateFlags - Reserved for future use
Description
PipelineDynamicStateCreateFlags
is a bitmask type for setting a mask,
but is currently reserved for future use.
See Also
Instances
newtype PipelineColorBlendStateCreateFlags Source #
VkPipelineColorBlendStateCreateFlags - Reserved for future use
Description
PipelineColorBlendStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineMultisampleStateCreateFlags Source #
VkPipelineMultisampleStateCreateFlags - Reserved for future use
Description
PipelineMultisampleStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineRasterizationStateCreateFlags Source #
VkPipelineRasterizationStateCreateFlags - Reserved for future use
Description
PipelineRasterizationStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineViewportStateCreateFlags Source #
VkPipelineViewportStateCreateFlags - Reserved for future use
Description
PipelineViewportStateCreateFlags
is a bitmask type for setting a mask,
but is currently reserved for future use.
See Also
Instances
newtype PipelineTessellationStateCreateFlags Source #
VkPipelineTessellationStateCreateFlags - Reserved for future use
Description
PipelineTessellationStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineInputAssemblyStateCreateFlags Source #
VkPipelineInputAssemblyStateCreateFlags - Reserved for future use
Description
PipelineInputAssemblyStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineVertexInputStateCreateFlags Source #
VkPipelineVertexInputStateCreateFlags - Reserved for future use
Description
PipelineVertexInputStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PrimitiveTopology Source #
VkPrimitiveTopology - Supported primitive topologies
Description
Each primitive topology, and its construction from a list of vertices, is described in detail below with a supporting diagram, according to the following key:
Vertex | A point in 3-dimensional space. Positions chosen within the diagrams are arbitrary and for illustration only. | |
Vertex Number | Sequence position of a vertex within the provided vertex data. | |
Provoking Vertex | Provoking vertex within the main primitive. The arrow points along an edge of the relevant primitive, following winding order. Used in flat shading. | |
Primitive Edge | An edge connecting the points of a main primitive. | |
Adjacency Edge | Points connected by these lines do not contribute to a main primitive, and are only accessible in a geometry shader. | |
Winding Order | The relative order in which vertices are defined within a primitive, used in the facing determination. This ordering has no specific start or end point. |
The diagrams are supported with mathematical definitions where the vertices (v) and primitives (p) are numbered starting from 0; v0 is the first vertex in the provided data and p0 is the first primitive in the set of primitives defined by the vertices and topology.
See Also
PipelineInputAssemblyStateCreateInfo
,
cmdSetPrimitiveTopologyEXT
Instances
VkCompareOp - Stencil comparison function
See Also
PipelineDepthStencilStateCreateInfo
,
SamplerCreateInfo
,
StencilOpState
,
cmdSetDepthCompareOpEXT
,
cmdSetStencilOpEXT
pattern COMPARE_OP_NEVER :: CompareOp |
|
pattern COMPARE_OP_LESS :: CompareOp |
|
pattern COMPARE_OP_EQUAL :: CompareOp |
|
pattern COMPARE_OP_LESS_OR_EQUAL :: CompareOp |
|
pattern COMPARE_OP_GREATER :: CompareOp |
|
pattern COMPARE_OP_NOT_EQUAL :: CompareOp |
|
pattern COMPARE_OP_GREATER_OR_EQUAL :: CompareOp |
|
pattern COMPARE_OP_ALWAYS :: CompareOp |
|
Instances
Eq CompareOp Source # | |
Ord CompareOp Source # | |
Defined in Vulkan.Core10.Enums.CompareOp | |
Read CompareOp Source # | |
Show CompareOp Source # | |
Storable CompareOp Source # | |
Defined in Vulkan.Core10.Enums.CompareOp | |
Zero CompareOp Source # | |
Defined in Vulkan.Core10.Enums.CompareOp |
newtype PolygonMode Source #
VkPolygonMode - Control polygon rasterization mode
Description
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
pattern POLYGON_MODE_FILL :: PolygonMode |
|
pattern POLYGON_MODE_LINE :: PolygonMode |
|
pattern POLYGON_MODE_POINT :: PolygonMode |
|
pattern POLYGON_MODE_FILL_RECTANGLE_NV :: PolygonMode |
Polygons rendered in Area calculation and facingness are determined for
|
Instances
newtype CullModeFlagBits Source #
VkCullModeFlagBits - Bitmask controlling triangle culling
Description
Following culling, fragments are produced for any triangles which have not been discarded.
See Also
pattern CULL_MODE_NONE :: CullModeFlagBits |
|
pattern CULL_MODE_FRONT_BIT :: CullModeFlagBits |
|
pattern CULL_MODE_BACK_BIT :: CullModeFlagBits |
|
pattern CULL_MODE_FRONT_AND_BACK :: CullModeFlagBits |
|
Instances
type CullModeFlags = CullModeFlagBits Source #
VkFrontFace - Interpret polygon front-facing orientation
Description
Any triangle which is not front-facing is back-facing, including zero-area triangles.
See Also
pattern FRONT_FACE_COUNTER_CLOCKWISE :: FrontFace |
|
pattern FRONT_FACE_CLOCKWISE :: FrontFace |
|
Instances
Eq FrontFace Source # | |
Ord FrontFace Source # | |
Defined in Vulkan.Core10.Enums.FrontFace | |
Read FrontFace Source # | |
Show FrontFace Source # | |
Storable FrontFace Source # | |
Defined in Vulkan.Core10.Enums.FrontFace | |
Zero FrontFace Source # | |
Defined in Vulkan.Core10.Enums.FrontFace |
newtype BlendFactor Source #
VkBlendFactor - Framebuffer blending factors
Description
The semantics of each enum value is described in the table below:
BlendFactor
| RGB Blend Factors (Sr,Sg,Sb) or (Dr,Dg,Db) | Alpha Blend Factor (Sa or Da) |
---|---|---|
BLEND_FACTOR_ZERO | (0,0,0) | 0 |
BLEND_FACTOR_ONE | (1,1,1) | 1 |
BLEND_FACTOR_SRC_COLOR | (Rs0,Gs0,Bs0) | As0 |
BLEND_FACTOR_ONE_MINUS_SRC_COLOR | (1-Rs0,1-Gs0,1-Bs0) | 1-As0 |
BLEND_FACTOR_DST_COLOR | (Rd,Gd,Bd) | Ad |
BLEND_FACTOR_ONE_MINUS_DST_COLOR | (1-Rd,1-Gd,1-Bd) | 1-Ad |
BLEND_FACTOR_SRC_ALPHA | (As0,As0,As0) | As0 |
BLEND_FACTOR_ONE_MINUS_SRC_ALPHA | (1-As0,1-As0,1-As0) | 1-As0 |
BLEND_FACTOR_DST_ALPHA | (Ad,Ad,Ad) | Ad |
BLEND_FACTOR_ONE_MINUS_DST_ALPHA | (1-Ad,1-Ad,1-Ad) | 1-Ad |
BLEND_FACTOR_CONSTANT_COLOR | (Rc,Gc,Bc) | Ac |
BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR | (1-Rc,1-Gc,1-Bc) | 1-Ac |
BLEND_FACTOR_CONSTANT_ALPHA | (Ac,Ac,Ac) | Ac |
BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA | (1-Ac,1-Ac,1-Ac) | 1-Ac |
BLEND_FACTOR_SRC_ALPHA_SATURATE
| (f,f,f); f = min(As0,1-Ad) | 1 |
BLEND_FACTOR_SRC1_COLOR | (Rs1,Gs1,Bs1) | As1 |
BLEND_FACTOR_ONE_MINUS_SRC1_COLOR | (1-Rs1,1-Gs1,1-Bs1) | 1-As1 |
BLEND_FACTOR_SRC1_ALPHA | (As1,As1,As1) | As1 |
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
pattern BLEND_FACTOR_ZERO :: BlendFactor | |
pattern BLEND_FACTOR_ONE :: BlendFactor | |
pattern BLEND_FACTOR_SRC_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_SRC_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_DST_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_DST_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_SRC_ALPHA :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_SRC_ALPHA :: BlendFactor | |
pattern BLEND_FACTOR_DST_ALPHA :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_DST_ALPHA :: BlendFactor | |
pattern BLEND_FACTOR_CONSTANT_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_CONSTANT_ALPHA :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA :: BlendFactor | |
pattern BLEND_FACTOR_SRC_ALPHA_SATURATE :: BlendFactor | |
pattern BLEND_FACTOR_SRC1_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_SRC1_COLOR :: BlendFactor | |
pattern BLEND_FACTOR_SRC1_ALPHA :: BlendFactor | |
pattern BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: BlendFactor |
Instances
VkBlendOp - Framebuffer blending operations
Description
The semantics of each basic blend operations is described in the table below:
BlendOp | RGB Components | Alpha Component |
---|---|---|
BLEND_OP_ADD
| R = Rs0 × Sr + Rd × Dr G = Gs0 × Sg + Gd × Dg B = Bs0 × Sb + Bd × Db | A = As0 × Sa + Ad × Da |
BLEND_OP_SUBTRACT
| R = Rs0 × Sr - Rd × Dr G = Gs0 × Sg - Gd × Dg B = Bs0 × Sb - Bd × Db | A = As0 × Sa - Ad × Da |
BLEND_OP_REVERSE_SUBTRACT
| R = Rd × Dr - Rs0 × Sr G = Gd × Dg - Gs0 × Sg B = Bd × Db - Bs0 × Sb | A = Ad × Da - As0 × Sa |
BLEND_OP_MIN
| R = min(Rs0,Rd) G = min(Gs0,Gd) B = min(Bs0,Bd) | A = min(As0,Ad) |
BLEND_OP_MAX
| R = max(Rs0,Rd) G = max(Gs0,Gd) B = max(Bs0,Bd) | A = max(As0,Ad) |
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 BlendOp Source # | |
Ord BlendOp Source # | |
Defined in Vulkan.Core10.Enums.BlendOp | |
Read BlendOp Source # | |
Show BlendOp Source # | |
Storable BlendOp Source # | |
Zero BlendOp Source # | |
Defined in Vulkan.Core10.Enums.BlendOp |
VkStencilOp - Stencil comparison function
Description
For purposes of increment and decrement, the stencil bits are considered as an unsigned integer.
See Also
pattern STENCIL_OP_KEEP :: StencilOp |
|
pattern STENCIL_OP_ZERO :: StencilOp |
|
pattern STENCIL_OP_REPLACE :: StencilOp |
|
pattern STENCIL_OP_INCREMENT_AND_CLAMP :: StencilOp |
|
pattern STENCIL_OP_DECREMENT_AND_CLAMP :: StencilOp |
|
pattern STENCIL_OP_INVERT :: StencilOp |
|
pattern STENCIL_OP_INCREMENT_AND_WRAP :: StencilOp |
|
pattern STENCIL_OP_DECREMENT_AND_WRAP :: StencilOp |
|
Instances
Eq StencilOp Source # | |
Ord StencilOp Source # | |
Defined in Vulkan.Core10.Enums.StencilOp | |
Read StencilOp Source # | |
Show StencilOp Source # | |
Storable StencilOp Source # | |
Defined in Vulkan.Core10.Enums.StencilOp | |
Zero StencilOp Source # | |
Defined in Vulkan.Core10.Enums.StencilOp |
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 |
---|---|
LOGIC_OP_CLEAR | 0 |
LOGIC_OP_AND | s ∧ d |
LOGIC_OP_AND_REVERSE | s ∧ ¬ d |
LOGIC_OP_COPY | s |
LOGIC_OP_AND_INVERTED | ¬ s ∧ d |
LOGIC_OP_NO_OP | d |
LOGIC_OP_XOR | s ⊕ d |
LOGIC_OP_OR | s ∨ d |
LOGIC_OP_NOR | ¬ (s ∨ d) |
LOGIC_OP_EQUIVALENT | ¬ (s ⊕ d) |
LOGIC_OP_INVERT | ¬ d |
LOGIC_OP_OR_REVERSE | s ∨ ¬ d |
LOGIC_OP_COPY_INVERTED | ¬ s |
LOGIC_OP_OR_INVERTED | ¬ s ∨ d |
LOGIC_OP_NAND | ¬ (s ∧ d) |
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 LOGIC_OP_CLEAR :: LogicOp | |
pattern LOGIC_OP_AND :: LogicOp | |
pattern LOGIC_OP_AND_REVERSE :: LogicOp | |
pattern LOGIC_OP_COPY :: LogicOp | |
pattern LOGIC_OP_AND_INVERTED :: LogicOp | |
pattern LOGIC_OP_NO_OP :: LogicOp | |
pattern LOGIC_OP_XOR :: LogicOp | |
pattern LOGIC_OP_OR :: LogicOp | |
pattern LOGIC_OP_NOR :: LogicOp | |
pattern LOGIC_OP_EQUIVALENT :: LogicOp | |
pattern LOGIC_OP_INVERT :: LogicOp | |
pattern LOGIC_OP_OR_REVERSE :: LogicOp | |
pattern LOGIC_OP_COPY_INVERTED :: LogicOp | |
pattern LOGIC_OP_OR_INVERTED :: LogicOp | |
pattern LOGIC_OP_NAND :: LogicOp | |
pattern LOGIC_OP_SET :: LogicOp |
Instances
Eq LogicOp Source # | |
Ord LogicOp Source # | |
Defined in Vulkan.Core10.Enums.LogicOp | |
Read LogicOp Source # | |
Show LogicOp Source # | |
Storable LogicOp Source # | |
Zero LogicOp Source # | |
Defined in Vulkan.Core10.Enums.LogicOp |
newtype VertexInputRate Source #
VkVertexInputRate - Specify rate at which vertex attributes are pulled from buffers
See Also
pattern VERTEX_INPUT_RATE_VERTEX :: VertexInputRate |
|
pattern VERTEX_INPUT_RATE_INSTANCE :: VertexInputRate |
|
Instances
newtype DynamicState Source #
VkDynamicState - Indicate which dynamic state is taken from dynamic state commands
See Also
pattern DYNAMIC_STATE_VIEWPORT :: DynamicState |
|
pattern DYNAMIC_STATE_SCISSOR :: DynamicState |
|
pattern DYNAMIC_STATE_LINE_WIDTH :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_BIAS :: DynamicState |
|
pattern DYNAMIC_STATE_BLEND_CONSTANTS :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_BOUNDS :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_COMPARE_MASK :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_WRITE_MASK :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_REFERENCE :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_OP_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_FRONT_FACE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_CULL_MODE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_LINE_STIPPLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DISCARD_RECTANGLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: DynamicState |
|
Instances
newtype ShaderStageFlagBits Source #
VkShaderStageFlagBits - Bitmask specifying a pipeline stage
Description
Note
SHADER_STAGE_ALL_GRAPHICS
only includes the original five graphics
stages included in Vulkan 1.0, and not any stages added by extensions.
Thus, it may not have the desired effect in all cases.
See Also
PipelineShaderStageCreateInfo
,
ShaderStageFlags
,
getShaderInfoAMD
Instances
newtype PipelineCreateFlagBits Source #
VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created
Description
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.
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 pipeline creation call.PIPELINE_CREATE_DERIVATIVE_BIT
specifies that the pipeline to be created will be a child of a previously created parent pipeline.PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT
specifies that any shader input variables decorated asViewIndex
will be assigned values as if they were decorated asDeviceIndex
.PIPELINE_CREATE_DISPATCH_BASE
specifies that a compute pipeline can be used withcmdDispatchBase
with a non-zero base workgroup.PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
specifies that a pipeline is created with all shaders in the deferred state. Before using the pipeline the application must callcompileDeferredNV
exactly once on each shader in the pipeline before using the pipeline.PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
specifies that the shader compiler should capture statistics for the executables produced by the compile process which can later be retrieved by callinggetPipelineExecutableStatisticsKHR
. Enabling this flag must not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
specifies that the shader compiler should capture the internal representations of executables produced by the compile process which can later be retrieved by callinggetPipelineExecutableInternalRepresentationsKHR
. Enabling this flag must not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time.PIPELINE_CREATE_LIBRARY_BIT_KHR
specifies that the pipeline cannot be used directly, and instead defines a pipeline library that can be combined with other pipelines using thePipelineLibraryCreateInfoKHR
structure. This is available in raytracing pipelines.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
specifies that an any hit shader will always be present when an any hit shader would be executed.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
specifies that a closest hit shader will always be present when a closest hit shader would be executed.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
specifies that a miss shader will always be present when a miss shader would be executed.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
specifies that an intersection shader will always be present when an intersection shader would be executed.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
specifies that triangle primitives will be skipped during traversal usingOpTraceKHR
.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
specifies that AABB primitives will be skipped during traversal usingOpTraceKHR
.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
specifies that the pipeline can be used in combination with https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#device-generated-commands.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
specifies that pipeline creation will fail if a compile is required for creation of a validPipeline
object;PIPELINE_COMPILE_REQUIRED_EXT
will be returned by pipeline creation, and thePipeline
will be set toNULL_HANDLE
.- When creating multiple pipelines,
PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
specifies that control will be returned to the application on failure of the corresponding pipeline rather than continuing to create additional pipelines.
It is valid to set both PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
and
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 PipelineShaderStageCreateFlagBits Source #
VkPipelineShaderStageCreateFlagBits - Bitmask controlling how a pipeline shader stage is created
Description
Note
If PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
and PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
are
specified and
minSubgroupSize
does not equal
maxSubgroupSize
and no
required subgroup size
is specified, then the only way to guarantee that the 'X' dimension of
the local workgroup size is a multiple of
SubgroupSize
is to make it a multiple of maxSubgroupSize
. Under these conditions,
you are guaranteed full subgroups but not any particular subgroup size.
See Also
pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT :: PipelineShaderStageCreateFlagBits |
|
pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT :: PipelineShaderStageCreateFlagBits |
|
Instances
newtype ColorComponentFlagBits Source #
VkColorComponentFlagBits - Bitmask controlling which components are written to the framebuffer
Description
The color write mask operation is applied regardless of whether blending is enabled.
See Also
pattern COLOR_COMPONENT_R_BIT :: ColorComponentFlagBits |
|
pattern COLOR_COMPONENT_G_BIT :: ColorComponentFlagBits |
|
pattern COLOR_COMPONENT_B_BIT :: ColorComponentFlagBits |
|
pattern COLOR_COMPONENT_A_BIT :: ColorComponentFlagBits |
|
Instances
type SampleMask = Word32 Source #