Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- createGraphicsPipelines :: forall io. MonadIO io => Device -> PipelineCache -> ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "pipelines" ::: Vector Pipeline)
- withGraphicsPipelines :: forall io r. MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
- createComputePipelines :: forall io. MonadIO io => Device -> PipelineCache -> ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "pipelines" ::: Vector Pipeline)
- withComputePipelines :: forall io r. MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
- destroyPipeline :: forall io. MonadIO io => Device -> Pipeline -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- data Viewport = Viewport {}
- data SpecializationMapEntry = SpecializationMapEntry {}
- data SpecializationInfo = SpecializationInfo {
- mapEntries :: Vector SpecializationMapEntry
- dataSize :: Word64
- data' :: Ptr ()
- data PipelineShaderStageCreateInfo (es :: [Type]) = PipelineShaderStageCreateInfo {}
- data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo {}
- data VertexInputBindingDescription = VertexInputBindingDescription {}
- data VertexInputAttributeDescription = VertexInputAttributeDescription {}
- data PipelineVertexInputStateCreateInfo (es :: [Type]) = PipelineVertexInputStateCreateInfo {}
- data PipelineInputAssemblyStateCreateInfo = PipelineInputAssemblyStateCreateInfo {}
- data PipelineTessellationStateCreateInfo (es :: [Type]) = PipelineTessellationStateCreateInfo {}
- data PipelineViewportStateCreateInfo (es :: [Type]) = PipelineViewportStateCreateInfo {}
- data PipelineRasterizationStateCreateInfo (es :: [Type]) = PipelineRasterizationStateCreateInfo {
- next :: Chain es
- flags :: PipelineRasterizationStateCreateFlags
- depthClampEnable :: Bool
- rasterizerDiscardEnable :: Bool
- polygonMode :: PolygonMode
- cullMode :: CullModeFlags
- frontFace :: FrontFace
- depthBiasEnable :: Bool
- depthBiasConstantFactor :: Float
- depthBiasClamp :: Float
- depthBiasSlopeFactor :: Float
- lineWidth :: Float
- data PipelineMultisampleStateCreateInfo (es :: [Type]) = PipelineMultisampleStateCreateInfo {}
- data PipelineColorBlendAttachmentState = PipelineColorBlendAttachmentState {}
- data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateCreateInfo {}
- data PipelineDynamicStateCreateInfo = PipelineDynamicStateCreateInfo {}
- data StencilOpState = StencilOpState {}
- data PipelineDepthStencilStateCreateInfo = PipelineDepthStencilStateCreateInfo {}
- data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo {
- next :: Chain es
- flags :: PipelineCreateFlags
- stageCount :: Word32
- stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
- vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)
- inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo
- tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo)
- viewportState :: Maybe (SomeStruct PipelineViewportStateCreateInfo)
- rasterizationState :: Maybe (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 PipelineDynamicStateCreateFlags = PipelineDynamicStateCreateFlags 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_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV :: DynamicState
- pattern DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV :: DynamicState
- pattern DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV :: DynamicState
- pattern DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV :: DynamicState
- pattern DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV :: DynamicState
- pattern DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV :: DynamicState
- pattern DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV :: DynamicState
- pattern DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT :: DynamicState
- pattern DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT :: DynamicState
- pattern DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT :: DynamicState
- pattern DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT :: DynamicState
- pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT :: DynamicState
- pattern DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT :: DynamicState
- pattern DYNAMIC_STATE_RASTERIZATION_STREAM_EXT :: DynamicState
- pattern DYNAMIC_STATE_COLOR_WRITE_MASK_EXT :: DynamicState
- pattern DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT :: DynamicState
- pattern DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_SAMPLE_MASK_EXT :: DynamicState
- pattern DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT :: DynamicState
- pattern DYNAMIC_STATE_POLYGON_MODE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT :: DynamicState
- pattern DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_LOGIC_OP_EXT :: DynamicState
- pattern DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT :: DynamicState
- pattern DYNAMIC_STATE_VERTEX_INPUT_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_EXCLUSIVE_SCISSOR_ENABLE_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_MODE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_DISCARD_RECTANGLE_EXT :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: DynamicState
- pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE :: DynamicState
- pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_OP :: DynamicState
- pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_COMPARE_OP :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE :: DynamicState
- pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE :: DynamicState
- pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE :: DynamicState
- pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT :: DynamicState
- pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT :: DynamicState
- pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY :: DynamicState
- pattern DYNAMIC_STATE_FRONT_FACE :: DynamicState
- pattern DYNAMIC_STATE_CULL_MODE :: 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_CLUSTER_CULLING_BIT_HUAWEI :: ShaderStageFlagBits
- pattern SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI :: ShaderStageFlagBits
- pattern SHADER_STAGE_MESH_BIT_EXT :: ShaderStageFlagBits
- pattern SHADER_STAGE_TASK_BIT_EXT :: 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_PROTECTED_ACCESS_ONLY_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DESCRIPTOR_BUFFER_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_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT :: 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
- newtype PipelineLayoutCreateFlagBits where
- type PipelineLayoutCreateFlags = PipelineLayoutCreateFlagBits
- newtype PipelineColorBlendStateCreateFlagBits where
- type PipelineColorBlendStateCreateFlags = PipelineColorBlendStateCreateFlagBits
- newtype PipelineDepthStencilStateCreateFlagBits where
- PipelineDepthStencilStateCreateFlagBits Flags
- pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT :: PipelineDepthStencilStateCreateFlagBits
- pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT :: PipelineDepthStencilStateCreateFlagBits
- type PipelineDepthStencilStateCreateFlags = PipelineDepthStencilStateCreateFlagBits
- type SampleMask = Word32
Documentation
createGraphicsPipelines Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineCache |
|
-> ("createInfos" ::: Vector (SomeStruct GraphicsPipelineCreateInfo)) |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io (Result, "pipelines" ::: Vector Pipeline) |
vkCreateGraphicsPipelines - Create graphics pipelines
Description
The GraphicsPipelineCreateInfo
structure includes an array of
PipelineShaderStageCreateInfo
structures for each of the desired
active shader stages, as well as creation information for all relevant
fixed-function stages, and a pipeline layout.
Valid Usage
- If the
flags
member of any element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, and thebasePipelineIndex
member of that same element is not-1
,basePipelineIndex
must be less than the index intopCreateInfos
that corresponds to that element
- If the
flags
member of any element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set - If
pipelineCache
was created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
, host access topipelineCache
must be externally synchronized
Note
An implicit cache may be provided by the implementation or a layer. For
this reason, it is still valid to set
PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
on flags
for any element of pCreateInfos
while passing
NULL_HANDLE
for pipelineCache
.
Valid Usage (Implicit)
-
device
must be a validDevice
handle
- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validPipelineCache
handle -
pCreateInfos
must be a valid pointer to an array ofcreateInfoCount
validGraphicsPipelineCreateInfo
structures - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure -
pPipelines
must be a valid pointer to an array ofcreateInfoCount
Pipeline
handles -
createInfoCount
must be greater than0
- If
pipelineCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
See Also
VK_VERSION_1_0,
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 #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineCache |
|
-> ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo)) |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io (Result, "pipelines" ::: Vector Pipeline) |
vkCreateComputePipelines - Creates a new compute pipeline object
Valid Usage
- If the
flags
member of any element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, and thebasePipelineIndex
member of that same element is not-1
,basePipelineIndex
must be less than the index intopCreateInfos
that corresponds to that element
- If the
flags
member of any element ofpCreateInfos
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
flag set - If
pipelineCache
was created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
, host access topipelineCache
must be externally synchronized
Valid Usage (Implicit)
-
device
must be a validDevice
handle
- If
pipelineCache
is notNULL_HANDLE
,pipelineCache
must be a validPipelineCache
handle -
pCreateInfos
must be a valid pointer to an array ofcreateInfoCount
validComputePipelineCreateInfo
structures - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure -
pPipelines
must be a valid pointer to an array ofcreateInfoCount
Pipeline
handles -
createInfoCount
must be greater than0
- If
pipelineCache
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
See Also
VK_VERSION_1_0,
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.
:: forall io. MonadIO io | |
=> Device |
|
-> Pipeline |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io () |
vkDestroyPipeline - Destroy a pipeline object
Valid Usage
- If
AllocationCallbacks
were provided whenpipeline
was created, a compatible set of callbacks must be provided here - If no
AllocationCallbacks
were provided whenpipeline
was created,pAllocator
must beNULL
Valid Usage (Implicit)
-
device
must be a validDevice
handle
- If
pipeline
is notNULL_HANDLE
,pipeline
must be a validPipeline
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure - If
pipeline
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
pipeline
must be externally synchronized
See Also
VkViewport - Structure specifying a viewport
Description
Note
Despite their names, minDepth
can be less than, equal to, or greater
than maxDepth
.
The framebuffer depth coordinate z
f may be represented using either
a fixed-point or floating-point representation. However, a
floating-point representation must be used if the depth/stencil
attachment has a floating-point depth component. If an m-bit fixed-point
representation is used, we assume that it represents each value
\(\frac{k}{2^m - 1}\), where k ∈ { 0, 1, …, 2m-1 }, as k (e.g. 1.0 is
represented in binary as a string of all ones).
The viewport parameters shown in the above equations are found from these values as
- ox =
x
+width
/ 2 - oy =
y
+height
/ 2 - oz =
minDepth
(or (maxDepth
+minDepth
) / 2 ifPipelineViewportDepthClipControlCreateInfoEXT
::negativeOneToOne
isTRUE
) - px =
width
- py =
height
- pz =
maxDepth
-minDepth
(or (maxDepth
-minDepth
) / 2 ifPipelineViewportDepthClipControlCreateInfoEXT
::negativeOneToOne
isTRUE
)
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
pre-rasterization shader stage.
The width and height of the implementation-dependent maximum viewport dimensions must be greater than or equal to the width and height of the largest image which can be created and attached to a framebuffer.
The floating-point viewport bounds are represented with an implementation-dependent precision.
Valid Usage
-
width
must be less than or equal toPhysicalDeviceLimits
::maxViewportDimensions
[0] - If the
VK_KHR_maintenance1
extension is not enabled, the
VK_AMD_negative_viewport_height
extension is not enabled, and
PhysicalDeviceProperties
::apiVersion
is less than Vulkan 1.1,height
must be greater than0.0
- The absolute value of
height
must be less than or equal toPhysicalDeviceLimits
::maxViewportDimensions
[1] -
x
must be greater than or equal toviewportBoundsRange
[0] - (
x
+width
) must be less than or equal toviewportBoundsRange
[1] -
y
must be greater than or equal toviewportBoundsRange
[0] -
y
must be less than or equal toviewportBoundsRange
[1] - (
y
+height
) must be greater than or equal toviewportBoundsRange
[0] - (
y
+height
) must be less than or equal toviewportBoundsRange
[1] - If the
VK_EXT_depth_range_unrestricted
extension is not enabled,minDepth
must be between0.0
and1.0
, inclusive - If the
VK_EXT_depth_range_unrestricted
extension is not enabled,maxDepth
must be between0.0
and1.0
, inclusive
See Also
VK_VERSION_1_0,
CommandBufferInheritanceViewportScissorInfoNV
,
PipelineViewportStateCreateInfo
,
cmdSetViewport
,
cmdSetViewportWithCount
,
cmdSetViewportWithCountEXT
Instances
Storable Viewport Source # | |
Defined in Vulkan.Core10.Pipeline | |
Show Viewport Source # | |
Eq Viewport Source # | |
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
constantID
specialization constant declared in a shader,size
must match the byte size of theconstantID
. If the specialization constant is of typeboolean
,size
must be the byte size ofBool32
See Also
Instances
data SpecializationInfo Source #
VkSpecializationInfo - Structure specifying specialization information
Valid Usage
- The
size
member of each element ofpMapEntries
must be less than or equal todataSize
minusoffset
- The
constantID
value of each element ofpMapEntries
must be unique withinpMapEntries
Valid Usage (Implicit)
- If
mapEntryCount
is not0
,pMapEntries
must be a valid pointer to an array ofmapEntryCount
validSpecializationMapEntry
structures
See Also
VK_VERSION_1_0,
PipelineShaderStageCreateInfo
,
ShaderCreateInfoEXT
,
SpecializationMapEntry
SpecializationInfo | |
|
Instances
Show SpecializationInfo Source # | |
Defined in Vulkan.Core10.Pipeline showsPrec :: Int -> SpecializationInfo -> ShowS # show :: SpecializationInfo -> String # showList :: [SpecializationInfo] -> ShowS # | |
FromCStruct SpecializationInfo Source # | |
Defined in Vulkan.Core10.Pipeline | |
ToCStruct SpecializationInfo Source # | |
Defined in Vulkan.Core10.Pipeline 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 |
data PipelineShaderStageCreateInfo (es :: [Type]) Source #
VkPipelineShaderStageCreateInfo - Structure specifying parameters of a newly created pipeline shader stage
Description
If module
is not NULL_HANDLE
, the shader
code used by the pipeline is defined by module
. If module
is
NULL_HANDLE
, the shader code is defined by
the chained ShaderModuleCreateInfo
if present.
If the
shaderModuleIdentifier
feature is enabled, applications can omit shader code for stage
and
instead provide a module identifier. This is done by including a
PipelineShaderStageModuleIdentifierCreateInfoEXT
struct with identifierSize
not equal to 0 in the pNext
chain. A
shader stage created in this way is equivalent to one created using a
shader module with the same identifier. The identifier allows an
implementation to look up a pipeline without consuming a valid SPIR-V
module. If a pipeline is not found, pipeline compilation is not possible
and the implementation must fail as specified by
PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
.
When an identifier is used in lieu of a shader module, implementations
may fail pipeline compilation with
PIPELINE_COMPILE_REQUIRED
for any reason.
Note
The rationale for the relaxed requirement on implementations to return a
pipeline with
PipelineShaderStageModuleIdentifierCreateInfoEXT
is that layers or tools may intercept pipeline creation calls and
require the full SPIR-V context to operate correctly. ICDs are not
expected to fail pipeline compilation if the pipeline exists in a cache
somewhere.
Applications can use identifiers when creating pipelines with
PIPELINE_CREATE_LIBRARY_BIT_KHR
.
When creating such pipelines, SUCCESS
may
be returned, but subsequently fail when referencing the pipeline in a
PipelineLibraryCreateInfoKHR
struct. Applications must allow pipeline compilation to fail during
link steps with
PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
as it may not be possible to determine if a pipeline can be created
from identifiers until the link step.
Valid Usage
- If the
geometryShader
feature is not enabled,
stage
must not beSHADER_STAGE_GEOMETRY_BIT
- If the
tessellationShader
feature is not enabled,
stage
must not beSHADER_STAGE_TESSELLATION_CONTROL_BIT
orSHADER_STAGE_TESSELLATION_EVALUATION_BIT
- If the
meshShaders
feature is not enabled,
stage
must not beSHADER_STAGE_MESH_BIT_EXT
- If the
taskShaders
feature is not enabled,
stage
must not beSHADER_STAGE_TASK_BIT_EXT
- If
the
clustercullingShader
feature is not enabled,
stage
must not beSHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
-
stage
must not beSHADER_STAGE_ALL_GRAPHICS
, orSHADER_STAGE_ALL
-
pName
must be the name of anOpEntryPoint
inmodule
with an execution model that matchesstage
- If the
identified entry point includes any variable in its interface that
is declared with the
ClipDistance
BuiltIn
decoration, that variable must not have an array size greater thanPhysicalDeviceLimits
::maxClipDistances
- If the
identified entry point includes any variable in its interface that
is declared with the
CullDistance
BuiltIn
decoration, that variable must not have an array size greater thanPhysicalDeviceLimits
::maxCullDistances
-
If the identified entry point includes any variables in its
interface that are declared with the
ClipDistance
orCullDistance
BuiltIn
decoration, those variables must not have array sizes which sum to more thanPhysicalDeviceLimits
::maxCombinedClipAndCullDistances
- If
the identified entry point includes any variable in its interface
that is declared with the
SampleMask
BuiltIn
decoration, that variable must not have an array size greater thanPhysicalDeviceLimits
::maxSampleMaskWords
- If
stage
isSHADER_STAGE_TESSELLATION_CONTROL_BIT
orSHADER_STAGE_TESSELLATION_EVALUATION_BIT
, and the identified entry point has anOpExecutionMode
instruction specifying a patch size withOutputVertices
, the patch size must be greater than0
and less than or equal toPhysicalDeviceLimits
::maxTessellationPatchSize
- If
stage
isSHADER_STAGE_GEOMETRY_BIT
, the identified entry point must have anOpExecutionMode
instruction specifying a maximum output vertex count that is greater than0
and less than or equal toPhysicalDeviceLimits
::maxGeometryOutputVertices
- If
stage
isSHADER_STAGE_GEOMETRY_BIT
, the identified entry point must have anOpExecutionMode
instruction specifying an invocation count that is greater than0
and less than or equal toPhysicalDeviceLimits
::maxGeometryShaderInvocations
- If
stage
is eitherSHADER_STAGE_VERTEX_BIT
,SHADER_STAGE_TESSELLATION_CONTROL_BIT
,SHADER_STAGE_TESSELLATION_EVALUATION_BIT
, orSHADER_STAGE_GEOMETRY_BIT
, and the identified entry point writes toLayer
for any primitive, it must write the same value toLayer
for all vertices of a given primitive - If
stage
is eitherSHADER_STAGE_VERTEX_BIT
,SHADER_STAGE_TESSELLATION_CONTROL_BIT
,SHADER_STAGE_TESSELLATION_EVALUATION_BIT
, orSHADER_STAGE_GEOMETRY_BIT
, and the identified entry point writes toViewportIndex
for any primitive, it must write the same value toViewportIndex
for all vertices of a given primitive - If
stage
isSHADER_STAGE_FRAGMENT_BIT
, and the identified entry point writes toFragDepth
in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value ofFragDepth
- If
stage
isSHADER_STAGE_FRAGMENT_BIT
, and the identified entry point writes toFragStencilRefEXT
in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value ofFragStencilRefEXT
- If
flags
has thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
flag set, the subgroupSizeControl feature must be enabled - If
flags
has thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT
flag set, the computeFullSubgroups feature must be enabled - If
flags
includesPIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT
,stage
must be one ofSHADER_STAGE_MESH_BIT_EXT
,SHADER_STAGE_TASK_BIT_EXT
, orSHADER_STAGE_COMPUTE_BIT
- If a
PipelineShaderStageRequiredSubgroupSizeCreateInfo
structure is included in thepNext
chain,flags
must not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
flag set - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfo
structure is included in thepNext
chain, the subgroupSizeControl feature must be enabled, andstage
must be a valid bit specified in requiredSubgroupSizeStages - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfo
structure is included in thepNext
chain andstage
isSHADER_STAGE_COMPUTE_BIT
,SHADER_STAGE_MESH_BIT_EXT
, orSHADER_STAGE_TASK_BIT_EXT
, the local workgroup size of the shader must be less than or equal to the product ofPipelineShaderStageRequiredSubgroupSizeCreateInfo
::requiredSubgroupSize
and maxComputeWorkgroupSubgroups - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfo
structure is included in thepNext
chain, andflags
has thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT
flag set, the local workgroup size in the X dimension of the pipeline must be a multiple ofPipelineShaderStageRequiredSubgroupSizeCreateInfo
::requiredSubgroupSize
- If
flags
has both thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT
andPIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize - If
flags
has thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT
flag set andflags
does not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
flag set and noPipelineShaderStageRequiredSubgroupSizeCreateInfo
structure is included in thepNext
chain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize - If
module
uses theOpTypeCooperativeMatrixKHR
instruction with aScope
equal toSubgroup
, then the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize. If a shader module identifier is not specified for this
stage
,module
must be a validShaderModule
if none of the following features are enabled:- If a shader
module identifier is not specified for this
stage
,module
must be a validShaderModule
, or there must be a validShaderModuleCreateInfo
structure in thepNext
chain - If a shader
module identifier is specified for this
stage
, aShaderModuleCreateInfo
structure must not be present in thepNext
chain - If a shader
module identifier is specified for this
stage
,module
must beNULL_HANDLE
- If
a shader module identifier is not specified, the shader code used by
the pipeline must be valid as described by the
Khronos SPIR-V Specification
after applying the specializations provided in
pSpecializationInfo
, if any, and then converting all specialization constants into fixed constants
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofDebugUtilsObjectNameInfoEXT
,PipelineRobustnessCreateInfoEXT
,PipelineShaderStageModuleIdentifierCreateInfoEXT
,PipelineShaderStageNodeCreateInfoAMDX
,PipelineShaderStageRequiredSubgroupSizeCreateInfo
,ShaderModuleCreateInfo
, orShaderModuleValidationCacheCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be a valid combination ofPipelineShaderStageCreateFlagBits
values -
stage
must be a validShaderStageFlagBits
value - If
module
is notNULL_HANDLE
,module
must be a validShaderModule
handle -
pName
must be a null-terminated UTF-8 string -
If
pSpecializationInfo
is notNULL
,pSpecializationInfo
must be a valid pointer to a validSpecializationInfo
structure
See Also
VK_VERSION_1_0,
ComputePipelineCreateInfo
,
ExecutionGraphPipelineCreateInfoAMDX
,
GraphicsPipelineCreateInfo
,
GraphicsShaderGroupCreateInfoNV
,
PipelineShaderStageCreateFlags
,
RayTracingPipelineCreateInfoKHR
,
RayTracingPipelineCreateInfoNV
,
ShaderModule
,
ShaderStageFlagBits
,
SpecializationInfo
, StructureType
PipelineShaderStageCreateInfo | |
|
Instances
data ComputePipelineCreateInfo (es :: [Type]) Source #
VkComputePipelineCreateInfo - Structure specifying parameters of a newly created compute pipeline
Description
The parameters basePipelineHandle
and basePipelineIndex
are
described in more detail in
Pipeline Derivatives.
If a
PipelineCreateFlags2CreateInfoKHR
structure is present in the pNext
chain,
PipelineCreateFlags2CreateInfoKHR
::flags
from that structure is used instead of flags
from this structure.
Valid Usage
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is -1,basePipelineHandle
must be a valid computePipeline
handle
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isNULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag,basePipelineIndex
must be -1 orbasePipelineHandle
must beNULL_HANDLE
- If a push constant
block is declared in a shader, a push constant range in
layout
must match both the shader stage and range - If a
resource variables
is declared in a shader, a descriptor slot in
layout
must match the shader stage - If a
resource variables
is declared in a shader, and the descriptor type is not
DESCRIPTOR_TYPE_MUTABLE_EXT
, a descriptor slot inlayout
must match the descriptor type - If a
resource variables
is declared in a shader as an array, a descriptor slot in
layout
must match the descriptor count -
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
- If
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then the ::deviceGeneratedComputePipelines feature must be enabled - If
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then thepNext
chain must include a pointer to a valid instance ofComputePipelineIndirectBufferInfoNV
specifying the address where the pipeline’s metadata will be saved -
If the
pipelineCreationCacheControl
feature is not enabled,
flags
must not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
orPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
- The
stage
member ofstage
must beSHADER_STAGE_COMPUTE_BIT
- The shader code for
the entry point identified by
stage
and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter - The number of
resources in
layout
accessible to the compute shader stage must be less than or equal toPhysicalDeviceLimits
::maxPerStageResources
- If
shaderEnqueue
is not enabled,
flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
- If
flags
does not includePIPELINE_CREATE_LIBRARY_BIT_KHR
, the shader specified bystage
must not declare theShaderEnqueueAMDX
capability -
If
PipelineCreationFeedbackCreateInfo
::pipelineStageCreationFeedbackCount
is not0
, it must be1
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofPipelineCompilerControlCreateInfoAMD
,PipelineCreateFlags2CreateInfoKHR
,PipelineCreationFeedbackCreateInfo
,PipelineRobustnessCreateInfoEXT
, orSubpassShadingPipelineCreateInfoHUAWEI
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be a valid combination ofPipelineCreateFlagBits
values -
stage
must be a validPipelineShaderStageCreateInfo
structure -
layout
must be a validPipelineLayout
handle - Both of
basePipelineHandle
, andlayout
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
VK_VERSION_1_0,
Pipeline
,
PipelineCreateFlags
,
PipelineLayout
, PipelineShaderStageCreateInfo
,
StructureType
,
createComputePipelines
,
getPipelineIndirectMemoryRequirementsNV
ComputePipelineCreateInfo | |
|
Instances
data VertexInputBindingDescription Source #
VkVertexInputBindingDescription - Structure specifying vertex input binding description
Valid Usage
-
binding
must be less thanPhysicalDeviceLimits
::maxVertexInputBindings
-
stride
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputBindingStride
- If the
VK_KHR_portability_subset
extension is enabled,stride
must be a multiple of, and at least as large as,PhysicalDevicePortabilitySubsetPropertiesKHR
::minVertexInputBindingStrideAlignment
Valid Usage (Implicit)
-
inputRate
must be a validVertexInputRate
value
See Also
VK_VERSION_1_0,
PipelineVertexInputStateCreateInfo
,
VertexInputRate
VertexInputBindingDescription | |
|
Instances
data VertexInputAttributeDescription Source #
VkVertexInputAttributeDescription - Structure specifying vertex input attribute description
Valid Usage
-
location
must be less thanPhysicalDeviceLimits
::maxVertexInputAttributes
-
binding
must be less thanPhysicalDeviceLimits
::maxVertexInputBindings
-
offset
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputAttributeOffset
- The
format features
of
format
must containFORMAT_FEATURE_VERTEX_BUFFER_BIT
-
If the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::vertexAttributeAccessBeyondStride
isFALSE
, the sum ofoffset
plus the size of the vertex attribute data described byformat
must not be greater thanstride
in theVertexInputBindingDescription
referenced inbinding
Valid Usage (Implicit)
-
format
must be a validFormat
value
See Also
VertexInputAttributeDescription | |
|
Instances
data PipelineVertexInputStateCreateInfo (es :: [Type]) Source #
VkPipelineVertexInputStateCreateInfo - Structure specifying parameters of a newly created pipeline vertex input state
Valid Usage
-
vertexBindingDescriptionCount
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputBindings
-
vertexAttributeDescriptionCount
must be less than or equal toPhysicalDeviceLimits
::maxVertexInputAttributes
- For every
binding
specified by each element ofpVertexAttributeDescriptions
, aVertexInputBindingDescription
must exist inpVertexBindingDescriptions
with the same value ofbinding
-
All elements of
pVertexBindingDescriptions
must describe distinct binding numbers -
All elements of
pVertexAttributeDescriptions
must describe distinct attribute locations
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
-
pNext
must beNULL
or a pointer to a valid instance ofPipelineVertexInputDivisorStateCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be0
-
If
vertexBindingDescriptionCount
is not0
,pVertexBindingDescriptions
must be a valid pointer to an array ofvertexBindingDescriptionCount
validVertexInputBindingDescription
structures -
If
vertexAttributeDescriptionCount
is not0
,pVertexAttributeDescriptions
must be a valid pointer to an array ofvertexAttributeDescriptionCount
validVertexInputAttributeDescription
structures
See Also
VK_VERSION_1_0,
GraphicsPipelineCreateInfo
,
GraphicsShaderGroupCreateInfoNV
,
PipelineVertexInputStateCreateFlags
,
StructureType
,
VertexInputAttributeDescription
, VertexInputBindingDescription
PipelineVertexInputStateCreateInfo | |
|
Instances
data PipelineInputAssemblyStateCreateInfo Source #
VkPipelineInputAssemblyStateCreateInfo - Structure specifying parameters of a newly created pipeline input assembly state
Description
Restarting the assembly of primitives discards the most recent index
values if those elements formed an incomplete primitive, and restarts
the primitive assembly using the subsequent indices, but only assembling
the immediately following element through the end of the originally
specified elements. The primitive restart index value comparison is
performed before adding the vertexOffset
value to the index value.
Valid Usage
- If the
primitiveTopologyListRestart
feature is not enabled, and
topology
isPRIMITIVE_TOPOLOGY_POINT_LIST
,PRIMITIVE_TOPOLOGY_LINE_LIST
,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
,PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
, orPRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
,primitiveRestartEnable
must beFALSE
- If the
primitiveTopologyPatchListRestart
feature is not enabled, and
topology
isPRIMITIVE_TOPOLOGY_PATCH_LIST
,primitiveRestartEnable
must beFALSE
- If the
geometryShader
feature is not enabled,
topology
must not be any ofPRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
,PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
,PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
orPRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
- If the
tessellationShader
feature is not enabled,
topology
must not bePRIMITIVE_TOPOLOGY_PATCH_LIST
- If
the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::triangleFans
isFALSE
,topology
must not bePRIMITIVE_TOPOLOGY_TRIANGLE_FAN
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-
pNext
must beNULL
-
flags
must be0
-
topology
must be a validPrimitiveTopology
value
See Also
VK_VERSION_1_0,
Bool32
, GraphicsPipelineCreateInfo
,
PipelineInputAssemblyStateCreateFlags
,
PrimitiveTopology
,
StructureType
PipelineInputAssemblyStateCreateInfo | |
|
Instances
data PipelineTessellationStateCreateInfo (es :: [Type]) Source #
VkPipelineTessellationStateCreateInfo - Structure specifying parameters of a newly created pipeline tessellation state
Valid Usage
-
patchControlPoints
must be greater than zero and less than or equal toPhysicalDeviceLimits
::maxTessellationPatchSize
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
-
pNext
must beNULL
or a pointer to a valid instance ofPipelineTessellationDomainOriginStateCreateInfo
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be0
See Also
VK_VERSION_1_0,
GraphicsPipelineCreateInfo
,
GraphicsShaderGroupCreateInfoNV
,
PipelineTessellationStateCreateFlags
,
StructureType
PipelineTessellationStateCreateInfo | |
|
Instances
data PipelineViewportStateCreateInfo (es :: [Type]) Source #
VkPipelineViewportStateCreateInfo - Structure specifying parameters of a newly created pipeline viewport state
Valid Usage
- If the
multiViewport
feature is not enabled,
viewportCount
must not be greater than1
- If the
multiViewport
feature is not enabled,
scissorCount
must not be greater than1
-
viewportCount
must be less than or equal toPhysicalDeviceLimits
::maxViewports
-
scissorCount
must be less than or equal toPhysicalDeviceLimits
::maxViewports
- The
x
andy
members ofoffset
member of any element ofpScissors
must be greater than or equal to0
- Evaluation of
(
offset.x
+extent.width
) must not cause a signed integer addition overflow for any element ofpScissors
- Evaluation of
(
offset.y
+extent.height
) must not cause a signed integer addition overflow for any element ofpScissors
- If
scissorCount
andviewportCount
are both not dynamic, thenscissorCount
andviewportCount
must be identical - If the
graphics pipeline is being created with
DYNAMIC_STATE_VIEWPORT_WITH_COUNT
set thenviewportCount
must be0
, otherwise it must be greater than0
- If the
graphics pipeline is being created with
DYNAMIC_STATE_SCISSOR_WITH_COUNT
set thenscissorCount
must be0
, otherwise it must be greater than0
-
If the
viewportWScalingEnable
member of aPipelineViewportWScalingStateCreateInfoNV
structure included in thepNext
chain isTRUE
, theviewportCount
member of thePipelineViewportWScalingStateCreateInfoNV
structure must be greater than or equal toPipelineViewportStateCreateInfo
::viewportCount
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofPipelineViewportCoarseSampleOrderStateCreateInfoNV
,PipelineViewportDepthClipControlCreateInfoEXT
,PipelineViewportExclusiveScissorStateCreateInfoNV
,PipelineViewportShadingRateImageStateCreateInfoNV
,PipelineViewportSwizzleStateCreateInfoNV
, orPipelineViewportWScalingStateCreateInfoNV
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be0
See Also
VK_VERSION_1_0,
GraphicsPipelineCreateInfo
,
PipelineViewportStateCreateFlags
,
Rect2D
,
StructureType
, Viewport
PipelineViewportStateCreateInfo | |
|
Instances
data PipelineRasterizationStateCreateInfo (es :: [Type]) Source #
VkPipelineRasterizationStateCreateInfo - Structure specifying parameters of a newly created pipeline rasterization state
Description
The application can also add a
PipelineRasterizationStateRasterizationOrderAMD
structure to the pNext
chain of a
PipelineRasterizationStateCreateInfo
structure. This structure enables
selecting the rasterization order to use when rendering with the
corresponding graphics pipeline as described in
Rasterization Order.
Valid Usage
-
If the
depthClamp
feature is not enabled,
depthClampEnable
must beFALSE
- If
the
fillModeNonSolid
feature is not enabled,
polygonMode
must bePOLYGON_MODE_FILL
orPOLYGON_MODE_FILL_RECTANGLE_NV
- If
the
VK_NV_fill_rectangle
extension is not enabled,polygonMode
must not bePOLYGON_MODE_FILL_RECTANGLE_NV
- If
the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::pointPolygons
isFALSE
, andrasterizerDiscardEnable
isFALSE
,polygonMode
must not bePOLYGON_MODE_POINT
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofDepthBiasRepresentationInfoEXT
,PipelineRasterizationConservativeStateCreateInfoEXT
,PipelineRasterizationDepthClipStateCreateInfoEXT
,PipelineRasterizationLineStateCreateInfoEXT
,PipelineRasterizationProvokingVertexStateCreateInfoEXT
,PipelineRasterizationStateRasterizationOrderAMD
, orPipelineRasterizationStateStreamCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be0
-
polygonMode
must be a validPolygonMode
value -
cullMode
must be a valid combination ofCullModeFlagBits
values -
frontFace
must be a validFrontFace
value
See Also
VK_VERSION_1_0,
Bool32
,
CullModeFlags
,
FrontFace
, GraphicsPipelineCreateInfo
,
PipelineRasterizationStateCreateFlags
,
PolygonMode
,
StructureType
PipelineRasterizationStateCreateInfo | |
|
Instances
data PipelineMultisampleStateCreateInfo (es :: [Type]) Source #
VkPipelineMultisampleStateCreateInfo - Structure specifying parameters of a newly created pipeline multisample state
Description
Each bit in the sample mask is associated with a unique
sample index
as defined for the
coverage mask.
Each bit b for mask word w in the sample mask corresponds to sample
index i, where i = 32 × w + b. pSampleMask
has a length equal to ⌈
rasterizationSamples
/ 32 ⌉ words.
If pSampleMask
is NULL
, it is treated as if the mask has all bits
set to 1
.
Valid Usage
-
If the
sampleRateShading
feature is not enabled,
sampleShadingEnable
must beFALSE
-
If the
alphaToOne
feature is not enabled,
alphaToOneEnable
must beFALSE
-
minSampleShading
must be in the range [0,1] -
If the
VK_NV_framebuffer_mixed_samples
extension is enabled, and if the subpass has any color attachments andrasterizationSamples
is greater than the number of color samples, thensampleShadingEnable
must beFALSE
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofPipelineCoverageModulationStateCreateInfoNV
,PipelineCoverageReductionStateCreateInfoNV
,PipelineCoverageToColorStateCreateInfoNV
, orPipelineSampleLocationsStateCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be0
-
rasterizationSamples
must be a validSampleCountFlagBits
value - If
pSampleMask
is notNULL
,pSampleMask
must be a valid pointer to an array of \(\lceil{\mathit{rasterizationSamples} \over 32}\rceil\)SampleMask
values
See Also
VK_VERSION_1_0,
Bool32
, GraphicsPipelineCreateInfo
,
PipelineMultisampleStateCreateFlags
,
SampleCountFlagBits
,
SampleMask
,
StructureType
PipelineMultisampleStateCreateInfo | |
|
Instances
data PipelineColorBlendAttachmentState Source #
VkPipelineColorBlendAttachmentState - Structure specifying a pipeline color blend attachment state
Valid Usage
-
If the
dualSrcBlend
feature is not enabled,
srcColorBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
-
If the
dualSrcBlend
feature is not enabled,
dstColorBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
-
If the
dualSrcBlend
feature is not enabled,
srcAlphaBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
-
If the
dualSrcBlend
feature is not enabled,
dstAlphaBlendFactor
must not beBLEND_FACTOR_SRC1_COLOR
,BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
,BLEND_FACTOR_SRC1_ALPHA
, orBLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
- If
either of
colorBlendOp
oralphaBlendOp
is an advanced blend operation, thencolorBlendOp
must equalalphaBlendOp
-
If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendIndependentBlend
isFALSE
andcolorBlendOp
is an advanced blend operation, thencolorBlendOp
must be the same for all attachments -
If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendIndependentBlend
isFALSE
andalphaBlendOp
is an advanced blend operation, thenalphaBlendOp
must be the same for all attachments -
If
PhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendAllOperations
isFALSE
, thencolorBlendOp
must not beBLEND_OP_ZERO_EXT
,BLEND_OP_SRC_EXT
,BLEND_OP_DST_EXT
,BLEND_OP_SRC_OVER_EXT
,BLEND_OP_DST_OVER_EXT
,BLEND_OP_SRC_IN_EXT
,BLEND_OP_DST_IN_EXT
,BLEND_OP_SRC_OUT_EXT
,BLEND_OP_DST_OUT_EXT
,BLEND_OP_SRC_ATOP_EXT
,BLEND_OP_DST_ATOP_EXT
,BLEND_OP_XOR_EXT
,BLEND_OP_INVERT_EXT
,BLEND_OP_INVERT_RGB_EXT
,BLEND_OP_LINEARDODGE_EXT
,BLEND_OP_LINEARBURN_EXT
,BLEND_OP_VIVIDLIGHT_EXT
,BLEND_OP_LINEARLIGHT_EXT
,BLEND_OP_PINLIGHT_EXT
,BLEND_OP_HARDMIX_EXT
,BLEND_OP_PLUS_EXT
,BLEND_OP_PLUS_CLAMPED_EXT
,BLEND_OP_PLUS_CLAMPED_ALPHA_EXT
,BLEND_OP_PLUS_DARKER_EXT
,BLEND_OP_MINUS_EXT
,BLEND_OP_MINUS_CLAMPED_EXT
,BLEND_OP_CONTRAST_EXT
,BLEND_OP_INVERT_OVG_EXT
,BLEND_OP_RED_EXT
,BLEND_OP_GREEN_EXT
, orBLEND_OP_BLUE_EXT
- If
colorBlendOp
oralphaBlendOp
is an advanced blend operation, thencolorAttachmentCount
of the subpass this pipeline is compiled against must be less than or equal toPhysicalDeviceBlendOperationAdvancedPropertiesEXT
::advancedBlendMaxColorAttachments
-
If the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::constantAlphaColorBlendFactors
isFALSE
,srcColorBlendFactor
must not beBLEND_FACTOR_CONSTANT_ALPHA
orBLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
-
If the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::constantAlphaColorBlendFactors
isFALSE
,dstColorBlendFactor
must not beBLEND_FACTOR_CONSTANT_ALPHA
orBLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
Valid Usage (Implicit)
-
srcColorBlendFactor
must be a validBlendFactor
value
-
dstColorBlendFactor
must be a validBlendFactor
value -
colorBlendOp
must be a validBlendOp
value -
srcAlphaBlendFactor
must be a validBlendFactor
value -
dstAlphaBlendFactor
must be a validBlendFactor
value -
alphaBlendOp
must be a validBlendOp
value -
colorWriteMask
must be a valid combination ofColorComponentFlagBits
values
See Also
VK_VERSION_1_0,
BlendFactor
,
BlendOp
,
Bool32
,
ColorComponentFlags
,
PipelineColorBlendStateCreateInfo
PipelineColorBlendAttachmentState | |
|
Instances
data PipelineColorBlendStateCreateInfo (es :: [Type]) Source #
VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of a newly created pipeline color blend state
Valid Usage
- If the
independentBlend
feature is not enabled, all elements of
pAttachments
must be identical
- If
the
logicOp
feature is not enabled,
logicOpEnable
must beFALSE
- If
logicOpEnable
isTRUE
,logicOp
must be a validLogicOp
value -
If the
rasterizationOrderColorAttachmentAccess
feature is not enabled,
flags
must not includePIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
- If
attachmentCount
is not0
, and any ofDYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
,DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
,DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
, orDYNAMIC_STATE_COLOR_WRITE_MASK_EXT
are not set,pAttachments
must be a valid pointer to an array ofattachmentCount
validPipelineColorBlendAttachmentState
structures
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofPipelineColorBlendAdvancedStateCreateInfoEXT
orPipelineColorWriteCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be a valid combination ofPipelineColorBlendStateCreateFlagBits
values - If
attachmentCount
is not0
, andpAttachments
is notNULL
,pAttachments
must be a valid pointer to an array ofattachmentCount
validPipelineColorBlendAttachmentState
structures
See Also
VK_VERSION_1_0,
Bool32
, GraphicsPipelineCreateInfo
,
LogicOp
,
PipelineColorBlendAttachmentState
,
PipelineColorBlendStateCreateFlags
,
StructureType
PipelineColorBlendStateCreateInfo | |
|
Instances
data PipelineDynamicStateCreateInfo Source #
VkPipelineDynamicStateCreateInfo - Structure specifying parameters of a newly created pipeline dynamic state
Valid Usage
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
-
pNext
must beNULL
-
flags
must be0
- If
dynamicStateCount
is not0
,pDynamicStates
must be a valid pointer to an array ofdynamicStateCount
validDynamicState
values
See Also
VK_VERSION_1_0,
DynamicState
,
GraphicsPipelineCreateInfo
,
PipelineDynamicStateCreateFlags
,
RayTracingPipelineCreateInfoKHR
,
StructureType
PipelineDynamicStateCreateInfo | |
|
Instances
Show PipelineDynamicStateCreateInfo Source # | |
Defined in Vulkan.Core10.Pipeline | |
FromCStruct PipelineDynamicStateCreateInfo Source # | |
ToCStruct PipelineDynamicStateCreateInfo Source # | |
Defined in Vulkan.Core10.Pipeline 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 |
data StencilOpState Source #
VkStencilOpState - Structure specifying stencil operation state
Valid Usage (Implicit)
See Also
VK_VERSION_1_0,
CompareOp
,
PipelineDepthStencilStateCreateInfo
,
StencilOp
StencilOpState | |
|
Instances
data PipelineDepthStencilStateCreateInfo Source #
VkPipelineDepthStencilStateCreateInfo - Structure specifying parameters of a newly created pipeline depth stencil state
Valid Usage
-
If the
depthBounds
feature is not enabled,
depthBoundsTestEnable
must beFALSE
-
If the
VK_KHR_portability_subset
extension is enabled, andPhysicalDevicePortabilitySubsetFeaturesKHR
::separateStencilMaskRef
isFALSE
, and the value ofPipelineDepthStencilStateCreateInfo
::stencilTestEnable
isTRUE
, and the value ofPipelineRasterizationStateCreateInfo
::cullMode
isCULL_MODE_NONE
, the value ofreference
in each of theStencilOpState
structs infront
andback
must be the same -
If the
rasterizationOrderDepthAttachmentAccess
feature is not enabled,
flags
must not includePIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
-
If the
rasterizationOrderStencilAttachmentAccess
feature is not enabled,
flags
must not includePIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-
pNext
must beNULL
-
flags
must be a valid combination ofPipelineDepthStencilStateCreateFlagBits
values -
depthCompareOp
must be a validCompareOp
value -
front
must be a validStencilOpState
structure -
back
must be a validStencilOpState
structure
See Also
VK_VERSION_1_0,
Bool32
,
CompareOp
, GraphicsPipelineCreateInfo
,
PipelineDepthStencilStateCreateFlags
,
StencilOpState
, StructureType
PipelineDepthStencilStateCreateInfo | |
|
Instances
data GraphicsPipelineCreateInfo (es :: [Type]) Source #
VkGraphicsPipelineCreateInfo - Structure specifying parameters of a newly created graphics pipeline
Description
The parameters basePipelineHandle
and basePipelineIndex
are
described in more detail in
Pipeline Derivatives.
If any shader stage fails to compile, the compile log will be reported
back to the application, and
ERROR_INVALID_SHADER_NV
will be generated.
Note
With VK_EXT_extended_dynamic_state3
, it is possible that many of the
GraphicsPipelineCreateInfo
members above can be NULL
because all
their state is dynamic and therefore ignored. This is optional so the
application can still use a valid pointer if it needs to set the
pNext
or flags
fields to specify state for other extensions.
The state required for a graphics pipeline is divided into vertex input state, pre-rasterization shader state, fragment shader state, and fragment output state.
Vertex Input State
Vertex input state is defined by:
If this pipeline specifies
pre-rasterization state
either directly or by including it as a pipeline library and its
pStages
includes a vertex shader, this state must be specified to
create a
complete graphics pipeline.
If a pipeline includes
GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT
in
GraphicsPipelineLibraryCreateInfoEXT
::flags
either explicitly or as a default, and either the conditions requiring
this state for a
complete graphics pipeline
are met or this pipeline does not specify
pre-rasterization state
in any way, that pipeline must specify this state directly.
Pre-Rasterization Shader State
Pre-rasterization shader state is defined by:
PipelineShaderStageCreateInfo
entries for:- Vertex shaders
- Tessellation control shaders
- Tessellation evaluation shaders
- Geometry shaders
- Task shaders
- Mesh shaders
Within the
PipelineLayout
, all descriptor sets with pre-rasterization shader bindings ifPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
was specified.- If
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
was not specified, the full pipeline layout must be specified.
- If
PipelineViewportStateCreateInfo
PipelineRasterizationStateCreateInfo
PipelineTessellationStateCreateInfo
RenderPass
andsubpass
parameter- The
viewMask
parameter ofPipelineRenderingCreateInfo
(formats are ignored) PipelineDiscardRectangleStateCreateInfoEXT
PipelineFragmentShadingRateStateCreateInfoKHR
This state must be specified to create a complete graphics pipeline.
If either the pNext
chain includes a
GraphicsPipelineLibraryCreateInfoEXT
structure with
GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
included in flags
, or it is not specified and would default to include
that value, this state must be specified in the pipeline.
Fragment Shader State
Fragment shader state is defined by:
- A
PipelineShaderStageCreateInfo
entry for the fragment shader Within the
PipelineLayout
, all descriptor sets with fragment shader bindings ifPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
was specified.- If
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
was not specified, the full pipeline layout must be specified.
- If
PipelineMultisampleStateCreateInfo
if sample shading is enabled orrenderpass
is notNULL_HANDLE
PipelineDepthStencilStateCreateInfo
RenderPass
andsubpass
parameter- The
viewMask
parameter ofPipelineRenderingCreateInfo
(formats are ignored) PipelineFragmentShadingRateStateCreateInfoKHR
PipelineFragmentShadingRateEnumStateCreateInfoNV
PipelineRepresentativeFragmentTestStateCreateInfoNV
- Inclusion/omission of the
PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
flag - Inclusion/omission of the
PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
flag
If a pipeline specifies
pre-rasterization state
either directly or by including it as a pipeline library and
rasterizerDiscardEnable
is set to
FALSE
or
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
is used, this state must be specified to create a
complete graphics pipeline.
If a pipeline includes
GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
in
GraphicsPipelineLibraryCreateInfoEXT
::flags
either explicitly or as a default, and either the conditions requiring
this state for a
complete graphics pipeline
are met or this pipeline does not specify
pre-rasterization state
in any way, that pipeline must specify this state directly.
Fragment Output State
Fragment output state is defined by:
PipelineColorBlendStateCreateInfo
RenderPass
andsubpass
parameterPipelineMultisampleStateCreateInfo
PipelineRenderingCreateInfo
AttachmentSampleCountInfoAMD
AttachmentSampleCountInfoNV
ExternalFormatANDROID
- Inclusion/omission of the
PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
andPIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
flags
If a pipeline specifies
pre-rasterization state
either directly or by including it as a pipeline library and
rasterizerDiscardEnable
is set to
FALSE
or
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
is used, this state must be specified to create a
complete graphics pipeline.
If a pipeline includes
GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
in
GraphicsPipelineLibraryCreateInfoEXT
::flags
either explicitly or as a default, and either the conditions requiring
this state for a
complete graphics pipeline
are met or this pipeline does not specify
pre-rasterization state
in any way, that pipeline must specify this state directly.
Dynamic State
Dynamic state values set via pDynamicState
must be ignored if the
state they correspond to is not otherwise statically set by one of the
state subsets used to create the pipeline. Additionally, setting dynamic
state values must not modify whether state in a linked library is
static or dynamic; this is set and unchangeable when the library is
created. For example, if a pipeline only included
pre-rasterization shader state,
then any dynamic state value corresponding to depth or stencil testing
has no effect. Any linked library that has dynamic state enabled that
same dynamic state must also be enabled in all the other linked
libraries to which that dynamic state applies.
Complete Graphics Pipelines
A complete graphics pipeline always includes pre-rasterization shader state, with other subsets included depending on that state as specified in the above sections.
Graphics Pipeline Library Layouts
If different subsets are linked together with pipeline layouts created
with
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
,
the final effective pipeline layout is effectively the union of the
linked pipeline layouts. When binding descriptor sets for this pipeline,
the pipeline layout used must be compatible with this union. This
pipeline layout can be overridden when linking with
PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
by providing a PipelineLayout
that is
compatible
with this union other than
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
,
or when linking without
PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
by providing a PipelineLayout
that is fully
compatible
with this union.
If a
PipelineCreateFlags2CreateInfoKHR
structure is present in the pNext
chain,
PipelineCreateFlags2CreateInfoKHR
::flags
from that structure is used instead of flags
from this structure.
Valid Usage
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineIndex
is -1,basePipelineHandle
must be a valid graphicsPipeline
handle
- If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag, andbasePipelineHandle
isNULL_HANDLE
,basePipelineIndex
must be a valid index into the calling command’spCreateInfos
parameter - If
flags
contains thePIPELINE_CREATE_DERIVATIVE_BIT
flag,basePipelineIndex
must be -1 orbasePipelineHandle
must beNULL_HANDLE
- If a push constant
block is declared in a shader, a push constant range in
layout
must match both the shader stage and range - If a
resource variables
is declared in a shader, a descriptor slot in
layout
must match the shader stage - If a
resource variables
is declared in a shader, and the descriptor type is not
DESCRIPTOR_TYPE_MUTABLE_EXT
, a descriptor slot inlayout
must match the descriptor type - If a
resource variables
is declared in a shader as an array, a descriptor slot in
layout
must match the descriptor count - If the pipeline
requires
pre-rasterization shader state
the
stage
member of one element ofpStages
must beSHADER_STAGE_VERTEX_BIT
orSHADER_STAGE_MESH_BIT_EXT
- If the pipeline
requires
pre-rasterization shader state
the geometric shader stages provided in
pStages
must be either from the mesh shading pipeline (stage
isSHADER_STAGE_TASK_BIT_EXT
orSHADER_STAGE_MESH_BIT_EXT
) or from the primitive shading pipeline (stage
isSHADER_STAGE_VERTEX_BIT
,SHADER_STAGE_TESSELLATION_CONTROL_BIT
,SHADER_STAGE_TESSELLATION_EVALUATION_BIT
, orSHADER_STAGE_GEOMETRY_BIT
) - The shader stages
for
SHADER_STAGE_TASK_BIT_EXT
orSHADER_STAGE_MESH_BIT_EXT
must use either theTaskNV
andMeshNV
Execution
Model
or theTaskEXT
andMeshEXT
Execution
Model
, but must not use both - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes a tessellation control shader stage, it must include a tessellation evaluation shader stage - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes a tessellation evaluation shader stage, it must include a tessellation control shader stage - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes a tessellation control shader stage, and theVK_EXT_extended_dynamic_state3
extension is not enabled or theDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
dynamic state is not set,pTessellationState
must be a valid pointer to a validPipelineTessellationStateCreateInfo
structure - If
pTessellationState
is notNULL
it must be a pointer to a validPipelineTessellationStateCreateInfo
structure - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionMode
instruction specifying the type of subdivision in the pipeline - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes tessellation shader stages, and the shader code of both stages contain anOpExecutionMode
instruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision mode - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes tessellation shader stages, the shader code of at least one stage must contain anOpExecutionMode
instruction specifying the output patch size in the pipeline - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes tessellation shader stages, and the shader code of both contain anOpExecutionMode
instruction specifying the out patch size in the pipeline, they must both specify the same patch size - If the pipeline is
being created with
pre-rasterization shader state
and
vertex input state
and
pStages
includes tessellation shader stages, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted isFALSE
, thetopology
member ofpInputAssembly
must bePRIMITIVE_TOPOLOGY_PATCH_LIST
- If the pipeline
is being created with
pre-rasterization shader state
and
vertex input state
and the
topology
member ofpInputAssembly
isPRIMITIVE_TOPOLOGY_PATCH_LIST
, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted isFALSE
, thenpStages
must include tessellation shader stages - If
the pipeline is being created with a
TessellationEvaluation
Execution
Model
, noGeometry
Execution
Model
, uses thePointMode
Execution
Mode
, and shaderTessellationAndGeometryPointSize is enabled, aPointSize
decorated variable must be written to if maintenance5 is not enabled - If the pipeline
is being created with a
Vertex
Execution
Model
and noTessellationEvaluation
orGeometry
Execution
Model
, and thetopology
member ofpInputAssembly
isPRIMITIVE_TOPOLOGY_POINT_LIST
, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted isFALSE
, aPointSize
decorated variable must be written to if maintenance5 is not enabled - If
maintenance5
is enabled and a
PointSize
decorated variable is written to, all execution paths must write to aPointSize
decorated variable - If
the pipeline is being created with a
TessellationEvaluation
Execution
Model
, noGeometry
Execution
Model
, uses thePointMode
Execution
Mode
, and shaderTessellationAndGeometryPointSize is not enabled, aPointSize
decorated variable must not be written to -
If the pipeline is being created with a
Geometry
Execution
Model
, uses theOutputPoints
Execution
Mode
, and shaderTessellationAndGeometryPointSize is enabled, aPointSize
decorated variable must be written to for every vertex emitted if maintenance5 is not enabled - If the pipeline
is being created with a
Geometry
Execution
Model
, uses theOutputPoints
Execution
Mode
, and shaderTessellationAndGeometryPointSize is not enabled, aPointSize
decorated variable must not be written to - If the pipeline
requires
pre-rasterization shader state
and
pStages
includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain anOpExecutionMode
instruction specifying an input primitive type that is compatible with the primitive topology specified inpInputAssembly
- If the pipeline
requires
pre-rasterization shader state
and
pStages
includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain anOpExecutionMode
instruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stages - If the pipeline
requires
pre-rasterization shader state
and
fragment shader state,
it includes both a fragment shader and a geometry shader, and the
fragment shader code reads from an input variable that is decorated
with
PrimitiveId
, then the geometry shader code must write to a matching output variable, decorated withPrimitiveId
, in all execution paths - If the
pipeline requires
pre-rasterization shader state,
it includes a mesh shader and the fragment shader code reads from an
input variable that is decorated with
PrimitiveId
, then the mesh shader code must write to a matching output variable, decorated withPrimitiveId
, in all execution paths - If
renderPass
is notNULL_HANDLE
and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined asATTACHMENT_UNUSED
insubpass
- If the pipeline
requires
pre-rasterization shader state
and multiple pre-rasterization shader stages are included in
pStages
, the shader code for the entry points identified by thosepStages
and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter - If the pipeline requires pre-rasterization shader state and fragment shader state, the fragment shader and last pre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter
- If
renderPass
is notNULL_HANDLE
, and the pipeline is being created with fragment output interface state, then for each color attachment in the subpass, if the potential format features of the format of the corresponding attachment description do not containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
, then theblendEnable
member of the corresponding element of thepAttachments
member ofpColorBlendState
must beFALSE
- If
renderPass
is notNULL_HANDLE
, and the pipeline is being created with fragment output interface state, and thepColorBlendState
pointer is notNULL
, and the subpass uses color attachments, theattachmentCount
member ofpColorBlendState
must be equal to thecolorAttachmentCount
used to createsubpass
- If the
pipeline requires
pre-rasterization shader state,
and
pViewportState->pViewports
is not dynamic, thenpViewportState->pViewports
must be a valid pointer to an array ofpViewportState->viewportCount
validViewport
structures - If the
pipeline requires
pre-rasterization shader state,
and
pViewportState->pScissors
is not dynamic, thenpViewportState->pScissors
must be a valid pointer to an array ofpViewportState->scissorCount
Rect2D
structures - If the
pipeline requires
pre-rasterization shader state,
and the
wideLines
feature is not enabled, and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_LINE_WIDTH
, thelineWidth
member ofpRasterizationState
must be1.0
- If
the pipeline requires
pre-rasterization shader state,
and the
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
dynamic state is enabled or therasterizerDiscardEnable
member ofpRasterizationState
isFALSE
, and either theVK_EXT_extended_dynamic_state3
extension is not enabled, or either theDYNAMIC_STATE_VIEWPORT_WITH_COUNT
orDYNAMIC_STATE_SCISSOR_WITH_COUNT
dynamic states are not set,pViewportState
must be a valid pointer to a validPipelineViewportStateCreateInfo
structure - If
pViewportState
is notNULL
it must be a valid pointer to a validPipelineViewportStateCreateInfo
structure - If the
pipeline requires
pre-rasterization shader state,
and the graphics pipeline state was created with the
DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
dynamic state enabled,pViewportState
must be a valid pointer to a validPipelineViewportStateCreateInfo
structure - If the
pipeline requires
fragment output interface state,
and the
VK_EXT_extended_dynamic_state3
extension is not enabled or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
,DYNAMIC_STATE_SAMPLE_MASK_EXT
, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
dynamic states is not set, or alphaToOne is enabled on the device andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
is not set,pMultisampleState
must be a valid pointer to a validPipelineMultisampleStateCreateInfo
structure - If
pMultisampleState
is notNULL
is must be a valid pointer to a validPipelineMultisampleStateCreateInfo
structure - If
the pipeline is being created with
fragment shader state,
the
PipelineMultisampleStateCreateInfo
::alphaToCoverageEnable
is not ignored and isTRUE
, then the Fragment Output Interface must contain a variable for the alphaComponent
word inLocation
0 atIndex
0 - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with fragment shader state, andsubpass
uses a depth/stencil attachment, and theVK_EXT_extended_dynamic_state3
extension is not enabled or, any of theDYNAMIC_STATE_DEPTH_TEST_ENABLE
,DYNAMIC_STATE_DEPTH_WRITE_ENABLE
,DYNAMIC_STATE_DEPTH_COMPARE_OP
,DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE
,DYNAMIC_STATE_STENCIL_TEST_ENABLE
,DYNAMIC_STATE_STENCIL_OP
, orDYNAMIC_STATE_DEPTH_BOUNDS
dynamic states are not set,pDepthStencilState
must be a valid pointer to a validPipelineDepthStencilStateCreateInfo
structure - If
pDepthStencilState
is notNULL
it must be a valid pointer to a validPipelineDepthStencilStateCreateInfo
structure - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with fragment output interface state, andsubpass
uses color attachments, andVK_EXT_extended_dynamic_state3
extension is not enabled, or any of theDYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
,DYNAMIC_STATE_LOGIC_OP_EXT
,DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
,DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
,DYNAMIC_STATE_COLOR_WRITE_MASK_EXT
, orDYNAMIC_STATE_BLEND_CONSTANTS
dynamic states are not set,pColorBlendState
must be a valid pointer to a validPipelineColorBlendStateCreateInfo
structure - If the
pipeline requires
pre-rasterization shader state,
the
depthBiasClamp
feature is not enabled, no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DEPTH_BIAS
, and thedepthBiasEnable
member ofpRasterizationState
isTRUE
, thedepthBiasClamp
member ofpRasterizationState
must be0.0
- If the
pipeline requires
fragment shader state,
and the
VK_EXT_depth_range_unrestricted
extension is not enabled and no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DEPTH_BOUNDS
, and thedepthBoundsTestEnable
member ofpDepthStencilState
isTRUE
, theminDepthBounds
andmaxDepthBounds
members ofpDepthStencilState
must be between0.0
and1.0
, inclusive - If the
pipeline requires
fragment shader state
or
fragment output interface state,
and
rasterizationSamples
andsampleLocationsInfo
are not dynamic, andPipelineSampleLocationsStateCreateInfoEXT
::sampleLocationsEnable
included in thepNext
chain ofpMultisampleState
isTRUE
,sampleLocationsInfo.sampleLocationGridSize.width
must evenly divideMultisamplePropertiesEXT
::sampleLocationGridSize.width
as returned bygetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If the
pipeline requires
fragment shader state
or
fragment output interface state,
and
rasterizationSamples
andsampleLocationsInfo
are not dynamic, andPipelineSampleLocationsStateCreateInfoEXT
::sampleLocationsEnable
the included in thepNext
chain ofpMultisampleState
isTRUE
orDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
is used,sampleLocationsInfo.sampleLocationGridSize.height
must evenly divideMultisamplePropertiesEXT
::sampleLocationGridSize.height
as returned bygetPhysicalDeviceMultisamplePropertiesEXT
with asamples
parameter equalingrasterizationSamples
- If the
pipeline requires
fragment shader state
or
fragment output interface state,
and
rasterizationSamples
andsampleLocationsInfo
are not dynamic, andPipelineSampleLocationsStateCreateInfoEXT
::sampleLocationsEnable
included in thepNext
chain ofpMultisampleState
isTRUE
orDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
is used,sampleLocationsInfo.sampleLocationsPerPixel
must equalrasterizationSamples
- If
the pipeline requires
fragment shader state,
and the
sampleLocationsEnable
member of aPipelineSampleLocationsStateCreateInfoEXT
structure included in thepNext
chain ofpMultisampleState
isTRUE
, the fragment shader code must not statically use the extended instructionInterpolateAtSample
-
If the pipeline requires
fragment output interface state,
and none of the
VK_AMD_mixed_attachment_samples
extension, theVK_NV_framebuffer_mixed_samples
extension, or the multisampledRenderToSingleSampled feature are enabled,rasterizationSamples
is not dynamic, and ifsubpass
uses color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must be the same as the sample count for those subpass attachments - If the pipeline
requires
fragment output interface state,
and the
VK_AMD_mixed_attachment_samples
extension is enabled,rasterizationSamples
is not dynamic, and ifsubpass
uses color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must equal the maximum of the sample counts of those subpass attachments - If
renderPass
is notNULL_HANDLE
, theVK_EXT_multisampled_render_to_single_sampled
extension is enabled,rasterizationSamples
is not dynamic, andsubpass
has aMultisampledRenderToSingleSampledInfoEXT
structure included in theSubpassDescription2
::pNext
chain withmultisampledRenderToSingleSampledEnable
equal toTRUE
, then therasterizationSamples
member ofpMultisampleState
must be equal toMultisampledRenderToSingleSampledInfoEXT
::rasterizationSamples
- If the pipeline
requires
fragment output interface state,
the
VK_NV_framebuffer_mixed_samples
extension is enabled,rasterizationSamples
is not dynamic, and ifsubpass
has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then therasterizationSamples
member ofpMultisampleState
must be the same as the sample count of the depth/stencil attachment - If the pipeline
requires
fragment output interface state,
the
VK_NV_framebuffer_mixed_samples
extension is enabled,rasterizationSamples
is not dynamic, and ifsubpass
has any color attachments, then therasterizationSamples
member ofpMultisampleState
must be greater than or equal to the sample count for those subpass attachments - If
the pipeline requires
fragment output interface state,
the
VK_NV_coverage_reduction_mode
extension is enabled, andrasterizationSamples
is not dynamic, the coverage reduction mode specified byPipelineCoverageReductionStateCreateInfoNV
::coverageReductionMode
, therasterizationSamples
member ofpMultisampleState
and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned bygetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
- If the pipeline
requires
fragment output interface state,
rasterizationSamples
is not dynamic, andsubpass
does not use any color and/or depth/stencil attachments, then therasterizationSamples
member ofpMultisampleState
must follow the rules for a zero-attachment subpass - If
renderPass
is notNULL_HANDLE
,subpass
must be a valid subpass withinrenderPass
- If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,subpass
viewMask is not0
, andmultiviewTessellationShader
is not enabled, thenpStages
must not include tessellation shaders - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,subpass
viewMask is not0
, andmultiviewGeometryShader
is not enabled, thenpStages
must not include a geometry shader - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andsubpass
viewMask is not0
, all of the shaders in the pipeline must not write to theLayer
built-in output - If
renderPass
is notNULL_HANDLE
and the pipeline is being created with pre-rasterization shader state, andsubpass
viewMask is not0
, then all of the shaders in the pipeline must not include variables decorated with theLayer
built-in decoration in their interfaces - If
renderPass
is notNULL_HANDLE
and the pipeline is being created with pre-rasterization shader state, andsubpass
viewMask is not0
, then all of the shaders in the pipeline must not include variables decorated with theViewMask
built-in decoration in their interfaces - If
renderPass
is notNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,subpass
viewMask is not0
, andmultiviewMeshShader
is not enabled, thenpStages
must not include a mesh shader -
flags
must not contain thePIPELINE_CREATE_DISPATCH_BASE
flag - If the pipeline
requires
fragment shader state
and an input attachment was referenced by an
aspectMask
atrenderPass
creation time, the fragment shader must only read from the aspects that were specified for that input attachment - The number of
resources in
layout
accessible to each shader stage that is used by the pipeline must be less than or equal toPhysicalDeviceLimits
::maxPerStageResources
- If the
pipeline requires
pre-rasterization shader state,
and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT_W_SCALING_NV
, and theviewportWScalingEnable
member of aPipelineViewportWScalingStateCreateInfoNV
structure, included in thepNext
chain ofpViewportState
, isTRUE
, thepViewportWScalings
member of thePipelineViewportWScalingStateCreateInfoNV
must be a pointer to an array ofPipelineViewportWScalingStateCreateInfoNV
::viewportCount
validViewportWScalingNV
structures - If the
pipeline requires
pre-rasterization shader state,
and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
, and ifpViewportState->pNext
chain includes aPipelineViewportExclusiveScissorStateCreateInfoNV
structure, and if itsexclusiveScissorCount
member is not0
, then itspExclusiveScissors
member must be a valid pointer to an array ofexclusiveScissorCount
Rect2D
structures - If
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV
is included in thepDynamicStates
array then the implementation must support at leastspecVersion
2
of theVK_NV_scissor_exclusive
extension - If the
pipeline requires
pre-rasterization shader state,
and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV
, and ifpViewportState->pNext
chain includes aPipelineViewportShadingRateImageStateCreateInfoNV
structure, then itspShadingRatePalettes
member must be a valid pointer to an array ofviewportCount
validShadingRatePaletteNV
structures - If the
pipeline requires
pre-rasterization shader state,
and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_DISCARD_RECTANGLE_EXT
, and ifpNext
chain includes aPipelineDiscardRectangleStateCreateInfoEXT
structure, and if itsdiscardRectangleCount
member is not0
, then itspDiscardRectangles
member must be a valid pointer to an array ofdiscardRectangleCount
Rect2D
structures - If
DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT
is included in thepDynamicStates
array then the implementation must support at leastspecVersion
2
of theVK_EXT_discard_rectangles
extension - If
DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT
is included in thepDynamicStates
array then the implementation must support at leastspecVersion
2
of theVK_EXT_discard_rectangles
extension - If the pipeline
requires
vertex input state,
and
pVertexInputState
is not dynamic, thenpVertexInputState
must be a valid pointer to a validPipelineVertexInputStateCreateInfo
structure - If the pipeline is
being created with
vertex input state
and
pVertexInputState
is not dynamic, then all variables with theInput
storage class decorated withLocation
in theVertex
Execution
Model
OpEntryPoint
must contain a location inVertexInputAttributeDescription
::location
- If the pipeline
requires
vertex input state
and
pVertexInputState
is not dynamic, then the numeric type associated with allInput
variables of the correspondingLocation
in theVertex
Execution
Model
OpEntryPoint
must be the same asVertexInputAttributeDescription
::format
- If the
pipeline is being created with
vertex input state
and
pVertexInputState
is not dynamic, andVertexInputAttributeDescription
::format
has a 64-bit component, then the scalar width associated with allInput
variables of the correspondingLocation
in theVertex
Execution
Model
OpEntryPoint
must be 64-bit - If the
pipeline is being created with
vertex input state
and
pVertexInputState
is not dynamic, and the scalar width associated with aLocation
decoratedInput
variable in theVertex
Execution
Model
OpEntryPoint
is 64-bit, then the correspondingVertexInputAttributeDescription
::format
must have a 64-bit component - If the
pipeline is being created with
vertex input state
and
pVertexInputState
is not dynamic, andVertexInputAttributeDescription
::format
has a 64-bit component, then allInput
variables at the correspondingLocation
in theVertex
Execution
Model
OpEntryPoint
must not use components that are not present in the format -
If the pipeline requires
vertex input state,
and the
VK_EXT_extended_dynamic_state3
extension is not enabled, or eitherDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
, orDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic states are not set, or dynamicPrimitiveTopologyUnrestricted isFALSE
,pInputAssemblyState
must be a valid pointer to a validPipelineInputAssemblyStateCreateInfo
structure - If
pInputAssemblyState
is notNULL
it must be a valid pointer to a validPipelineInputAssemblyStateCreateInfo
structure - If the pipeline
requires
pre-rasterization shader state,
the
Xfb
execution mode can be specified by no more than one shader stage inpStages
- If the pipeline
requires
pre-rasterization shader state,
and any shader stage in
pStages
specifiesXfb
execution mode it must be the last pre-rasterization shader stage - If the
pipeline requires
pre-rasterization shader state,
and a
PipelineRasterizationStateStreamCreateInfoEXT
::rasterizationStream
value other than zero is specified, all variables in the output interface of the entry point being compiled decorated withPosition
,PointSize
,ClipDistance
, orCullDistance
must be decorated with identicalStream
values that match therasterizationStream
- If the
pipeline requires
pre-rasterization shader state,
and
PipelineRasterizationStateStreamCreateInfoEXT
::rasterizationStream
is zero, or not specified, all variables in the output interface of the entry point being compiled decorated withPosition
,PointSize
,ClipDistance
, orCullDistance
must be decorated with aStream
value of zero, or must not specify theStream
decoration - If the
pipeline requires
pre-rasterization shader state,
and the last
pre-rasterization shader stage
is a geometry shader, and that geometry shader uses the
GeometryStreams
capability, thenPhysicalDeviceTransformFeedbackFeaturesEXT
::geometryStreams
feature must be enabled - If the pipeline
requires
pre-rasterization shader state,
and there are any mesh shader stages in the pipeline there must
not be any shader stage in the pipeline with a
Xfb
execution mode - If
the pipeline requires
pre-rasterization shader state
and at least one of
fragment output interface state
or
fragment shader state,
and
pMultisampleState
is notNULL
, thelineRasterizationMode
member of aPipelineRasterizationLineStateCreateInfoEXT
structure included in thepNext
chain ofpRasterizationState
isLINE_RASTERIZATION_MODE_BRESENHAM_EXT
orLINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
, then thealphaToCoverageEnable
,alphaToOneEnable
, andsampleShadingEnable
members ofpMultisampleState
must all beFALSE
- If the
pipeline requires
pre-rasterization shader state,
the
stippledLineEnable
member ofPipelineRasterizationLineStateCreateInfoEXT
isTRUE
, and no element of thepDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_LINE_STIPPLE_EXT
, then thelineStippleFactor
member ofPipelineRasterizationLineStateCreateInfoEXT
must be in the range [1,256] -
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
- If the
extendedDynamicState
feature is not enabled, and the value of
ApplicationInfo
::apiVersion
used to create theInstance
is less than Version 1.3 there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_CULL_MODE
,DYNAMIC_STATE_FRONT_FACE
,DYNAMIC_STATE_PRIMITIVE_TOPOLOGY
,DYNAMIC_STATE_VIEWPORT_WITH_COUNT
,DYNAMIC_STATE_SCISSOR_WITH_COUNT
,DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
,DYNAMIC_STATE_DEPTH_TEST_ENABLE
,DYNAMIC_STATE_DEPTH_WRITE_ENABLE
,DYNAMIC_STATE_DEPTH_COMPARE_OP
,DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE
,DYNAMIC_STATE_STENCIL_TEST_ENABLE
, orDYNAMIC_STATE_STENCIL_OP
- If the
pipeline requires
pre-rasterization shader state,
and
DYNAMIC_STATE_VIEWPORT_WITH_COUNT
is included in thepDynamicStates
array thenviewportCount
must be zero - If the
pipeline requires
pre-rasterization shader state,
and
DYNAMIC_STATE_SCISSOR_WITH_COUNT
is included in thepDynamicStates
array thenscissorCount
must be zero - If the
pipeline requires
pre-rasterization shader state,
and
DYNAMIC_STATE_VIEWPORT_WITH_COUNT
is included in thepDynamicStates
array thenDYNAMIC_STATE_VIEWPORT
must not be present - If the
pipeline requires
pre-rasterization shader state,
and
DYNAMIC_STATE_SCISSOR_WITH_COUNT
is included in thepDynamicStates
array thenDYNAMIC_STATE_SCISSOR
must not be present - If the
pipeline requires
pre-rasterization shader state,
and includes a mesh shader, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
, orDYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
- If the
extendedDynamicState2
feature is not enabled, and the value of
ApplicationInfo
::apiVersion
used to create theInstance
is less than Version 1.3 there must be no element of thepDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_BIAS_ENABLE
,DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
, orDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
- If the
extendedDynamicState2LogicOp
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LOGIC_OP_EXT
- If the
extendedDynamicState2PatchControlPoints
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
- If the
pipeline requires
pre-rasterization shader state,
and includes a mesh shader, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
, orDYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
- If
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then the deviceGeneratedCommands feature must be enabled - If the pipeline
requires
pre-rasterization shader state
and
flags
includesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
, then all stages must not specifyXfb
execution mode - If the
pipeline is not created with a
complete set of state,
or
PipelineLibraryCreateInfoKHR
::libraryCount
is not0
,GraphicsPipelineShaderGroupsCreateInfoNV
::groupCount
andGraphicsPipelineShaderGroupsCreateInfoNV
::pipelineCount
must be0
- If the
pipeline is created with a
complete set of state,
and
PipelineLibraryCreateInfoKHR
::libraryCount
is0
, and thepNext
chain includes an instance ofGraphicsPipelineShaderGroupsCreateInfoNV
,GraphicsPipelineShaderGroupsCreateInfoNV
::groupCount
must be greater than0
-
If the
pipelineCreationCacheControl
feature is not enabled,
flags
must not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
orPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
- If
the
pipelineProtectedAccess
feature is not enabled,
flags
must not includePIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
orPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
-
flags
must not include bothPIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
andPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
- If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
must be greater than or equal to1
- If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must be greater than or equal to1
- If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
must be a power-of-two value - If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must be a power-of-two value - If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
must be less than or equal to4
- If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must be less than or equal to4
- If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, and the pipelineFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.width
andPipelineFragmentShadingRateStateCreateInfoKHR
::fragmentSize.height
must both be equal to1
- If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
[0] must be a validFragmentShadingRateCombinerOpKHR
value - If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
[1] must be a validFragmentShadingRateCombinerOpKHR
value - If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, and the primitiveFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
[0] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
- If the
pipeline requires
pre-rasterization shader state
or
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, and the attachmentFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
-
If the pipeline requires
pre-rasterization shader state
and the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported,
DYNAMIC_STATE_VIEWPORT_WITH_COUNT
is not included inpDynamicState->pDynamicStates
, andPipelineViewportStateCreateInfo
::viewportCount
is greater than1
, entry points specified inpStages
must not write to thePrimitiveShadingRateKHR
built-in -
If the pipeline requires
pre-rasterization shader state
and the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported, and entry points specified in
pStages
write to theViewportIndex
built-in, they must not also write to thePrimitiveShadingRateKHR
built-in -
If the pipeline requires
pre-rasterization shader state
and the
primitiveFragmentShadingRateWithMultipleViewports
limit is not supported, and entry points specified in
pStages
write to theViewportMaskNV
built-in, they must not also write to thePrimitiveShadingRateKHR
built-in -
If the pipeline requires
pre-rasterization shader state
or
fragment shader state,
the
fragmentShadingRateNonTrivialCombinerOps
limit is not supported, and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, elements ofPipelineFragmentShadingRateStateCreateInfoKHR
::combinerOps
must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
orFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
- If the pipeline
requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRateType
must be a validFragmentShadingRateTypeNV
value - If the
pipeline requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRate
must be a validFragmentShadingRateNV
value - If the
pipeline requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
[0] must be a validFragmentShadingRateCombinerOpKHR
value - If the
pipeline requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
,PipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
[1] must be a validFragmentShadingRateCombinerOpKHR
value - If the
pipeline requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, and the fragmentShadingRateEnums feature is not enabled,PipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRateType
must be equal toFRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV
- If the
pipeline requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is 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 the
pipeline requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, and the primitiveFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
[0] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
- If the
pipeline requires
fragment shader state
and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, and the attachmentFragmentShadingRate feature is not enabled,PipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
-
If the pipeline requires
fragment shader state,
and the
fragmentShadingRateNonTrivialCombinerOps
limit is not supported and
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
is not included inpDynamicState->pDynamicStates
, elements ofPipelineFragmentShadingRateEnumStateCreateInfoNV
::combinerOps
must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
orFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
- If the pipeline
requires
fragment shader state,
and 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 pipeline
requires
fragment shader state,
and the
noInvocationFragmentShadingRates
feature is not enabled,
PipelineFragmentShadingRateEnumStateCreateInfoNV
::shadingRate
must not be equal toFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
- All
elements of the
pDynamicStates
member ofpDynamicState
must not beDYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
- If the
pipeline requires
pre-rasterization shader state
and the
vertexInputDynamicState
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_VERTEX_INPUT_EXT
- If the
pipeline requires
pre-rasterization shader state,
and includes a mesh shader, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_VERTEX_INPUT_EXT
- If the
colorWriteEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
- If
the pipeline requires
fragment shader state,
and the
VK_QCOM_render_pass_shader_resolve
extension is enabled,rasterizationSamples
is not dynamic, and if subpass has any input attachments, and if the subpass description containsSUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
, then the sample count of the input attachments must equalrasterizationSamples
- If the
pipeline requires
fragment shader state,
and the
VK_QCOM_render_pass_shader_resolve
extension is enabled, and if the subpass description containsSUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
, thensampleShadingEnable
must be false - If
flags
includesSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
, then the subpass must be the last subpass in a subpass dependency chain - If
flags
includesSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
, and ifpResolveAttachments
is notNULL
, then each resolve attachment must beATTACHMENT_UNUSED
- If the
dynamicRendering
feature is not enabled and the pipeline requires
pre-rasterization shader state,
fragment shader state,
or
fragment output interface state,
renderPass
must not beNULL_HANDLE
- If the
multiview
feature is not enabled, the pipeline requires
pre-rasterization shader state,
fragment shader state,
or
fragment output interface state,
and
renderPass
isNULL_HANDLE
,PipelineRenderingCreateInfo
::viewMask
must be0
- If the pipeline
requires
pre-rasterization shader state,
fragment shader state,
or
fragment output interface state,
and
renderPass
isNULL_HANDLE
, the index of the most significant bit inPipelineRenderingCreateInfo
::viewMask
must be less than maxMultiviewViewCount - If the pipeline
requires
fragment output interface state,
and
renderPass
isNULL_HANDLE
, andPipelineRenderingCreateInfo
::colorAttachmentCount
is not 0,PipelineRenderingCreateInfo
::pColorAttachmentFormats
must be a valid pointer to an array ofcolorAttachmentCount
validFormat
values - If the pipeline
requires
fragment output interface state,
and
renderPass
isNULL_HANDLE
, each element ofPipelineRenderingCreateInfo
::pColorAttachmentFormats
must be a validFormat
value - If the pipeline
requires
fragment output interface state,
renderPass
isNULL_HANDLE
, and any element ofPipelineRenderingCreateInfo
::pColorAttachmentFormats
is notFORMAT_UNDEFINED
, that format must be a format with potential format features that includeFORMAT_FEATURE_COLOR_ATTACHMENT_BIT
orFORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
- If the pipeline
requires
fragment output interface state,
and
renderPass
isNULL_HANDLE
,PipelineRenderingCreateInfo
::depthAttachmentFormat
must be a validFormat
value - If the pipeline
requires
fragment output interface state,
and
renderPass
isNULL_HANDLE
,PipelineRenderingCreateInfo
::stencilAttachmentFormat
must be a validFormat
value - If the pipeline
requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andPipelineRenderingCreateInfo
::depthAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
- If the pipeline
requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andPipelineRenderingCreateInfo
::stencilAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format with potential format features that includeFORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
- If the pipeline
requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andPipelineRenderingCreateInfo
::depthAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format that includes a depth component - If the pipeline
requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andPipelineRenderingCreateInfo
::stencilAttachmentFormat
is notFORMAT_UNDEFINED
, it must be a format that includes a stencil component - If the pipeline
requires
fragment output interface state,
renderPass
isNULL_HANDLE
,PipelineRenderingCreateInfo
::depthAttachmentFormat
is notFORMAT_UNDEFINED
, andPipelineRenderingCreateInfo
::stencilAttachmentFormat
is notFORMAT_UNDEFINED
,depthAttachmentFormat
must equalstencilAttachmentFormat
- If
renderPass
isNULL_HANDLE
, the pipeline is being created with fragment shader state and fragment output interface state, and either ofPipelineRenderingCreateInfo
::depthAttachmentFormat
orPipelineRenderingCreateInfo
::stencilAttachmentFormat
are notFORMAT_UNDEFINED
, and theVK_EXT_extended_dynamic_state3
extension is not enabled or any of theDYNAMIC_STATE_DEPTH_TEST_ENABLE
,DYNAMIC_STATE_DEPTH_WRITE_ENABLE
,DYNAMIC_STATE_DEPTH_COMPARE_OP
,DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE
,DYNAMIC_STATE_STENCIL_TEST_ENABLE
,DYNAMIC_STATE_STENCIL_OP
, orDYNAMIC_STATE_DEPTH_BOUNDS
dynamic states are not set,pDepthStencilState
must be a valid pointer to a validPipelineDepthStencilStateCreateInfo
structure - If
pDepthStencilState
is notNULL
it must be a valid pointer to a validPipelineDepthStencilStateCreateInfo
structure - If
renderPass
isNULL_HANDLE
and the pipeline is being created with fragment shader state but not fragment output interface state, and theVK_EXT_extended_dynamic_state3
extension is not enabled, or any of theDYNAMIC_STATE_DEPTH_TEST_ENABLE
,DYNAMIC_STATE_DEPTH_WRITE_ENABLE
,DYNAMIC_STATE_DEPTH_COMPARE_OP
,DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE
,DYNAMIC_STATE_STENCIL_TEST_ENABLE
,DYNAMIC_STATE_STENCIL_OP
, orDYNAMIC_STATE_DEPTH_BOUNDS
dynamic states are not set,pDepthStencilState
must be a valid pointer to a validPipelineDepthStencilStateCreateInfo
structure - If
pDepthStencilState
is notNULL
it must be a valid pointer to a validPipelineDepthStencilStateCreateInfo
structure - If
renderPass
isNULL_HANDLE
, the pipeline is being created with fragment output interface state, andPipelineRenderingCreateInfo
::colorAttachmentCount
is not equal to0
, and theVK_EXT_extended_dynamic_state3
extension is not enabled, or any of theDYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
,DYNAMIC_STATE_LOGIC_OP_EXT
,DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
,DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
,DYNAMIC_STATE_COLOR_WRITE_MASK_EXT
, orDYNAMIC_STATE_BLEND_CONSTANTS
dynamic states are not set,pColorBlendState
must be a valid pointer to a validPipelineColorBlendStateCreateInfo
structure - If
pColorBlendState
is notNULL
it must be a valid pointer to a validPipelineColorBlendStateCreateInfo
structure - If
renderPass
isNULL_HANDLE
,pColorBlendState
is not dynamic, and the pipeline is being created with fragment output interface state,pColorBlendState->attachmentCount
must be equal toPipelineRenderingCreateInfo
::colorAttachmentCount
- If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,PipelineRenderingCreateInfo
::viewMask
is not0
, and the multiviewTessellationShader feature is not enabled, thenpStages
must not include tessellation shaders - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state,PipelineRenderingCreateInfo
::viewMask
is not0
, and the multiviewGeometryShader feature is not enabled, thenpStages
must not include a geometry shader - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andPipelineRenderingCreateInfo
::viewMask
is not0
, all of the shaders in the pipeline must not write to theLayer
built-in output - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andPipelineRenderingCreateInfo
::viewMask
is not0
, all of the shaders in the pipeline must not include variables decorated with theLayer
built-in decoration in their interfaces - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andPipelineRenderingCreateInfo
::viewMask
is not0
, all of the shaders in the pipeline must not include variables decorated with theViewIndex
built-in decoration in their interfaces - If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state, andPipelineRenderingCreateInfo
::viewMask
is not0
, andmultiviewMeshShader
is not enabled, thenpStages
must not include a mesh shader - If the pipeline
requires
fragment shader state
and
renderPass
isNULL_HANDLE
, fragment shaders inpStages
must not include theInputAttachment
capability - If the pipeline
requires
fragment shader state
and
renderPass
is notNULL_HANDLE
, fragment shaders inpStages
must not include any of theTileImageColorReadAccessEXT
,TileImageDepthReadAccessEXT
, orTileImageStencilReadAccessEXT
capabilities - If the pipeline
requires
fragment output interface state
and
renderPass
isNULL_HANDLE
, for each color attachment format defined by thepColorAttachmentFormats
member ofPipelineRenderingCreateInfo
, if its potential format features do not containFORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
, then theblendEnable
member of the corresponding element of thepAttachments
member ofpColorBlendState
must beFALSE
- If the pipeline
requires
fragment output interface state
and
renderPass
isNULL_HANDLE
, if thepNext
chain includesAttachmentSampleCountInfoAMD
orAttachmentSampleCountInfoNV
, thecolorAttachmentCount
member of that structure must be equal to the value ofPipelineRenderingCreateInfo
::colorAttachmentCount
- If
pStages
includes a fragment shader stage, and the fragment shader declares theEarlyFragmentTests
execution mode, theflags
member ofPipelineDepthStencilStateCreateInfo
must not includePIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
orPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
- If the pipeline
requires
fragment output interface state
and the
flags
member ofPipelineColorBlendStateCreateInfo
includesPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
,renderpass
must not beNULL_HANDLE
- If the pipeline
requires
fragment output interface state
and the
flags
member ofPipelineDepthStencilStateCreateInfo
includesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
orPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
,renderpass
must not beNULL_HANDLE
- If
the
fragment output interface state,
elements of the
pColorAttachmentSamples
member ofAttachmentSampleCountInfoAMD
orAttachmentSampleCountInfoNV
must be validSampleCountFlagBits
values -
If the
fragment output interface state
and the
depthStencilAttachmentSamples
member ofAttachmentSampleCountInfoAMD
orAttachmentSampleCountInfoNV
is not 0, it must be a validSampleCountFlagBits
value - If the pipeline
requires
fragment output interface state
and the
flags
member ofPipelineColorBlendStateCreateInfo
includesPIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
subpass
must have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
- If the pipeline
requires
fragment shader state
and the
flags
member ofPipelineDepthStencilStateCreateInfo
includesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
,subpass
must have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
- If the pipeline
requires
fragment shader state
and the
flags
member ofPipelineDepthStencilStateCreateInfo
includesPIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
,subpass
must have been created withSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
-
If
PipelineCreationFeedbackCreateInfo
::pipelineStageCreationFeedbackCount
is not0
, it must be equal tostageCount
- If
renderPass
isNULL_HANDLE
, the pipeline is being created with pre-rasterization shader state or fragment shader state, andMultiviewPerViewAttributesInfoNVX
::perViewAttributesPositionXOnly
isTRUE
thenMultiviewPerViewAttributesInfoNVX
::perViewAttributes
must also beTRUE
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, the value ofMultiviewPerViewAttributesInfoNVX
::perViewAttributes
specified in both this pipeline and the library must be equal - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, the value ofMultiviewPerViewAttributesInfoNVX
::perViewAttributes
specified in both libraries must be equal - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, the value ofMultiviewPerViewAttributesInfoNVX
::perViewAttributesPositionXOnly
specified in both this pipeline and the library must be equal - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, the value ofMultiviewPerViewAttributesInfoNVX
::perViewAttributesPositionXOnly
specified in both libraries must be equal - If the pipeline
requires
pre-rasterization shader state
or
fragment shader state,
pStages
must be a valid pointer to an array ofstageCount
validPipelineShaderStageCreateInfo
structures - If the
VK_EXT_extended_dynamic_state3
extension is not enabled, or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
,DYNAMIC_STATE_SAMPLE_MASK_EXT
, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
dynamic states are not set, or alphaToOne is enabled on the device andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
is not set, thenpMultisampleState
must be a valid pointer to a validPipelineMultisampleStateCreateInfo
structure - If
pRasterizationState
is notNULL
it must be a valid pointer to a validPipelineRasterizationStateCreateInfo
structure - If the pipeline
requires
fragment shader state
or
pre-rasterization shader state,
layout
must be a validPipelineLayout
handle - If
pre-rasterization shader state,
fragment shader state,
or
fragment output state,
and
renderPass
is notNULL_HANDLE
,renderPass
must be a validRenderPass
handle - If the pipeline
requires
pre-rasterization shader state
or
fragment shader state,
stageCount
must be greater than0
- If
the
graphicsPipelineLibrary
feature is not enabled,
flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
- If the pipeline
defines, or includes as libraries, all the state subsets required
for a
complete graphics pipeline,
flags
must not includePIPELINE_CREATE_LIBRARY_BIT_KHR
- If
flags
includesPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
, pipeline libraries included viaPipelineLibraryCreateInfoKHR
must have been created withPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
- If
flags
includesPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
,flags
must also includePIPELINE_CREATE_LIBRARY_BIT_KHR
- If
flags
includesPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
, pipeline libraries included viaPipelineLibraryCreateInfoKHR
must have been created withPIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
- Any pipeline
libraries included via
PipelineLibraryCreateInfoKHR
::pLibraries
must not include any state subset already defined by this structure or defined by any other pipeline library inPipelineLibraryCreateInfoKHR
::pLibraries
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, andlayout
was not created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by this pipeline and the library must be identically defined - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and thelayout
specified by either library was not created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by each library must be /identically defined/ - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, andlayout
was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by the library must also have been created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
- If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and thelayout
specified by either library was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, then thelayout
used by both libraries must have been created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, andlayout
was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, elements of thepSetLayouts
array whichlayout
was created with that are notNULL_HANDLE
must be identically defined to the element at the same index ofpSetLayouts
used to create the library’slayout
- If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and thelayout
specified by either library was created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, elements of thepSetLayouts
array which eitherlayout
was created with that are notNULL_HANDLE
must be identically defined to the element at the same index ofpSetLayouts
used to create the other library’slayout
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, any descriptor set layout N specified bylayout
in both this pipeline and the library which include bindings accessed by shader stages in each must be /identically defined/ - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, any descriptor set layout N specified bylayout
in both libraries which include bindings accessed by shader stages in each must be identically defined - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, push constants specified inlayout
in both this pipeline and the library which are available to shader stages in each must be identically defined - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, push constants specified inlayout
in both this pipeline and the library which are available to shader stages in each must be identically defined - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array whichlayout
was created with wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the library’slayout
must not beNULL_HANDLE
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array used to create the library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create this pipeline’slayout
must not beNULL_HANDLE
- If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and any element of thepSetLayouts
array used to create each library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the other library’slayout
must not beNULL_HANDLE
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array whichlayout
was created with wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the library’slayout
must not have shader bindings for shaders in the other subset - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other subset, and any element of thepSetLayouts
array used to create the library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create this pipeline’slayout
must not have shader bindings for shaders in the other subset - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and any element of thepSetLayouts
array used to create each library’slayout
wasNULL_HANDLE
, then the corresponding element of thepSetLayouts
array used to create the other library’slayout
must not have shader bindings for shaders in the other subset - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes bothGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
andGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,layout
must have been created with no elements of thepSetLayouts
array set toNULL_HANDLE
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
andpRasterizationState->rasterizerDiscardEnable
isTRUE
,layout
must have been created with no elements of thepSetLayouts
array set toNULL_HANDLE
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes one of the other flags, the value ofsubpass
must be equal to that used to create the library - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, and another element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes one of the other flags, the value ofsubpass
used to create each library must be identical - If
renderpass
is notNULL_HANDLE
,GraphicsPipelineLibraryCreateInfoEXT
::flags
includes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes one of the other flags,renderPass
must be compatible with that used to create the library - If
renderpass
isNULL_HANDLE
,GraphicsPipelineLibraryCreateInfoEXT
::flags
includes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes one of the other flags, the value ofrenderPass
used to create that library must also beNULL_HANDLE
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes one of the other flags, andrenderPass
isNULL_HANDLE
, the value ofPipelineRenderingCreateInfo
::viewMask
used by this pipeline and that specified by the library must be identical - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, another element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes one of the other flags, andrenderPass
wasNULL_HANDLE
for both libraries, the value ofPipelineRenderingCreateInfo
::viewMask
set by each library must be identical - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includes at least one of and no more than two ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, and another element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes one of the other flags, therenderPass
objects used to create each library must be compatible or all equal toNULL_HANDLE
- If the
pipeline requires
fragment shader state
pMultisampleState
must beNULL
or a valid pointer to a validPipelineMultisampleStateCreateInfo
structure - If the pipeline
requires
fragment shader state
and
renderpass
is notNULL_HANDLE
, thenpMultisampleState
must not beNULL
- If the pipeline
requires
fragment shader state
with a fragment shader that either enables
sample shading
or decorates any variable in the
Input
storage class withSample
, thenpMultisampleState
must not beNULL
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
with apMultisampleState
that was notNULL
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
,pMultisampleState
must be identically defined to that used to create the library - If an element
of
PipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
with apMultisampleState
that was notNULL
, and ifGraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
,pMultisampleState
must be identically defined to that used to create the library - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
with apMultisampleState
that was notNULL
, and if a different element ofPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, thepMultisampleState
used to create each library must be identically defined - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
and a value ofpMultisampleState->sampleShading
equalTRUE
, and if a different element ofPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, thepMultisampleState
used to create each library must be identically defined - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
,pMultisampleState->sampleShading
isTRUE
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
was created withGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, thepMultisampleState
used to create that library must be identically definedpMultisampleState
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includes only one ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and an element ofPipelineLibraryCreateInfoKHR
::pLibraries
includes the other flag, values specified inPipelineFragmentShadingRateStateCreateInfoKHR
for both this pipeline and that library must be identical - If one element
of
PipelineLibraryCreateInfoKHR
::pLibraries
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
and another element includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, values specified inPipelineFragmentShadingRateStateCreateInfoKHR
for both this pipeline and that library must be identical - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,pStages
must be a valid pointer to an array ofstageCount
validPipelineShaderStageCreateInfo
structures - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
, and theVK_EXT_extended_dynamic_state3
extension is not enabled, or any of theDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
,DYNAMIC_STATE_SAMPLE_MASK_EXT
, orDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
dynamic states are not set, or alphaToOne is enabled on the device andDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
is not set,pMultisampleState
must be a valid pointer to a validPipelineMultisampleStateCreateInfo
structure - If
pRasterizationState
is notNULL
it must be a valid pointer to a validPipelineRasterizationStateCreateInfo
structure - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,layout
must be a validPipelineLayout
handle - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
, orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, andrenderPass
is notNULL_HANDLE
,renderPass
must be a validRenderPass
handle - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
orGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
,stageCount
must be greater than0
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
is non-zero, ifflags
includesPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
, any libraries must have also been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
- If
PipelineLibraryCreateInfoKHR
::pLibraries
includes more than one library, and any library was created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
, all libraries must have also been created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
- If
PipelineLibraryCreateInfoKHR
::pLibraries
includes at least one library,GraphicsPipelineLibraryCreateInfoEXT
::flags
is non-zero, and any library was created withPIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
,flags
must includePIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
- If the pipeline
includes a
complete set of state,
and there are no libraries included in
PipelineLibraryCreateInfoKHR
::pLibraries
, thenPipelineLayout
must be a valid pipeline layout - If the pipeline
includes a
complete set of state
specified entirely by libraries, and each library was created with a
PipelineLayout
created withoutPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, thenlayout
must be compatible with the layouts in those libraries - If
flags
includesPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with aPipelineLayout
created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, thenlayout
must be compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion ofPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
- If
flags
does not includePIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with aPipelineLayout
created withPIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
, thenlayout
must be compatible with the union of the libraries' pipeline layouts -
If
conservativePointAndLineRasterization
is not supported; the pipeline is being created with
vertex input state
and
pre-rasterization shader state;
the pipeline does not include a geometry shader; and the value of
PipelineInputAssemblyStateCreateInfo
::topology
isPRIMITIVE_TOPOLOGY_POINT_LIST
,PRIMITIVE_TOPOLOGY_LINE_LIST
, orPRIMITIVE_TOPOLOGY_LINE_STRIP
, and eitherDYNAMIC_STATE_PRIMITIVE_TOPOLOGY
dynamic state is not enabled or dynamicPrimitiveTopologyUnrestricted isFALSE
, thenPipelineRasterizationConservativeStateCreateInfoEXT
::conservativeRasterizationMode
must beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
-
If
conservativePointAndLineRasterization
is not supported, the pipeline requires
pre-rasterization shader state,
and the pipeline includes a geometry shader with either the
OutputPoints
orOutputLineStrip
execution modes,PipelineRasterizationConservativeStateCreateInfoEXT
::conservativeRasterizationMode
must beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
-
If
conservativePointAndLineRasterization
is not supported, the pipeline requires
pre-rasterization shader state,
and the pipeline includes a mesh shader with either the
OutputPoints
orOutputLinesNV
execution modes,PipelineRasterizationConservativeStateCreateInfoEXT
::conservativeRasterizationMode
must beCONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
- If the pipeline
requires
pre-rasterization shader state
but not
fragment shader state,
elements of
pStages
must not havestage
set toSHADER_STAGE_FRAGMENT_BIT
- If the pipeline
requires
fragment shader state
but not
pre-rasterization shader state,
elements of
pStages
must not havestage
set to a shader stage which participates in pre-rasterization - If the pipeline
requires
pre-rasterization shader state,
all elements of
pStages
must have astage
set to a shader stage which participates in fragment shader state or pre-rasterization shader state - If the pipeline
requires
fragment shader state
and/or
pre-rasterization shader state,
any value of
stage
must not be set in more than one element ofpStages
-
If the
extendedDynamicState3TessellationDomainOrigin
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT
-
If the
extendedDynamicState3DepthClampEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT
-
If the
extendedDynamicState3PolygonMode
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_POLYGON_MODE_EXT
-
If the
extendedDynamicState3RasterizationSamples
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
-
If the
extendedDynamicState3SampleMask
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_SAMPLE_MASK_EXT
-
If the
extendedDynamicState3AlphaToCoverageEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
-
If the
extendedDynamicState3AlphaToOneEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
-
If the
extendedDynamicState3LogicOpEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
-
If the
extendedDynamicState3ColorBlendEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
-
If the
extendedDynamicState3ColorBlendEquation
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
-
If the
extendedDynamicState3ColorWriteMask
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_WRITE_MASK_EXT
-
If the
extendedDynamicState3RasterizationStream
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_RASTERIZATION_STREAM_EXT
-
If the
extendedDynamicState3ConservativeRasterizationMode
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT
-
If the
extendedDynamicState3ExtraPrimitiveOverestimationSize
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT
-
If the
extendedDynamicState3DepthClipEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT
-
If the
extendedDynamicState3SampleLocationsEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
-
If the
extendedDynamicState3ColorBlendAdvanced
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
-
If the
extendedDynamicState3ProvokingVertexMode
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT
-
If the
extendedDynamicState3LineRasterizationMode
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT
-
If the
extendedDynamicState3LineStippleEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT
-
If the
extendedDynamicState3DepthClipNegativeOneToOne
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT
-
If the
extendedDynamicState3ViewportWScalingEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV
-
If the
extendedDynamicState3ViewportSwizzle
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_VIEWPORT_SWIZZLE_NV
-
If the
extendedDynamicState3CoverageToColorEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV
-
If the
extendedDynamicState3CoverageToColorLocation
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV
-
If the
extendedDynamicState3CoverageModulationMode
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV
-
If the
extendedDynamicState3CoverageModulationTableEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV
-
If the
extendedDynamicState3CoverageModulationTable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV
-
If the
extendedDynamicState3CoverageReductionMode
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
-
If the
extendedDynamicState3RepresentativeFragmentTestEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV
-
If the
extendedDynamicState3ShadingRateImageEnable
feature is not enabled, there must be no element of the
pDynamicStates
member ofpDynamicState
set toDYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
-
flags
must not includePIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
- If the
pipeline requires
pre-rasterization shader state,
and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_VIEWPORT
orDYNAMIC_STATE_VIEWPORT_WITH_COUNT
, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element ofRenderPassMultiviewCreateInfo
::pViewMasks
must be less thanpViewportState
::viewportCount
- If the
pipeline requires
pre-rasterization shader state,
and no element of the
pDynamicStates
member ofpDynamicState
isDYNAMIC_STATE_SCISSOR
orDYNAMIC_STATE_SCISSOR_WITH_COUNT
, and if multiviewPerViewViewports is enabled, then the index of the most significant bit in each element ofRenderPassMultiviewCreateInfo
::pViewMasks
must be less thanpViewportState
::scissorCount
- If
pStages
includes a fragment shader stage,DYNAMIC_STATE_DEPTH_WRITE_ENABLE
is not set inPipelineDynamicStateCreateInfo
::pDynamicStates
, and the fragment shader declares theEarlyFragmentTests
execution mode and usesOpDepthAttachmentReadEXT
, thedepthWriteEnable
member ofPipelineDepthStencilStateCreateInfo
must beFALSE
- If
pStages
includes a fragment shader stage,DYNAMIC_STATE_STENCIL_WRITE_MASK
is not set inPipelineDynamicStateCreateInfo
::pDynamicStates
, and the fragment shader declares theEarlyFragmentTests
execution mode and usesOpStencilAttachmentReadEXT
, the value ofStencilOpState
::writeMask
for bothfront
andback
inPipelineDepthStencilStateCreateInfo
must be0
- If
renderPass
isNULL_HANDLE
, the pipeline requires fragment output state or fragment shader state, the pipeline enables sample shading,rasterizationSamples
is not dynamic, and thepNext
chain includes aPipelineRenderingCreateInfo
structure,rasterizationSamples
must be a bit value that is set inimageCreateSampleCounts
(as defined in Image Creation Limits) for every element ofdepthAttachmentFormat
,stencilAttachmentFormat
and thepColorAttachmentFormats
array which is notFORMAT_UNDEFINED
- If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT
, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
, and that state includes a vertex shader stage inpStages
, the pipeline must define vertex input state - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT
, and pre-rasterization shader state is not specified, the pipeline must define vertex input state - If
flags
does not includePIPELINE_CREATE_LIBRARY_BIT_KHR
, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
, and that state includes a vertex shader stage inpStages
, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
the pipeline must define pre-rasterization shader state - If
flags
does not includePIPELINE_CREATE_LIBRARY_BIT_KHR
, the pipeline must either define pre-rasterization shader state or include that state in a linked pipeline library - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT
, and that state either includesDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
or haspRasterizationState->rasterizerDiscardEnable
set toFALSE
, the pipeline must define fragment shader state - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and pre-rasterization shader state is not specified, the pipeline must define fragment shader state - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, pre-rasterization shader state is specified either in a library or by the inclusion ofGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT
, and that state either includesDYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
or haspRasterizationState->rasterizerDiscardEnable
set toFALSE
, the pipeline must define fragment output interface state - If
GraphicsPipelineLibraryCreateInfoEXT
::flags
includesGRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT
, and pre-rasterization shader state is not specified, the pipeline must define fragment output interface state - If
pDynamicState->pDynamicStates
does not includeDYNAMIC_STATE_COLOR_WRITE_MASK_EXT
, and the format of any color attachment isFORMAT_E5B9G9R9_UFLOAT_PACK32
, thecolorWriteMask
member of the corresponding element ofpColorBlendState->pAttachments
must either include all ofCOLOR_COMPONENT_R_BIT
,COLOR_COMPONENT_G_BIT
, andCOLOR_COMPONENT_B_BIT
, or none of them - If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andExternalFormatANDROID
::externalFormat
is not0
,PipelineRenderingCreateInfo
::viewMask
must be0
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
isNULL_HANDLE
,ExternalFormatANDROID
::externalFormat
is not0
, andrasterizationSamples
is not dynamic,PipelineMultisampleStateCreateInfo
::rasterizationSamples
must be1
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andExternalFormatANDROID
::externalFormat
is not0
, andblendEnable
is not dynamic, theblendEnable
member of each element ofpColorBlendState->pAttachments
must beFALSE
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andExternalFormatANDROID
::externalFormat
is not0
, andpDynamicState->pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,PipelineFragmentShadingRateStateCreateInfoKHR
::width
must be1
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andExternalFormatANDROID
::externalFormat
is not0
, andpDynamicState->pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,PipelineFragmentShadingRateStateCreateInfoKHR
::height
must be1
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
pre-rasterization shader state
and
fragment output interface state,
renderPass
isNULL_HANDLE
, andExternalFormatANDROID
::externalFormat
is not0
, the last pre-rasterization shader stage must not statically use a variable with thePrimitiveShadingRateKHR
built-in - If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
isNULL_HANDLE
, andExternalFormatANDROID
::externalFormat
is not0
,PipelineRenderingCreateInfo
::colorAttachmentCount
must be1
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment shader state
and
fragment output interface state,
renderPass
isNULL_HANDLE
, andExternalFormatANDROID
::externalFormat
is not0
, the fragment shader must not declare theDepthReplacing
orStencilRefReplacingEXT
execution modes - If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andrasterizationSamples
is not dynamic,PipelineMultisampleStateCreateInfo
::rasterizationSamples
must beSAMPLE_COUNT_1_BIT
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andblendEnable
is not dynamic, theblendEnable
member of each element ofpColorBlendState->pAttachments
must beFALSE
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andpDynamicState->pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,PipelineFragmentShadingRateStateCreateInfoKHR
::width
must be1
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
fragment output interface state,
renderPass
is notNULL_HANDLE
,subpass
includes an external format resolve attachment, andpDynamicState->pDynamicStates
does not includeDYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR
,PipelineFragmentShadingRateStateCreateInfoKHR
::height
must be1
- If
the
externalFormatResolve
feature is enabled, the pipeline requires
pre-rasterization shader state
and
fragment output interface state,
renderPass
is notNULL_HANDLE
, andsubpass
includes an external format resolve attachment, the last pre-rasterization shader stage must not statically use a variable with thePrimitiveShadingRateKHR
built-in
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
- Each
pNext
member of any structure (including this one) in thepNext
chain must be eitherNULL
or a pointer to a valid instance ofAttachmentSampleCountInfoAMD
,ExternalFormatANDROID
,GraphicsPipelineLibraryCreateInfoEXT
,GraphicsPipelineShaderGroupsCreateInfoNV
,MultiviewPerViewAttributesInfoNVX
,PipelineCompilerControlCreateInfoAMD
,PipelineCreateFlags2CreateInfoKHR
,PipelineCreationFeedbackCreateInfo
,PipelineDiscardRectangleStateCreateInfoEXT
,PipelineFragmentShadingRateEnumStateCreateInfoNV
,PipelineFragmentShadingRateStateCreateInfoKHR
,PipelineLibraryCreateInfoKHR
,PipelineRenderingCreateInfo
,PipelineRepresentativeFragmentTestStateCreateInfoNV
, orPipelineRobustnessCreateInfoEXT
- The
sType
value of each struct in thepNext
chain must be unique -
flags
must be a valid combination ofPipelineCreateFlagBits
values - If
pDynamicState
is notNULL
,pDynamicState
must be a valid pointer to a validPipelineDynamicStateCreateInfo
structure - Each of
basePipelineHandle
,layout
, andrenderPass
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
VK_VERSION_1_0,
Pipeline
, PipelineColorBlendStateCreateInfo
,
PipelineCreateFlags
,
PipelineDepthStencilStateCreateInfo
, PipelineDynamicStateCreateInfo
,
PipelineInputAssemblyStateCreateInfo
,
PipelineLayout
,
PipelineMultisampleStateCreateInfo
,
PipelineRasterizationStateCreateInfo
, PipelineShaderStageCreateInfo
,
PipelineTessellationStateCreateInfo
,
PipelineVertexInputStateCreateInfo
, PipelineViewportStateCreateInfo
,
RenderPass
,
StructureType
,
createGraphicsPipelines
GraphicsPipelineCreateInfo | |
|
Instances
VkPipeline - Opaque handle to a pipeline object
See Also
VK_VERSION_1_0,
ComputePipelineCreateInfo
,
ExecutionGraphPipelineCreateInfoAMDX
,
GeneratedCommandsInfoNV
,
GeneratedCommandsMemoryRequirementsInfoNV
,
GraphicsPipelineCreateInfo
,
GraphicsPipelineShaderGroupsCreateInfoNV
,
PipelineExecutableInfoKHR
,
PipelineIndirectDeviceAddressInfoNV
,
PipelineInfoKHR
,
PipelineLibraryCreateInfoKHR
,
RayTracingPipelineCreateInfoKHR
,
RayTracingPipelineCreateInfoNV
,
cmdBindPipeline
,
cmdBindPipelineShaderGroupNV
,
cmdUpdatePipelineIndirectBufferNV
,
compileDeferredNV
,
createComputePipelines
,
createExecutionGraphPipelinesAMDX
,
createGraphicsPipelines
,
createRayTracingPipelinesKHR
,
createRayTracingPipelinesNV
,
destroyPipeline
,
getExecutionGraphPipelineNodeIndexAMDX
,
getExecutionGraphPipelineScratchSizeAMDX
,
getRayTracingCaptureReplayShaderGroupHandlesKHR
,
getRayTracingShaderGroupHandlesKHR
,
getRayTracingShaderGroupHandlesNV
,
getRayTracingShaderGroupStackSizeKHR
,
getShaderInfoAMD
Instances
Storable Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
Show Pipeline Source # | |
Eq Pipeline Source # | |
Ord Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
HasObjectType Pipeline Source # | |
Defined in Vulkan.Core10.Handles objectTypeAndHandle :: Pipeline -> (ObjectType, Word64) Source # | |
IsHandle Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
Zero Pipeline Source # | |
Defined in Vulkan.Core10.Handles |
newtype PipelineDynamicStateCreateFlags Source #
VkPipelineDynamicStateCreateFlags - Reserved for future use
Description
PipelineDynamicStateCreateFlags
is a bitmask type for setting a mask,
but is currently reserved for future use.
See Also
Instances
newtype PipelineMultisampleStateCreateFlags Source #
VkPipelineMultisampleStateCreateFlags - Reserved for future use
Description
PipelineMultisampleStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineRasterizationStateCreateFlags Source #
VkPipelineRasterizationStateCreateFlags - Reserved for future use
Description
PipelineRasterizationStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineViewportStateCreateFlags Source #
VkPipelineViewportStateCreateFlags - Reserved for future use
Description
PipelineViewportStateCreateFlags
is a bitmask type for setting a mask,
but is currently reserved for future use.
See Also
Instances
newtype PipelineTessellationStateCreateFlags Source #
VkPipelineTessellationStateCreateFlags - Reserved for future use
Description
PipelineTessellationStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineInputAssemblyStateCreateFlags Source #
VkPipelineInputAssemblyStateCreateFlags - Reserved for future use
Description
PipelineInputAssemblyStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PipelineVertexInputStateCreateFlags Source #
VkPipelineVertexInputStateCreateFlags - Reserved for future use
Description
PipelineVertexInputStateCreateFlags
is a bitmask type for setting a
mask, but is currently reserved for future use.
See Also
Instances
newtype PrimitiveTopology Source #
VkPrimitiveTopology - Supported primitive topologies
Description
Each primitive topology, and its construction from a list of vertices, is described in detail below with a supporting diagram, according to the following key:
Vertex | A point in 3-dimensional space. Positions chosen within the diagrams are arbitrary and for illustration only. | |
Vertex Number | Sequence position of a vertex within the provided vertex data. | |
Provoking Vertex | Provoking vertex within the main primitive. The tail is angled towards the relevant primitive. 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
VK_VERSION_1_0,
PipelineInputAssemblyStateCreateInfo
,
cmdSetPrimitiveTopology
,
cmdSetPrimitiveTopologyEXT
Instances
VkCompareOp - Comparison operator for depth, stencil, and sampler operations
Description
COMPARE_OP_NEVER
specifies that the comparison always evaluates false.
COMPARE_OP_LESS
specifies that the comparison evaluates reference < test.COMPARE_OP_EQUAL
specifies that the comparison evaluates reference = test.COMPARE_OP_LESS_OR_EQUAL
specifies that the comparison evaluates reference ≤ test.COMPARE_OP_GREATER
specifies that the comparison evaluates reference > test.COMPARE_OP_NOT_EQUAL
specifies that the comparison evaluates reference ≠ test.COMPARE_OP_GREATER_OR_EQUAL
specifies that the comparison evaluates reference ≥ test.COMPARE_OP_ALWAYS
specifies that the comparison always evaluates true.
Comparison operators are used for:
- The
Depth Compare Operation
operator for a sampler, specified by
SamplerCreateInfo
::compareOp
. - The stencil comparison operator for the
stencil test,
specified by
cmdSetStencilOp
::compareOp
orStencilOpState
::compareOp
. - The
Depth Comparison
operator for the
depth test,
specified by
cmdSetDepthCompareOp
::depthCompareOp
orPipelineDepthStencilStateCreateInfo
::depthCompareOp
.
Each such use describes how the reference and test values for that comparison are determined.
See Also
VK_VERSION_1_0,
PipelineDepthStencilStateCreateInfo
,
SamplerCreateInfo
,
StencilOpState
,
cmdSetDepthCompareOp
,
cmdSetDepthCompareOpEXT
,
cmdSetStencilOp
,
cmdSetStencilOpEXT
pattern COMPARE_OP_NEVER :: CompareOp | |
pattern COMPARE_OP_LESS :: CompareOp | |
pattern COMPARE_OP_EQUAL :: CompareOp | |
pattern COMPARE_OP_LESS_OR_EQUAL :: CompareOp | |
pattern COMPARE_OP_GREATER :: CompareOp | |
pattern COMPARE_OP_NOT_EQUAL :: CompareOp | |
pattern COMPARE_OP_GREATER_OR_EQUAL :: CompareOp | |
pattern COMPARE_OP_ALWAYS :: CompareOp |
Instances
Storable CompareOp Source # | |
Defined in Vulkan.Core10.Enums.CompareOp | |
Read CompareOp Source # | |
Show CompareOp Source # | |
Eq CompareOp Source # | |
Ord 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.
If
PhysicalDeviceMaintenance5PropertiesKHR
::polygonModePointSize
is set to TRUE
, the point size of the
final rasterization of polygons is taken from PointSize
when
polygon mode
is POLYGON_MODE_POINT
.
Otherwise, if
PhysicalDeviceMaintenance5PropertiesKHR
::polygonModePointSize
is set to FALSE
, the point size of the
final rasterization of polygons is 1.0 when
polygon mode
is POLYGON_MODE_POINT
.
See Also
VK_VERSION_1_0,
PipelineRasterizationStateCreateInfo
,
cmdSetPolygonModeEXT
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
VK_VERSION_1_0,
PipelineRasterizationStateCreateInfo
,
cmdSetFrontFace
,
cmdSetFrontFaceEXT
pattern FRONT_FACE_COUNTER_CLOCKWISE :: FrontFace |
|
pattern FRONT_FACE_CLOCKWISE :: FrontFace |
|
Instances
Storable FrontFace Source # | |
Defined in Vulkan.Core10.Enums.FrontFace | |
Read FrontFace Source # | |
Show FrontFace Source # | |
Eq FrontFace Source # | |
Ord 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 the enum values are 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
VK_VERSION_1_0,
ColorBlendEquationEXT
,
PipelineColorBlendAttachmentState
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 the basic blend operations are 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
VK_VERSION_1_0,
ColorBlendAdvancedEXT
,
ColorBlendEquationEXT
,
PipelineColorBlendAttachmentState
Instances
Storable BlendOp Source # | |
Read BlendOp Source # | |
Show BlendOp Source # | |
Eq BlendOp Source # | |
Ord BlendOp Source # | |
Defined in Vulkan.Core10.Enums.BlendOp | |
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
VK_VERSION_1_0,
StencilOpState
,
cmdSetStencilOp
,
cmdSetStencilOpEXT
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
Storable StencilOp Source # | |
Defined in Vulkan.Core10.Enums.StencilOp | |
Read StencilOp Source # | |
Show StencilOp Source # | |
Eq StencilOp Source # | |
Ord 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
VK_VERSION_1_0,
PipelineColorBlendStateCreateInfo
,
cmdSetLogicOpEXT
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
Storable LogicOp Source # | |
Read LogicOp Source # | |
Show LogicOp Source # | |
Eq LogicOp Source # | |
Ord LogicOp Source # | |
Defined in Vulkan.Core10.Enums.LogicOp | |
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
VK_VERSION_1_0,
VertexInputBindingDescription
,
VertexInputBindingDescription2EXT
pattern VERTEX_INPUT_RATE_VERTEX :: VertexInputRate |
|
pattern VERTEX_INPUT_RATE_INSTANCE :: VertexInputRate |
|
Instances
newtype DynamicState Source #
VkDynamicState - Indicate which dynamic state is taken from dynamic state commands
See Also
pattern DYNAMIC_STATE_VIEWPORT :: DynamicState |
|
pattern DYNAMIC_STATE_SCISSOR :: DynamicState |
|
pattern DYNAMIC_STATE_LINE_WIDTH :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_BIAS :: DynamicState |
|
pattern DYNAMIC_STATE_BLEND_CONSTANTS :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_BOUNDS :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_COMPARE_MASK :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_WRITE_MASK :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_REFERENCE :: DynamicState |
|
pattern DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV :: DynamicState |
|
pattern DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_RASTERIZATION_STREAM_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_COLOR_WRITE_MASK_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_SAMPLE_MASK_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_POLYGON_MODE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_LOGIC_OP_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_VERTEX_INPUT_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_EXCLUSIVE_SCISSOR_ENABLE_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_MODE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_DISCARD_RECTANGLE_EXT :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV :: DynamicState |
|
pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE :: DynamicState |
|
pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_OP :: DynamicState |
|
pattern DYNAMIC_STATE_STENCIL_TEST_ENABLE :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_COMPARE_OP :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_WRITE_ENABLE :: DynamicState |
|
pattern DYNAMIC_STATE_DEPTH_TEST_ENABLE :: DynamicState |
|
pattern DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE :: DynamicState |
|
pattern DYNAMIC_STATE_SCISSOR_WITH_COUNT :: DynamicState |
|
pattern DYNAMIC_STATE_VIEWPORT_WITH_COUNT :: DynamicState |
|
pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY :: DynamicState |
|
pattern DYNAMIC_STATE_FRONT_FACE :: DynamicState |
|
pattern DYNAMIC_STATE_CULL_MODE :: 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
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
VK_VERSION_1_0,
PipelineShaderStageCreateInfo
,
ShaderCreateInfoEXT
,
ShaderStageFlags
,
cmdBindShadersEXT
,
getShaderInfoAMD
Instances
newtype PipelineCreateFlagBits Source #
VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created
Description
PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
specifies that the created pipeline will not be optimized. Using this flag may reduce the time taken to create the pipeline.
PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
specifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent pipeline creation call.PIPELINE_CREATE_DERIVATIVE_BIT
specifies that the pipeline to be created will be a child of a previously created parent pipeline.PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT
specifies that any shader input variables decorated asViewIndex
will be assigned values as if they were decorated asDeviceIndex
.PIPELINE_CREATE_DISPATCH_BASE
specifies that a compute pipeline can be used withcmdDispatchBase
with a non-zero base workgroup.PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
specifies that a pipeline is created with all shaders in the deferred state. Before using the pipeline the application must callcompileDeferredNV
exactly once on each shader in the pipeline before using the pipeline.PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
specifies that the shader compiler should capture statistics for the pipeline executables produced by the compile process which can later be retrieved by callinggetPipelineExecutableStatisticsKHR
. Enabling this flag must not affect the final compiled pipeline but may disable pipeline caching or otherwise affect pipeline creation time.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
specifies that the shader compiler should capture the internal representations of pipeline 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. When capturing IR from pipelines created with pipeline libraries, there is no guarantee that IR from libraries can be retrieved from the linked pipeline. Applications should retrieve IR from each library, and any linked pipelines, separately.PIPELINE_CREATE_LIBRARY_BIT_KHR
specifies that the pipeline cannot be used directly, and instead defines a pipeline library that can be combined with other pipelines using thePipelineLibraryCreateInfoKHR
structure. This is available in ray tracing and graphics pipelines.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
specifies that an any-hit shader will always be present when an any-hit shader would be executed. A NULL any-hit shader is an any-hit shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
specifies that a closest hit shader will always be present when a closest hit shader would be executed. A NULL closest hit shader is a closest hit shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
specifies that a miss shader will always be present when a miss shader would be executed. A NULL miss shader is a miss shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
specifies that an intersection shader will always be present when an intersection shader would be executed. A NULL intersection shader is an intersection shader which is effectivelySHADER_UNUSED_KHR
, such as from a shader group consisting entirely of zeros.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
specifies that triangle primitives will be skipped during traversal usingOpTraceRayKHR
.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
specifies that AABB primitives will be skipped during traversal usingOpTraceRayKHR
.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
specifies 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_NV
specifies that the pipeline can be used in combination with https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#device-generated-commands.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
specifies that pipeline creation will fail if a compile is required for creation of a validPipeline
object;PIPELINE_COMPILE_REQUIRED
will be returned by pipeline creation, and thePipeline
will be set toNULL_HANDLE
.- When creating multiple pipelines,
PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
specifies that control will be returned to the application if any individual pipeline returns a result which is notSUCCESS
rather than continuing to create additional pipelines. PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
specifies that the pipeline is allowed to useOpTraceRayMotionNV
.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
specifies that the pipeline will be used with a fragment shading rate attachment and dynamic rendering.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
specifies that the pipeline will be used with a fragment density map attachment and dynamic rendering.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
specifies that pipeline libraries being linked into this library should have link time optimizations applied. If this bit is omitted, implementations should instead perform linking as rapidly as possible.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
specifies that pipeline libraries should retain any information necessary to later perform an optimal link withPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
specifies that a pipeline will be used with descriptor buffers, rather than descriptor sets.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
specifies that the pipeline may be used with an attachment feedback loop including color attachments. It is ignored ifDYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
is set inpDynamicStates
.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
specifies that the pipeline may be used with an attachment feedback loop including depth-stencil attachments. It is ignored ifDYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
is set inpDynamicStates
.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
specifies that the pipeline can be used with acceleration structures which reference an opacity micromap array.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
specifies that the pipeline can be used with aceleration structures which reference a displacement micromap array.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT
specifies that the pipeline must not be bound to a protected command buffer.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
specifies that the pipeline must not be bound to an unprotected command buffer.
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.
When an implementation is looking up a pipeline in a
pipeline cache,
if that pipeline is being created using linked libraries,
implementations should always return an equivalent pipeline created
with PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
if available,
whether or not that bit was specified.
Note
Using PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT
(or not) when
linking pipeline libraries is intended as a performance tradeoff between
host and device. If the bit is omitted, linking should be faster and
produce a pipeline more rapidly, but performance of the pipeline on the
target device may be reduced. If the bit is included, linking may be
slower but should produce a pipeline with device performance comparable
to a monolithically created pipeline. Using both options can allow
latency-sensitive applications to generate a suboptimal but usable
pipeline quickly, and then perform an optimal link in the background,
substituting the result for the suboptimally linked pipeline as soon as
it is available.
See Also
Instances
newtype PipelineShaderStageCreateFlagBits Source #
VkPipelineShaderStageCreateFlagBits - Bitmask controlling how a pipeline shader stage is created
Description
Note
If
PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
and
PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
are specified and
minSubgroupSize
does not equal
maxSubgroupSize
and no
required subgroup size
is specified, then the only way to guarantee that the 'X' dimension of
the local workgroup size is a multiple of
SubgroupSize
is to make it a multiple of maxSubgroupSize
. Under these conditions,
you are guaranteed full subgroups but not any particular subgroup size.
See Also
pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT :: PipelineShaderStageCreateFlagBits |
|
pattern PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT :: 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.
The color write mask operation is applied only if Color Write Enable is enabled for the respective attachment. Otherwise the color write mask is ignored and writes to all components of the attachment are disabled.
See Also
pattern COLOR_COMPONENT_R_BIT :: ColorComponentFlagBits |
|
pattern COLOR_COMPONENT_G_BIT :: ColorComponentFlagBits |
|
pattern COLOR_COMPONENT_B_BIT :: ColorComponentFlagBits |
|
pattern COLOR_COMPONENT_A_BIT :: ColorComponentFlagBits |
|
Instances
newtype PipelineLayoutCreateFlagBits Source #
VkPipelineLayoutCreateFlagBits - Pipeline layout creation flag bits
See Also
pattern PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT :: PipelineLayoutCreateFlagBits |
|
Instances
newtype PipelineColorBlendStateCreateFlagBits Source #
VkPipelineColorBlendStateCreateFlagBits - Bitmask specifying additional parameters of an image
Description
PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
indicates that access to color and input attachments will have implicit framebuffer-local memory dependencies, allowing applications to express custom blending operations in a fragment shader.
When
PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
is included in a pipeline, it forms a framebuffer-local memory
dependency for each fragment generated by draw commands for that
pipeline with the following scopes:
- The first
synchronization scope
includes the
PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
pipeline stage executed by all previous fragments (as defined by primitive order) in the corresponding framebuffer regions including those generated by the same draw command. - The second
synchronization scope
includes the
PIPELINE_STAGE_FRAGMENT_SHADER_BIT
pipeline stage executed by the generated fragment. - The first access scope includes all writes to color attachments.
- The second access scope includes all reads from input attachments.
See Also
VK_EXT_rasterization_order_attachment_access,
PipelineColorBlendStateCreateFlags
pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT :: PipelineColorBlendStateCreateFlagBits |
Instances
newtype PipelineDepthStencilStateCreateFlagBits Source #
VkPipelineDepthStencilStateCreateFlagBits - Bitmask specifying additional depth/stencil state information.
Description
PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
indicates that access to the depth aspects of depth/stencil and input attachments will have implicit framebuffer-local memory dependencies.
PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
indicates that access to the stencil aspects of depth/stencil and input attachments will have implicit framebuffer-local memory dependencies.
When
PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
is included in a pipeline, it forms a framebuffer-local memory
dependency for each fragment generated by draw commands for that
pipeline with the following scopes:
- The first
synchronization scope
includes
PIPELINE_STAGE_FRAGMENT_SHADER_BIT
andPIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
pipeline stages executed by all previous fragments (as defined by primitive order) in the corresponding framebuffer regions including those generated by the same draw command. - The second
synchronization scope
includes
PIPELINE_STAGE_FRAGMENT_SHADER_BIT
stage executed by the generated fragment. - The first access scope includes all writes to the depth aspect of depth/stencil attachments.
- The second access scope includes all reads from the depth aspect of input attachments.
When
PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
is included in a pipeline, it forms a framebuffer-local memory
dependency for each fragment generated by draw commands for that
pipeline with the following scopes:
- The first
synchronization scope
includes
PIPELINE_STAGE_FRAGMENT_SHADER_BIT
PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
pipeline stages executed by all previous fragments (as defined by primitive order) in the corresponding framebuffer regions including those generated by the same draw command. - The second
synchronization scope
includes
PIPELINE_STAGE_FRAGMENT_SHADER_BIT
andPIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
pipeline stages executed by the generated fragment. - The first access scope includes all writes to the stencil aspect of depth/stencil attachments.
- The second access scope includes all reads from the stencil aspect of input attachments.
See Also
VK_EXT_rasterization_order_attachment_access,
PipelineDepthStencilStateCreateFlags
Instances
type SampleMask = Word32 Source #
VkSampleMask - Mask of sample coverage information
See Also
VK_VERSION_1_0,
PipelineMultisampleStateCreateInfo
,
cmdSetSampleMaskEXT