| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.Pipeline
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 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_FRAGMENT_SHADING_RATE_KHR :: 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_RAY_TRACING_PIPELINE_STACK_SIZE_KHR :: DynamicState
- pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT :: DynamicState
- pattern DYNAMIC_STATE_DISCARD_RECTANGLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: DynamicState
- 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 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_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR :: 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 #
Arguments
| :: 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
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat corresponds to that element
- If the
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BITflag set - If
pipelineCachewas created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access topipelineCachemust 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)
-
devicemust be a validDevicehandle
- If
pipelineCacheis notNULL_HANDLE,pipelineCachemust be a validPipelineCachehandle -
pCreateInfosmust be a valid pointer to an array ofcreateInfoCountvalidGraphicsPipelineCreateInfostructures - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pPipelinesmust be a valid pointer to an array ofcreateInfoCountPipelinehandles -
createInfoCountmust be greater than0 - If
pipelineCacheis 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 last argument.
To just extract the pair pass (,) as the last argument.
createComputePipelines Source #
Arguments
| :: 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
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat corresponds to that element
- If the
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BITflag set - If
pipelineCachewas created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access topipelineCachemust be externally synchronized
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
- If
pipelineCacheis notNULL_HANDLE,pipelineCachemust be a validPipelineCachehandle -
pCreateInfosmust be a valid pointer to an array ofcreateInfoCountvalidComputePipelineCreateInfostructures - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pPipelinesmust be a valid pointer to an array ofcreateInfoCountPipelinehandles -
createInfoCountmust be greater than0 - If
pipelineCacheis 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 last argument.
To just extract the pair pass (,) as the last argument.
Arguments
| :: forall io. MonadIO io | |
| => Device |
|
| -> Pipeline |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io () |
vkDestroyPipeline - Destroy a pipeline object
Valid Usage
- If
AllocationCallbackswere provided whenpipelinewas created, a compatible set of callbacks must be provided here - If no
AllocationCallbackswere provided whenpipelinewas created,pAllocatormust beNULL
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
- If
pipelineis notNULL_HANDLE,pipelinemust be a validPipelinehandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure - If
pipelineis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
pipelinemust be externally synchronized
See Also
VkViewport - Structure specifying a viewport
Description
The framebuffer depth coordinate zf may be represented using either
a fixed-point or floating-point representation. However, a
floating-point representation must be used if the depth/stencil
attachment has a floating-point depth component. If an m-bit fixed-point
representation is used, we assume that it represents each value
\(\frac{k}{2^m - 1}\), where k ∈ { 0, 1, …, 2m-1 }, as k (e.g. 1.0 is
represented in binary as a string of all ones).
The viewport parameters shown in the above equations are found from these values as
- ox =
x+width/ 2 - oy =
y+height/ 2 - oz =
minDepth - px =
width - py =
height - pz =
maxDepth-minDepth.
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
-
widthmust be less than or equal toPhysicalDeviceLimits::maxViewportDimensions[0] - The absolute value of
heightmust be less than or equal toPhysicalDeviceLimits::maxViewportDimensions[1] -
xmust be greater than or equal toviewportBoundsRange[0] - (
x+width) must be less than or equal toviewportBoundsRange[1] -
ymust be greater than or equal toviewportBoundsRange[0] -
ymust be less than or equal toviewportBoundsRange[1] - (
y+height) must be greater than or equal toviewportBoundsRange[0] - (
y+height) must be less than or equal toviewportBoundsRange[1] - Unless
VK_EXT_depth_range_unrestrictedextension is enabledminDepthmust be between0.0and1.0, inclusive - Unless
VK_EXT_depth_range_unrestrictedextension is enabledmaxDepthmust be between0.0and1.0, inclusive
See Also
PipelineViewportStateCreateInfo,
cmdSetViewport,
cmdSetViewportWithCountEXT
Constructors
| Viewport | |
Fields
| |
Instances
| Eq Viewport Source # | |
| Show Viewport Source # | |
| Storable Viewport Source # | |
Defined in Vulkan.Core10.Pipeline | |
| FromCStruct Viewport Source # | |
Defined in Vulkan.Core10.Pipeline | |
| ToCStruct Viewport Source # | |
Defined in Vulkan.Core10.Pipeline | |
| Zero Viewport Source # | |
Defined in Vulkan.Core10.Pipeline | |
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
constantIDspecialization constant declared in a shader,sizemust match the byte size of theconstantID. If the specialization constant is of typeboolean,sizemust be the byte size ofBool32
See Also
Constructors
| SpecializationMapEntry | |
Fields | |
Instances
data SpecializationInfo Source #
VkSpecializationInfo - Structure specifying specialization info
Description
pMapEntries is a pointer to a SpecializationMapEntry structure.
Valid Usage
Valid Usage (Implicit)
- If
mapEntryCountis not0,pMapEntriesmust be a valid pointer to an array ofmapEntryCountvalidSpecializationMapEntrystructures
See Also
Constructors
| SpecializationInfo | |
Fields
| |
Instances
| Show SpecializationInfo Source # | |
Defined in Vulkan.Core10.Pipeline Methods showsPrec :: Int -> SpecializationInfo -> ShowS # show :: SpecializationInfo -> String # showList :: [SpecializationInfo] -> ShowS # | |
| FromCStruct SpecializationInfo Source # | |
Defined in Vulkan.Core10.Pipeline Methods peekCStruct :: Ptr SpecializationInfo -> IO SpecializationInfo Source # | |
| ToCStruct SpecializationInfo Source # | |
Defined in Vulkan.Core10.Pipeline Methods withCStruct :: SpecializationInfo -> (Ptr SpecializationInfo -> IO b) -> IO b Source # pokeCStruct :: Ptr SpecializationInfo -> SpecializationInfo -> IO b -> IO b Source # withZeroCStruct :: (Ptr SpecializationInfo -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr SpecializationInfo -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero SpecializationInfo Source # | |
Defined in Vulkan.Core10.Pipeline Methods | |
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,
stagemust not beSHADER_STAGE_GEOMETRY_BIT
- If the
tessellation shaders
feature is not enabled,
stagemust not beSHADER_STAGE_TESSELLATION_CONTROL_BITorSHADER_STAGE_TESSELLATION_EVALUATION_BIT - If the
mesh shader
feature is not enabled,
stagemust not beSHADER_STAGE_MESH_BIT_NV - If the
task shader
feature is not enabled,
stagemust not beSHADER_STAGE_TASK_BIT_NV -
stagemust not beSHADER_STAGE_ALL_GRAPHICS, orSHADER_STAGE_ALL -
pNamemust be the name of anOpEntryPointinmodulewith an execution model that matchesstage - If the
identified entry point includes any variable in its interface that
is declared with the
ClipDistanceBuiltIndecoration, that variable must not have an array size greater thanPhysicalDeviceLimits::maxClipDistances - If the
identified entry point includes any variable in its interface that
is declared with the
CullDistanceBuiltIndecoration, that variable must not have an array size greater thanPhysicalDeviceLimits::maxCullDistances -
If the identified entry point includes any variables in its
interface that are declared with the
ClipDistanceorCullDistanceBuiltIndecoration, those variables must not have array sizes which sum to more thanPhysicalDeviceLimits::maxCombinedClipAndCullDistances - If
the identified entry point includes any variable in its interface
that is declared with the
SampleMaskBuiltIndecoration, that variable must not have an array size greater thanPhysicalDeviceLimits::maxSampleMaskWords - If
stageisSHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated withCullDistance - If
stageisSHADER_STAGE_TESSELLATION_CONTROL_BITorSHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has anOpExecutionModeinstruction that specifies a patch size withOutputVertices, the patch size must be greater than0and less than or equal toPhysicalDeviceLimits::maxTessellationPatchSize - If
stageisSHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction that specifies a maximum output vertex count that is greater than0and less than or equal toPhysicalDeviceLimits::maxGeometryOutputVertices - If
stageisSHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction that specifies an invocation count that is greater than0and less than or equal toPhysicalDeviceLimits::maxGeometryShaderInvocations - If
stageis a vertex processing stage, and the identified entry point writes toLayerfor any primitive, it must write the same value toLayerfor all vertices of a given primitive - If
stageis a vertex processing stage, and the identified entry point writes toViewportIndexfor any primitive, it must write the same value toViewportIndexfor all vertices of a given primitive - If
stageisSHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated withCullDistance - If
stageisSHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes toFragDepthin any execution path, it must write toFragDepthin all execution paths - If
stageisSHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes toFragStencilRefEXTin any execution path, it must write toFragStencilRefEXTin all execution paths - If
stageisSHADER_STAGE_MESH_BIT_NV, the identified entry point must have anOpExecutionModeinstruction that specifies a maximum output vertex count,OutputVertices, that is greater than0and less than or equal toPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices - If
stageisSHADER_STAGE_MESH_BIT_NV, the identified entry point must have anOpExecutionModeinstruction that specifies a maximum output primitive count,OutputPrimitivesNV, that is greater than0and less than or equal toPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives - If
flagshas thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXTflag set, the subgroupSizeControl feature must be enabled - If
flagshas thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXTflag set, the computeFullSubgroups feature must be enabled - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTstructure is included in thepNextchain,flagsmust not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXTflag set - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTstructure is included in thepNextchain, the subgroupSizeControl feature must be enabled, andstagemust be a valid bit specified in requiredSubgroupSizeStages - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTstructure is included in thepNextchain andstageisSHADER_STAGE_COMPUTE_BIT, the local workgroup size of the shader must be less than or equal to the product ofPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::requiredSubgroupSizeand maxComputeWorkgroupSubgroups - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfoEXTstructure is included in thepNextchain, andflagshas thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXTflag set, the local workgroup size in the X dimension of the pipeline must be a multiple ofPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::requiredSubgroupSize - If
flagshas both thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXTandPIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXTflags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize - If
flagshas thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXTflag set andflagsdoes not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXTflag set and noPipelineShaderStageRequiredSubgroupSizeCreateInfoEXTstructure is included in thepNextchain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize - The SPIR-V code
that was used to create
modulemust be valid as described by the Khronos SPIR-V Specification after applying the specializations provided inpSpecializationInfo, if any, and then converting all specialization constants into fixed constants.
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
-
pNextmust beNULLor a pointer to a valid instance ofPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be a valid combination ofPipelineShaderStageCreateFlagBitsvalues -
stagemust be a validShaderStageFlagBitsvalue -
modulemust be a validShaderModulehandle -
pNamemust be a null-terminated UTF-8 string -
If
pSpecializationInfois notNULL,pSpecializationInfomust be a valid pointer to a validSpecializationInfostructure
See Also
ComputePipelineCreateInfo, GraphicsPipelineCreateInfo,
GraphicsShaderGroupCreateInfoNV,
PipelineShaderStageCreateFlags,
RayTracingPipelineCreateInfoKHR,
RayTracingPipelineCreateInfoNV,
ShaderModule,
ShaderStageFlagBits,
SpecializationInfo, StructureType
Constructors
| PipelineShaderStageCreateInfo | |
Fields
| |
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
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid handle to a computePipeline
- If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisNULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis not -1,basePipelineHandlemust beNULL_HANDLE - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleis notNULL_HANDLE,basePipelineIndexmust be -1 - The
stagemember ofstagemust beSHADER_STAGE_COMPUTE_BIT - The shader code for
the entry point identified by
stageand the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter -
layoutmust be consistent with the layout of the compute shader specified instage - The number of
resources in
layoutaccessible to the compute shader stage must be less than or equal toPhysicalDeviceLimits::maxPerStageResources -
flagsmust not includePIPELINE_CREATE_LIBRARY_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR -
flagsmust not includePIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV -
If the
pipelineCreationCacheControl
feature is not enabled,
flagsmust not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXTorPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofPipelineCompilerControlCreateInfoAMDorPipelineCreationFeedbackCreateInfoEXT - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be a valid combination ofPipelineCreateFlagBitsvalues -
stagemust be a validPipelineShaderStageCreateInfostructure -
layoutmust be a validPipelineLayouthandle - Both of
basePipelineHandle, andlayoutthat 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
Constructors
| ComputePipelineCreateInfo | |
Fields
| |
Instances
data VertexInputBindingDescription Source #
VkVertexInputBindingDescription - Structure specifying vertex input binding description
Valid Usage
-
bindingmust be less thanPhysicalDeviceLimits::maxVertexInputBindings
-
stridemust be less than or equal toPhysicalDeviceLimits::maxVertexInputBindingStride - If the
VK_KHR_portability_subsetextension is enabled,stridemust be a multiple of, and at least as large as,PhysicalDevicePortabilitySubsetPropertiesKHR::minVertexInputBindingStrideAlignment.
Valid Usage (Implicit)
-
inputRatemust be a validVertexInputRatevalue
See Also
Constructors
| VertexInputBindingDescription | |
Fields
| |
Instances
data VertexInputAttributeDescription Source #
VkVertexInputAttributeDescription - Structure specifying vertex input attribute description
Valid Usage
-
locationmust be less thanPhysicalDeviceLimits::maxVertexInputAttributes
-
bindingmust be less thanPhysicalDeviceLimits::maxVertexInputBindings -
offsetmust be less than or equal toPhysicalDeviceLimits::maxVertexInputAttributeOffset -
formatmust be allowed as a vertex buffer format, as specified by theFORMAT_FEATURE_VERTEX_BUFFER_BITflag inFormatProperties::bufferFeaturesreturned bygetPhysicalDeviceFormatProperties -
If the
VK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStrideisFALSE, the sum ofoffsetplus the size of the vertex attribute data described byformatmust not be greater thanstridein theVertexInputBindingDescriptionreferenced inbinding.
Valid Usage (Implicit)
-
formatmust be a validFormatvalue
See Also
Constructors
| VertexInputAttributeDescription | |
Fields
| |
Instances
data PipelineVertexInputStateCreateInfo (es :: [Type]) Source #
VkPipelineVertexInputStateCreateInfo - Structure specifying parameters of a newly created pipeline vertex input state
Valid Usage
-
vertexBindingDescriptionCountmust be less than or equal toPhysicalDeviceLimits::maxVertexInputBindings
-
vertexAttributeDescriptionCountmust be less than or equal toPhysicalDeviceLimits::maxVertexInputAttributes - For every
bindingspecified by each element ofpVertexAttributeDescriptions, aVertexInputBindingDescriptionmust exist inpVertexBindingDescriptionswith the same value ofbinding -
All elements of
pVertexBindingDescriptionsmust describe distinct binding numbers -
All elements of
pVertexAttributeDescriptionsmust describe distinct attribute locations
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
-
pNextmust beNULLor a pointer to a valid instance ofPipelineVertexInputDivisorStateCreateInfoEXT - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be0 -
If
vertexBindingDescriptionCountis not0,pVertexBindingDescriptionsmust be a valid pointer to an array ofvertexBindingDescriptionCountvalidVertexInputBindingDescriptionstructures -
If
vertexAttributeDescriptionCountis not0,pVertexAttributeDescriptionsmust be a valid pointer to an array ofvertexAttributeDescriptionCountvalidVertexInputAttributeDescriptionstructures
See Also
GraphicsPipelineCreateInfo,
GraphicsShaderGroupCreateInfoNV,
PipelineVertexInputStateCreateFlags,
StructureType,
VertexInputAttributeDescription, VertexInputBindingDescription
Constructors
| PipelineVertexInputStateCreateInfo | |
Fields
| |
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
topologyisPRIMITIVE_TOPOLOGY_POINT_LIST,PRIMITIVE_TOPOLOGY_LINE_LIST,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCYorPRIMITIVE_TOPOLOGY_PATCH_LIST,primitiveRestartEnablemust beFALSE
- If the
geometry shaders
feature is not enabled,
topologymust not be any ofPRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCYorPRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY - If the
tessellation shaders
feature is not enabled,
topologymust not bePRIMITIVE_TOPOLOGY_PATCH_LIST - If
the
VK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFansisFALSE,topologymust not bePRIMITIVE_TOPOLOGY_TRIANGLE_FAN.
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-
pNextmust beNULL -
flagsmust be0 -
topologymust be a validPrimitiveTopologyvalue
See Also
Bool32, GraphicsPipelineCreateInfo,
PipelineInputAssemblyStateCreateFlags,
PrimitiveTopology,
StructureType
Constructors
| PipelineInputAssemblyStateCreateInfo | |
Fields
| |
Instances
data PipelineTessellationStateCreateInfo (es :: [Type]) Source #
VkPipelineTessellationStateCreateInfo - Structure specifying parameters of a newly created pipeline tessellation state
Valid Usage
-
patchControlPointsmust be greater than zero and less than or equal toPhysicalDeviceLimits::maxTessellationPatchSize
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
-
pNextmust beNULLor a pointer to a valid instance ofPipelineTessellationDomainOriginStateCreateInfo - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be0
See Also
GraphicsPipelineCreateInfo,
GraphicsShaderGroupCreateInfoNV,
PipelineTessellationStateCreateFlags,
StructureType
Constructors
| PipelineTessellationStateCreateInfo | |
Fields
| |
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,
viewportCountmust not be greater than1
- If the
multiple viewports
feature is not enabled,
scissorCountmust not be greater than1 -
viewportCountmust be less than or equal toPhysicalDeviceLimits::maxViewports -
scissorCountmust be less than or equal toPhysicalDeviceLimits::maxViewports - The
xandymembers ofoffsetmember of any element ofpScissorsmust 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_EXTandDYNAMIC_STATE_SCISSOR_WITH_COUNT_EXTset thenscissorCountandviewportCountmust be identical - If the
graphics pipeline is being created with
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXTset thenviewportCountmust be0, otherwise it must be greater than0 - If the
graphics pipeline is being created with
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXTset thenscissorCountmust be0, otherwise it must be greater than0 -
If the
viewportWScalingEnablemember of aPipelineViewportWScalingStateCreateInfoNVstructure included in thepNextchain isTRUE, theviewportCountmember of thePipelineViewportWScalingStateCreateInfoNVstructure must be greater than or equal toPipelineViewportStateCreateInfo::viewportCount
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofPipelineViewportCoarseSampleOrderStateCreateInfoNV,PipelineViewportExclusiveScissorStateCreateInfoNV,PipelineViewportShadingRateImageStateCreateInfoNV,PipelineViewportSwizzleStateCreateInfoNV, orPipelineViewportWScalingStateCreateInfoNV - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be0
See Also
GraphicsPipelineCreateInfo,
PipelineViewportStateCreateFlags,
Rect2D,
StructureType, Viewport
Constructors
| PipelineViewportStateCreateInfo | |
Fields
| |
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,
depthClampEnablemust beFALSE
- If
the
non-solid fill modes
feature is not enabled,
polygonModemust bePOLYGON_MODE_FILLorPOLYGON_MODE_FILL_RECTANGLE_NV - If
the
VK_NV_fill_rectangleextension is not enabled,polygonModemust not bePOLYGON_MODE_FILL_RECTANGLE_NV - If
the
VK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::pointPolygonsisFALSE, andrasterizerDiscardEnableisFALSE,polygonModemust not bePOLYGON_MODE_POINT.
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofPipelineRasterizationConservativeStateCreateInfoEXT,PipelineRasterizationDepthClipStateCreateInfoEXT,PipelineRasterizationLineStateCreateInfoEXT,PipelineRasterizationStateRasterizationOrderAMD, orPipelineRasterizationStateStreamCreateInfoEXT - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be0 -
polygonModemust be a validPolygonModevalue -
cullModemust be a valid combination ofCullModeFlagBitsvalues -
frontFacemust be a validFrontFacevalue
See Also
Bool32,
CullModeFlags,
FrontFace, GraphicsPipelineCreateInfo,
PipelineRasterizationStateCreateFlags,
PolygonMode,
StructureType
Constructors
| PipelineRasterizationStateCreateInfo | |
Fields
| |
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,
sampleShadingEnablemust beFALSE
-
If the
alpha to one
feature is not enabled,
alphaToOneEnablemust beFALSE -
minSampleShadingmust be in the range [0,1] -
If the
VK_NV_framebuffer_mixed_samplesextension is enabled, and if the subpass has any color attachments andrasterizationSamplesis greater than the number of color samples, thensampleShadingEnablemust beFALSE
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofPipelineCoverageModulationStateCreateInfoNV,PipelineCoverageReductionStateCreateInfoNV,PipelineCoverageToColorStateCreateInfoNV, orPipelineSampleLocationsStateCreateInfoEXT - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be0 -
rasterizationSamplesmust be a validSampleCountFlagBitsvalue - If
pSampleMaskis notNULL,pSampleMaskmust be a valid pointer to an array of \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)SampleMaskvalues
See Also
Bool32, GraphicsPipelineCreateInfo,
PipelineMultisampleStateCreateFlags,
SampleCountFlagBits,
SampleMask,
StructureType
Constructors
| PipelineMultisampleStateCreateInfo | |
Fields
| |
Instances
data PipelineColorBlendAttachmentState Source #
VkPipelineColorBlendAttachmentState - Structure specifying a pipeline color blend attachment state
Valid Usage
-
If the
dual source blending
feature is not enabled,
srcColorBlendFactormust 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,
dstColorBlendFactormust 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,
srcAlphaBlendFactormust 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,
dstAlphaBlendFactormust not beBLEND_FACTOR_SRC1_COLOR,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,BLEND_FACTOR_SRC1_ALPHA, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - If
either of
colorBlendOporalphaBlendOpis an advanced blend operation, thencolorBlendOpmust equalalphaBlendOp -
If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlendisFALSEandcolorBlendOpis an advanced blend operation, thencolorBlendOpmust be the same for all attachments -
If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlendisFALSEandalphaBlendOpis an advanced blend operation, thenalphaBlendOpmust be the same for all attachments -
If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperationsisFALSE, thencolorBlendOpmust 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
colorBlendOporalphaBlendOpis an advanced blend operation, thencolorAttachmentCountof the subpass this pipeline is compiled against must be less than or equal toPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments -
If the
VK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactorsisFALSE,srcColorBlendFactormust not beBLEND_FACTOR_CONSTANT_ALPHAorBLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA. -
If the
VK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactorsisFALSE,dstColorBlendFactormust not beBLEND_FACTOR_CONSTANT_ALPHAorBLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA.
Valid Usage (Implicit)
-
srcColorBlendFactormust be a validBlendFactorvalue
-
dstColorBlendFactormust be a validBlendFactorvalue -
colorBlendOpmust be a validBlendOpvalue -
srcAlphaBlendFactormust be a validBlendFactorvalue -
dstAlphaBlendFactormust be a validBlendFactorvalue -
alphaBlendOpmust be a validBlendOpvalue -
colorWriteMaskmust be a valid combination ofColorComponentFlagBitsvalues
See Also
BlendFactor,
BlendOp,
Bool32,
ColorComponentFlags,
PipelineColorBlendStateCreateInfo
Constructors
| PipelineColorBlendAttachmentState | |
Fields
| |
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.
The value of attachmentCount must be greater than the index of all
color attachments that are not
ATTACHMENT_UNUSED in
SubpassDescription::pColorAttachments or
SubpassDescription2::pColorAttachments
for the subpass in which this pipeline is used.
Valid Usage
- If the
independent blending
feature is not enabled, all elements of
pAttachmentsmust be identical
- If
the
logic operations
feature is not enabled,
logicOpEnablemust beFALSE - If
logicOpEnableisTRUE,logicOpmust be a validLogicOpvalue
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
-
pNextmust beNULLor a pointer to a valid instance ofPipelineColorBlendAdvancedStateCreateInfoEXT - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be0 - If
attachmentCountis not0,pAttachmentsmust be a valid pointer to an array ofattachmentCountvalidPipelineColorBlendAttachmentStatestructures
See Also
Bool32, GraphicsPipelineCreateInfo,
LogicOp,
PipelineColorBlendAttachmentState,
PipelineColorBlendStateCreateFlags,
StructureType
Constructors
| PipelineColorBlendStateCreateInfo | |
Fields
| |
Instances
data PipelineDynamicStateCreateInfo Source #
VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a newly created pipeline dynamic state
Valid Usage
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
-
pNextmust beNULL -
flagsmust be0 - If
dynamicStateCountis not0,pDynamicStatesmust be a valid pointer to an array ofdynamicStateCountvalidDynamicStatevalues
See Also
DynamicState,
GraphicsPipelineCreateInfo,
PipelineDynamicStateCreateFlags,
RayTracingPipelineCreateInfoKHR,
StructureType
Constructors
| PipelineDynamicStateCreateInfo | |
Fields
| |
Instances
| Show PipelineDynamicStateCreateInfo Source # | |
Defined in Vulkan.Core10.Pipeline Methods showsPrec :: Int -> PipelineDynamicStateCreateInfo -> ShowS # show :: PipelineDynamicStateCreateInfo -> String # showList :: [PipelineDynamicStateCreateInfo] -> ShowS # | |
| FromCStruct PipelineDynamicStateCreateInfo Source # | |
Defined in Vulkan.Core10.Pipeline | |
| ToCStruct PipelineDynamicStateCreateInfo Source # | |
Defined in Vulkan.Core10.Pipeline Methods withCStruct :: PipelineDynamicStateCreateInfo -> (Ptr PipelineDynamicStateCreateInfo -> IO b) -> IO b Source # pokeCStruct :: Ptr PipelineDynamicStateCreateInfo -> PipelineDynamicStateCreateInfo -> IO b -> IO b Source # withZeroCStruct :: (Ptr PipelineDynamicStateCreateInfo -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr PipelineDynamicStateCreateInfo -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero PipelineDynamicStateCreateInfo Source # | |
Defined in Vulkan.Core10.Pipeline Methods | |
data StencilOpState Source #
VkStencilOpState - Structure specifying stencil operation state
Valid Usage (Implicit)
See Also
Constructors
| StencilOpState | |
Fields
| |
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,
depthBoundsTestEnablemust beFALSE
-
If the
VK_KHR_portability_subsetextension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR::separateStencilMaskRefisFALSE, and the value ofPipelineDepthStencilStateCreateInfo::stencilTestEnableisTRUE, and the value ofPipelineRasterizationStateCreateInfo::cullModeisCULL_MODE_NONE, the value ofreferencein each of theStencilOpStatestructs infrontandbackmust be the same.
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-
pNextmust beNULL -
flagsmust be0 -
depthCompareOpmust be a validCompareOpvalue -
frontmust be a validStencilOpStatestructure -
backmust be a validStencilOpStatestructure
See Also
Bool32,
CompareOp, GraphicsPipelineCreateInfo,
PipelineDepthStencilStateCreateFlags,
StencilOpState, StructureType
Constructors
| PipelineDepthStencilStateCreateInfo | |
Fields
| |
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
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid handle to a graphicsPipeline
- If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisNULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis not -1,basePipelineHandlemust beNULL_HANDLE - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleis notNULL_HANDLE,basePipelineIndexmust be -1 - The
stagemember of each element ofpStagesmust be unique - The geometric
shader stages provided in
pStagesmust be either from the mesh shading pipeline (stageisSHADER_STAGE_TASK_BIT_NVorSHADER_STAGE_MESH_BIT_NV) or from the primitive shading pipeline (stageisSHADER_STAGE_VERTEX_BIT,SHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_TESSELLATION_EVALUATION_BIT, orSHADER_STAGE_GEOMETRY_BIT) - The
stagemember of one element ofpStagesmust be eitherSHADER_STAGE_VERTEX_BITorSHADER_STAGE_MESH_BIT_NV - The
stagemember of each element ofpStagesmust not beSHADER_STAGE_COMPUTE_BIT - If
pStagesincludes a tessellation control shader stage, it must include a tessellation evaluation shader stage - If
pStagesincludes a tessellation evaluation shader stage, it must include a tessellation control shader stage - If
pStagesincludes a tessellation control shader stage and a tessellation evaluation shader stage,pTessellationStatemust be a valid pointer to a validPipelineTessellationStateCreateInfostructure - If
pStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction that specifies the type of subdivision in the pipeline - If
pStagesincludes tessellation shader stages, and the shader code of both stages contain anOpExecutionModeinstruction that specifies the type of subdivision in the pipeline, they must both specify the same subdivision mode - If
pStagesincludes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionModeinstruction that specifies the output patch size in the pipeline - If
pStagesincludes tessellation shader stages, and the shader code of both contain anOpExecutionModeinstruction that specifies the out patch size in the pipeline, they must both specify the same patch size - If
pStagesincludes tessellation shader stages, thetopologymember ofpInputAssemblymust bePRIMITIVE_TOPOLOGY_PATCH_LIST - If the
topologymember ofpInputAssemblyisPRIMITIVE_TOPOLOGY_PATCH_LIST,pStagesmust include tessellation shader stages - If
pStagesincludes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain anOpExecutionModeinstruction that specifies an input primitive type that is compatible with the primitive topology specified inpInputAssembly - If
pStagesincludes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain anOpExecutionModeinstruction that specifies an input primitive type that is compatible with the primitive topology that is output by the tessellation stages - If
pStagesincludes a fragment shader stage and a geometry shader stage, and the fragment shader code reads from an input variable that is decorated withPrimitiveID, then the geometry shader code must write to a matching output variable, decorated withPrimitiveID, in all execution paths - If
pStagesincludes a fragment shader stage, its shader code must not read from any input attachment that is defined asATTACHMENT_UNUSEDinsubpass - The shader code
for the entry points identified by
pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter - If rasterization
is not disabled and
subpassuses a depth/stencil attachment inrenderPassthat has a layout ofIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALorIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMALin theAttachmentReferencedefined bysubpass, thedepthWriteEnablemember ofpDepthStencilStatemust beFALSE - If rasterization
is not disabled and
subpassuses a depth/stencil attachment inrenderPassthat has a layout ofIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALorIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMALin theAttachmentReferencedefined bysubpass, thefailOp,passOpanddepthFailOpmembers of each of thefrontandbackmembers ofpDepthStencilStatemust beSTENCIL_OP_KEEP - If
rasterization is not disabled and the subpass uses color
attachments, then for each color attachment in the subpass the
blendEnablemember of the corresponding element of thepAttachmentmember ofpColorBlendStatemust beFALSEif 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
attachmentCountmember ofpColorBlendStatemust be equal to thecolorAttachmentCountused to createsubpass - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_VIEWPORTorDYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, thepViewportsmember ofpViewportStatemust be a valid pointer to an array ofpViewportState->viewportCountvalidViewportstructures - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_SCISSORorDYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, thepScissorsmember ofpViewportStatemust be a valid pointer to an array ofpViewportState->scissorCountRect2Dstructures - If the wide
lines feature is not enabled, and no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_LINE_WIDTH, thelineWidthmember ofpRasterizationStatemust be1.0 - If
the
rasterizerDiscardEnablemember ofpRasterizationStateisFALSE,pViewportStatemust be a valid pointer to a validPipelineViewportStateCreateInfostructure - If
the
rasterizerDiscardEnablemember ofpRasterizationStateisFALSE,pMultisampleStatemust be a valid pointer to a validPipelineMultisampleStateCreateInfostructure - If
the
rasterizerDiscardEnablemember ofpRasterizationStateisFALSE, andsubpassuses a depth/stencil attachment,pDepthStencilStatemust be a valid pointer to a validPipelineDepthStencilStateCreateInfostructure - If
the
rasterizerDiscardEnablemember ofpRasterizationStateisFALSE, andsubpassuses color attachments,pColorBlendStatemust be a valid pointer to a validPipelineColorBlendStateCreateInfostructure - If
the
rasterizerDiscardEnablemember ofpRasterizationStateisFALSE,pColorBlendState->attachmentCountmust be greater than the index of all color attachments that are notATTACHMENT_UNUSEDfor thesubpassindex inrenderPass - If the
depth bias clamping feature is not enabled, no element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_DEPTH_BIAS, and thedepthBiasEnablemember ofpRasterizationStateisTRUE, thedepthBiasClampmember ofpRasterizationStatemust be0.0 - If the
VK_EXT_depth_range_unrestrictedextension is not enabled and no element of thepDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_DEPTH_BOUNDS, and thedepthBoundsTestEnablemember ofpDepthStencilStateisTRUE, theminDepthBoundsandmaxDepthBoundsmembers ofpDepthStencilStatemust be between0.0and1.0, inclusive - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of aPipelineSampleLocationsStateCreateInfoEXTstructure included in thepNextchain ofpMultisampleStateisTRUE,sampleLocationsInfo.sampleLocationGridSize.widthmust evenly divideMultisamplePropertiesEXT::sampleLocationGridSize.widthas returned bygetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of aPipelineSampleLocationsStateCreateInfoEXTstructure included in thepNextchain ofpMultisampleStateisTRUE,sampleLocationsInfo.sampleLocationGridSize.heightmust evenly divideMultisamplePropertiesEXT::sampleLocationGridSize.heightas returned bygetPhysicalDeviceMultisamplePropertiesEXTwith asamplesparameter equalingrasterizationSamples - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and thesampleLocationsEnablemember of aPipelineSampleLocationsStateCreateInfoEXTstructure included in thepNextchain ofpMultisampleStateisTRUE,sampleLocationsInfo.sampleLocationsPerPixelmust equalrasterizationSamples - If
the
sampleLocationsEnablemember of aPipelineSampleLocationsStateCreateInfoEXTstructure included in thepNextchain ofpMultisampleStateisTRUE, the fragment shader code must not statically use the extended instructionInterpolateAtSample -
layoutmust be consistent with all shaders specified inpStages - If neither the
VK_AMD_mixed_attachment_samplesnor theVK_NV_framebuffer_mixed_samplesextensions are enabled, and ifsubpassuses color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust be the same as the sample count for those subpass attachments - If the
VK_AMD_mixed_attachment_samplesextension is enabled, and ifsubpassuses color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust equal the maximum of the sample counts of those subpass attachments - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, and ifsubpasshas a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then therasterizationSamplesmember ofpMultisampleStatemust be the same as the sample count of the depth/stencil attachment - If the
VK_NV_framebuffer_mixed_samplesextension is enabled, and ifsubpasshas any color attachments, then therasterizationSamplesmember ofpMultisampleStatemust be greater than or equal to the sample count for those subpass attachments - If
the
VK_NV_coverage_reduction_modeextension is enabled, the coverage reduction mode specified byPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, therasterizationSamplesmember ofpMultisampleStateand the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned bygetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV - If
subpassdoes not use any color and/or depth/stencil attachments, then therasterizationSamplesmember ofpMultisampleStatemust follow the rules for a zero-attachment subpass -
subpassmust be a valid subpass withinrenderPass - If the
renderPasshas multiview enabled andsubpasshas more than one bit set in the view mask andmultiviewTessellationShaderis not enabled, thenpStagesmust not include tessellation shaders - If the
renderPasshas multiview enabled andsubpasshas more than one bit set in the view mask andmultiviewGeometryShaderis not enabled, thenpStagesmust not include a geometry shader - If the
renderPasshas multiview enabled andsubpasshas more than one bit set in the view mask, shaders in the pipeline must not write to theLayerbuilt-in output - If the
renderPasshas multiview enabled, then all shaders must not include variables decorated with theLayerbuilt-in decoration in their interfaces -
flagsmust not contain thePIPELINE_CREATE_DISPATCH_BASEflag - If
pStagesincludes a fragment shader stage and an input attachment was referenced by anaspectMaskatrenderPasscreation time, its shader code must only read from the aspects that were specified for that input attachment - The number of
resources in
layoutaccessible to each shader stage that is used by the pipeline must be less than or equal toPhysicalDeviceLimits::maxPerStageResources - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and theviewportWScalingEnablemember of aPipelineViewportWScalingStateCreateInfoNVstructure, included in thepNextchain ofpViewportState, isTRUE, thepViewportWScalingsmember of thePipelineViewportWScalingStateCreateInfoNVmust be a pointer to an array ofPipelineViewportWScalingStateCreateInfoNV::viewportCountvalidViewportWScalingNVstructures - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and ifpViewportState->pNextchain includes aPipelineViewportExclusiveScissorStateCreateInfoNVstructure, and if itsexclusiveScissorCountmember is not0, then itspExclusiveScissorsmember must be a valid pointer to an array ofexclusiveScissorCountRect2Dstructures - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and ifpViewportState->pNextchain includes aPipelineViewportShadingRateImageStateCreateInfoNVstructure, then itspShadingRatePalettesmember must be a valid pointer to an array ofviewportCountvalidShadingRatePaletteNVstructures - If no
element of the
pDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and ifpNextchain includes aPipelineDiscardRectangleStateCreateInfoEXTstructure, and if itsdiscardRectangleCountmember is not0, then itspDiscardRectanglesmember must be a valid pointer to an array ofdiscardRectangleCountRect2Dstructures - If
pStagesincludes a vertex shader stage,pVertexInputStatemust be a valid pointer to a validPipelineVertexInputStateCreateInfostructure - If
pStagesincludes a vertex shader stage,pInputAssemblyStatemust be a valid pointer to a validPipelineInputAssemblyStateCreateInfostructure - The
Xfbexecution mode can be specified by only one shader stage inpStages - If any shader
stage in
pStagesspecifiesXfbexecution mode it must be the last vertex processing stage - If a
PipelineRasterizationStateStreamCreateInfoEXT::rasterizationStreamvalue other than zero is specified, all variables in the output interface of the entry point being compiled decorated withPosition,PointSize,ClipDistance, orCullDistancemust all be decorated with identicalStreamvalues that match therasterizationStream - If
PipelineRasterizationStateStreamCreateInfoEXT::rasterizationStreamis zero, or not specified, all variables in the output interface of the entry point being compiled decorated withPosition,PointSize,ClipDistance, orCullDistancemust all be decorated with aStreamvalue of zero, or must not specify theStreamdecoration - If the
last vertex processing stage is a geometry shader, and that geometry
shader uses the
GeometryStreamscapability, thenPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreamsfeature 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
Xfbexecution mode - If
the
lineRasterizationModemember of aPipelineRasterizationLineStateCreateInfoEXTstructure included in thepNextchain ofpRasterizationStateisLINE_RASTERIZATION_MODE_BRESENHAM_EXTorLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXTand if rasterization is enabled, then thealphaToCoverageEnable,alphaToOneEnable, andsampleShadingEnablemembers ofpMultisampleStatemust all beFALSE - If the
stippledLineEnablemember ofPipelineRasterizationLineStateCreateInfoEXTisTRUEand no element of thepDynamicStatesmember ofpDynamicStateisDYNAMIC_STATE_LINE_STIPPLE_EXT, then thelineStippleFactormember ofPipelineRasterizationLineStateCreateInfoEXTmust be in the range [1,256] -
flagsmust not includePIPELINE_CREATE_LIBRARY_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR - If the
extendedDynamicState
feature is not enabled, there must be no element of the
pDynamicStatesmember ofpDynamicStateset 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_EXTis included in thepDynamicStatesarray thenviewportCountmust be zero - If
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXTis included in thepDynamicStatesarray thenscissorCountmust be zero - If
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXTis included in thepDynamicStatesarray thenDYNAMIC_STATE_VIEWPORTmust not be present - If
DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXTis included in thepDynamicStatesarray thenDYNAMIC_STATE_SCISSORmust not be present - If
flagsincludesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the ::deviceGeneratedCommands feature must be enabled - If
flagsincludesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specifyXfbexecution mode -
If the
pipelineCreationCacheControl
feature is not enabled,
flagsmust not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXTorPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates,PipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to1 - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates,PipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to1 - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates,PipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two value - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates,PipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be a power-of-two value - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates,PipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be less than or equal to4 - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates,PipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be less than or equal to4 - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width andPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must both be equal to1 - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR -
If the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported,
DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXTis not included inpDynamicState->pDynamicStates, andPipelineViewportStateCreateInfo::viewportCountis greater than1, entry points specified inpStagesmust not write to thePrimitiveShadingRateKHRbuilt-in -
If the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported, and entry points specified in
pStageswrite to theViewportIndexbuilt-in, they must not also write to thePrimitiveShadingRateKHRbuilt-in -
If the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported, and entry points specified in
pStageswrite to theViewportMaskNVbuilt-in, they must not also write to thePrimitiveShadingRateKHRbuilt-in -
If the
fragmentShadingRateNonTrivialCombinerOps
limit is not supported and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, elements ofPipelineFragmentShadingRateStateCreateInfoKHR::combinerOpsmust beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRorFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and the fragmentShadingRateEnums feature is not enabled,PipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be equal toFRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV. - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be equal toFRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV. - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR -
If the
fragmentShadingRateNonTrivialCombinerOps
limit is not supported and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRis not included inpDynamicState->pDynamicStates, elements ofPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOpsmust beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRorFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR - If the
supersampleFragmentShadingRates feature
is not enabled,
PipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal toFRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, orFRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV. - If the
noInvocationFragmentShadingRates feature
is not enabled,
PipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal toFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV. - All
elements of the
pDynamicStatesmember ofpDynamicStatemust not beDYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofGraphicsPipelineShaderGroupsCreateInfoNV,PipelineCompilerControlCreateInfoAMD,PipelineCreationFeedbackCreateInfoEXT,PipelineDiscardRectangleStateCreateInfoEXT,PipelineFragmentShadingRateEnumStateCreateInfoNV,PipelineFragmentShadingRateStateCreateInfoKHR, orPipelineRepresentativeFragmentTestStateCreateInfoNV - The
sTypevalue of each struct in thepNextchain must be unique -
flagsmust be a valid combination ofPipelineCreateFlagBitsvalues -
pStagesmust be a valid pointer to an array ofstageCountvalidPipelineShaderStageCreateInfostructures -
pRasterizationStatemust be a valid pointer to a validPipelineRasterizationStateCreateInfostructure - If
pDynamicStateis notNULL,pDynamicStatemust be a valid pointer to a validPipelineDynamicStateCreateInfostructure -
layoutmust be a validPipelineLayouthandle -
renderPassmust be a validRenderPasshandle -
stageCountmust be greater than0 - Each of
basePipelineHandle,layout, andrenderPassthat 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
Constructors
| GraphicsPipelineCreateInfo | |
Fields
| |
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,
getRayTracingShaderGroupStackSizeKHR,
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 Methods 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
Constructors
| PipelineLayoutCreateFlags Flags |
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
Constructors
| PipelineDepthStencilStateCreateFlags Flags |
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
Constructors
| PipelineDynamicStateCreateFlags Flags |
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
Constructors
| PipelineColorBlendStateCreateFlags Flags |
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
Constructors
| PipelineMultisampleStateCreateFlags Flags |
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
Constructors
| PipelineRasterizationStateCreateFlags Flags |
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
Constructors
| PipelineViewportStateCreateFlags Flags |
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
Constructors
| PipelineTessellationStateCreateFlags Flags |
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
Constructors
| PipelineInputAssemblyStateCreateFlags Flags |
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
Constructors
| PipelineVertexInputStateCreateFlags Flags |
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
Constructors
| PrimitiveTopology Int32 |
Bundled Patterns
Instances
VkCompareOp - Stencil comparison function
See Also
PipelineDepthStencilStateCreateInfo,
SamplerCreateInfo,
StencilOpState,
cmdSetDepthCompareOpEXT,
cmdSetStencilOpEXT
Bundled Patterns
| 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 # | |
| 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
Constructors
| PolygonMode Int32 |
Bundled Patterns
| 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
VkFrontFace - Interpret polygon front-facing orientation
Description
Any triangle which is not front-facing is back-facing, including zero-area triangles.
See Also
Bundled Patterns
| pattern FRONT_FACE_COUNTER_CLOCKWISE :: FrontFace |
|
| pattern FRONT_FACE_CLOCKWISE :: FrontFace |
|
Instances
| Eq FrontFace Source # | |
| Ord FrontFace Source # | |
| 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
Constructors
| BlendFactor Int32 |
Bundled Patterns
| 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
Bundled Patterns
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
Bundled Patterns
| 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 # | |
| 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
Bundled Patterns
| 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
Constructors
| VertexInputRate Int32 |
Bundled Patterns
| 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
Constructors
| DynamicState Int32 |
Bundled Patterns
| 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_FRAGMENT_SHADING_RATE_KHR :: 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_RAY_TRACING_PIPELINE_STACK_SIZE_KHR :: 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 CullModeFlagBits Source #
VkCullModeFlagBits - Bitmask controlling triangle culling
Description
Following culling, fragments are produced for any triangles which have not been discarded.
See Also
Constructors
| CullModeFlagBits Flags |
Bundled Patterns
| 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 #
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
Constructors
| ShaderStageFlagBits Flags |
Bundled Patterns
Instances
newtype PipelineCreateFlagBits Source #
VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created
Description
PIPELINE_CREATE_DISABLE_OPTIMIZATION_BITspecifies that the created pipeline will not be optimized. Using this flag may reduce the time taken to create the pipeline.
PIPELINE_CREATE_ALLOW_DERIVATIVES_BITspecifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent pipeline creation call.PIPELINE_CREATE_DERIVATIVE_BITspecifies that the pipeline to be created will be a child of a previously created parent pipeline.PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BITspecifies that any shader input variables decorated asViewIndexwill be assigned values as if they were decorated asDeviceIndex.PIPELINE_CREATE_DISPATCH_BASEspecifies that a compute pipeline can be used withcmdDispatchBasewith a non-zero base workgroup.PIPELINE_CREATE_DEFER_COMPILE_BIT_NVspecifies that a pipeline is created with all shaders in the deferred state. Before using the pipeline the application must callcompileDeferredNVexactly once on each shader in the pipeline before using the pipeline.PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHRspecifies 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_KHRspecifies 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_KHRspecifies that the pipeline cannot be used directly, and instead defines a pipeline library that can be combined with other pipelines using thePipelineLibraryCreateInfoKHRstructure. This is available in ray tracing pipelines.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRspecifies 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_KHRspecifies 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_KHRspecifies that a miss shader will always be present when a miss shader would be executed.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHRspecifies that an intersection shader will always be present when an intersection shader would be executed.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHRspecifies that triangle primitives will be skipped during traversal usingOpTraceKHR.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRspecifies that AABB primitives will be skipped during traversal usingOpTraceKHR.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHRspecifies that the shader group handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NVspecifies 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_EXTspecifies that pipeline creation will fail if a compile is required for creation of a validPipelineobject;PIPELINE_COMPILE_REQUIRED_EXTwill be returned by pipeline creation, and thePipelinewill be set toNULL_HANDLE.- When creating multiple pipelines,
PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXTspecifies 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
Constructors
| PipelineCreateFlagBits Flags |
Bundled Patterns
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
Constructors
| PipelineShaderStageCreateFlagBits Flags |
Bundled Patterns
| 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
Constructors
| ColorComponentFlagBits Flags |
Bundled Patterns
| 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 #