| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Core10.ComputePipeline
Synopsis
- createComputePipelines :: MonadIO io => Device -> PipelineCache -> ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo)) -> ("allocator" ::: Maybe AllocationCallbacks) -> io (Result, "pipelines" ::: Vector Pipeline)
- withComputePipelines :: MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r
- destroyPipeline :: MonadIO io => Device -> Pipeline -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- data SpecializationMapEntry = SpecializationMapEntry {}
- data SpecializationInfo = SpecializationInfo {
- mapEntries :: Vector SpecializationMapEntry
- dataSize :: Word64
- data' :: Ptr ()
- data PipelineShaderStageCreateInfo (es :: [Type]) = PipelineShaderStageCreateInfo {}
- data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo {}
- newtype Pipeline = Pipeline Word64
- newtype ShaderStageFlagBits where
- ShaderStageFlagBits Flags
- pattern SHADER_STAGE_ALL :: ShaderStageFlagBits
- pattern SHADER_STAGE_ALL_GRAPHICS :: ShaderStageFlagBits
- pattern SHADER_STAGE_ANY_HIT_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_CALLABLE_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_CLOSEST_HIT_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI :: ShaderStageFlagBits
- pattern SHADER_STAGE_COMPUTE_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_FRAGMENT_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_GEOMETRY_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_INTERSECTION_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_MESH_BIT_EXT :: ShaderStageFlagBits
- pattern SHADER_STAGE_MISS_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_RAYGEN_BIT_KHR :: ShaderStageFlagBits
- pattern SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI :: ShaderStageFlagBits
- pattern SHADER_STAGE_TASK_BIT_EXT :: ShaderStageFlagBits
- pattern SHADER_STAGE_TESSELLATION_CONTROL_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_TESSELLATION_EVALUATION_BIT :: ShaderStageFlagBits
- pattern SHADER_STAGE_VERTEX_BIT :: ShaderStageFlagBits
- type ShaderStageFlags = ShaderStageFlagBits
- newtype PipelineCreateFlagBits where
- PipelineCreateFlagBits Flags
- pattern PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DEFER_COMPILE_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DERIVATIVE_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_DISPATCH_BASE_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_LIBRARY_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_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_OPACITY_MICROMAP_BIT_EXT :: 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_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT :: PipelineCreateFlagBits
- pattern PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT :: PipelineCreateFlagBits
- type PipelineCreateFlags = PipelineCreateFlagBits
- newtype PipelineShaderStageCreateFlagBits where
- type PipelineShaderStageCreateFlags = PipelineShaderStageCreateFlagBits
- newtype PipelineLayoutCreateFlagBits where
- type PipelineLayoutCreateFlags = PipelineLayoutCreateFlagBits
Documentation
createComputePipelines Source #
Arguments
| :: MonadIO io | |
| => Device |
|
| -> PipelineCache |
|
| -> ("createInfos" ::: Vector (SomeStruct ComputePipelineCreateInfo)) |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io (Result, "pipelines" ::: Vector Pipeline) |
vkCreateComputePipelines - Creates a new compute pipeline object
Description
Pipelines are created and returned as described for Multiple Pipeline Creation.
Valid Usage
-
devicemust support at least one queue family with theQUEUE_COMPUTE_BITcapability
- If the
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, and thebasePipelineIndexmember of that same element is not-1,basePipelineIndexmust be less than the index intopCreateInfosthat corresponds to that element - If the
flagsmember of any element ofpCreateInfoscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, the base pipeline must have been created with thePIPELINE_CREATE_ALLOW_DERIVATIVES_BITflag set - If
pipelineCachewas created withPIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access topipelineCachemust be externally synchronized - If
PipelineBinaryInfoKHR::binaryCountis not0for any element ofpCreateInfos,pipelineCachemust beNULL_HANDLE - If a
PipelineCreateFlags2CreateInfoKHRstructure with thePIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHRflag set is included in thepNextchain of any element ofpCreateInfos,pipelineCachemust beNULL_HANDLE - If
PipelineBinaryInfoKHR::binaryCountis not0for any element ofpCreateInfos,PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BITmust not be set in theflagsof that element - If
PipelineBinaryInfoKHR::binaryCountis not0for any element ofpCreateInfos,PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BITmust not be set in theflagsof that element - If
PipelineBinaryInfoKHR::binaryCountis not0for any element ofpCreateInfos,PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXTmust not be set in theflagsof that element - If any element of
pCreateInfossetsPIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXTand includes embedded sampler mappings, there must be less than (maxSamplerAllocationCount - (minSamplerHeapReservedRangeWithEmbedded
/
samplerDescriptorSize))
Samplerobjects currently created on the device - If any element of
pCreateInfossetsPIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXTand includes embedded sampler mappings, this command must not cause the total number of unique embedded samplers in pipelines and shaders on this device to exceed maxDescriptorHeapEmbeddedSamplers
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
- If
pipelineCacheis notNULL_HANDLE,pipelineCachemust be a validPipelineCachehandle -
pCreateInfosmust be a valid pointer to an array ofcreateInfoCountvalidComputePipelineCreateInfostructures - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pPipelinesmust be a valid pointer to an array ofcreateInfoCountPipelinehandles -
createInfoCountmust be greater than0 - If
pipelineCacheis a valid handle, it must have been created, allocated, or retrieved fromdevice
Return Codes
See Also
VK_VERSION_1_0,
AllocationCallbacks,
ComputePipelineCreateInfo, Device,
Pipeline, PipelineCache
withComputePipelines :: MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
createComputePipelines and destroyPipeline
To ensure that destroyPipeline is always called: pass
bracket (or the allocate function from your
favourite resource management library) as the last argument.
To just extract the pair pass (,) as the last argument.
Arguments
| :: MonadIO io | |
| => Device |
|
| -> Pipeline |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io () |
vkDestroyPipeline - Destroy a pipeline object
Valid Usage
- If
AllocationCallbackswere provided whenpipelinewas created, a compatible set of callbacks must be provided here - If no
AllocationCallbackswere provided whenpipelinewas created,pAllocatormust beNULL
Valid Usage (Implicit)
-
devicemust be a validDevicehandle
- If
pipelineis notNULL_HANDLE,pipelinemust be a validPipelinehandle - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure - If
pipelineis a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
pipelinemust be externally synchronized
See Also
data SpecializationMapEntry Source #
VkSpecializationMapEntry - Structure specifying a specialization map entry
Description
If a constantID value is not a specialization constant ID used in the
shader, that map entry does not affect the behavior of the pipeline.
Valid Usage
- For a
constantIDspecialization constant declared in a shader,sizemust match the byte size of theconstantID. If the specialization constant is of typeboolean,sizemust be the byte size ofBool32
See Also
Constructors
| SpecializationMapEntry | |
Fields | |
Instances
data SpecializationInfo Source #
VkSpecializationInfo - Structure specifying specialization information
Valid Usage
- The
sizemember of each element ofpMapEntriesmust be less than or equal todataSizeminusoffset - The
constantIDvalue of each element ofpMapEntriesmust be unique withinpMapEntries
Valid Usage (Implicit)
- If
mapEntryCountis not0,pMapEntriesmust be a valid pointer to an array ofmapEntryCountvalidSpecializationMapEntrystructures
See Also
VK_VERSION_1_0,
DataGraphPipelineShaderModuleCreateInfoARM,
PipelineShaderStageCreateInfo,
ShaderCreateInfoEXT,
SpecializationMapEntry
Constructors
| SpecializationInfo | |
Fields
| |
Instances
| Show SpecializationInfo Source # | |
Defined in Vulkan.Core10.ComputePipeline Methods showsPrec :: Int -> SpecializationInfo -> ShowS # show :: SpecializationInfo -> String # showList :: [SpecializationInfo] -> ShowS # | |
| FromCStruct SpecializationInfo Source # | |
Defined in Vulkan.Core10.ComputePipeline Methods peekCStruct :: Ptr SpecializationInfo -> IO SpecializationInfo Source # | |
| ToCStruct SpecializationInfo Source # | |
Defined in Vulkan.Core10.ComputePipeline Methods withCStruct :: SpecializationInfo -> (Ptr SpecializationInfo -> IO b) -> IO b Source # pokeCStruct :: Ptr SpecializationInfo -> SpecializationInfo -> IO b -> IO b Source # withZeroCStruct :: (Ptr SpecializationInfo -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr SpecializationInfo -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero SpecializationInfo Source # | |
Defined in Vulkan.Core10.ComputePipeline Methods | |
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
structure 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.
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
descriptorHeap
feature is not enabled,
ShaderDescriptorSetAndBindingMappingInfoEXT::mappingCountmust be 0
- If the
pNextchain specifies a descriptor mapping usingDESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT,DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT, orDESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT, the mapped resource in the shader must be a variable with a structure type decorated withBlockin theUniformStorageClass - If the
pNextchain specifies a descriptor mapping usingDESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT, the mapped structure must not be larger than the sum ofpushDataOffsetused in the mapping and maxPushDataSize - If the
pNextchain specifies a descriptor mapping usingDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT, the sum of mapped structure size andshaderRecordDataOffsetused in the mapping must not be larger than maxShaderGroupStride If the
pNextchain specifies a descriptor mapping usingDESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXTorDESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT, the mapped resource in the shader must be one of:- A variable with a structure type decorated with
Blockin theUniformStorageClass - A variable with a structure type decorated with
BufferBlockin theUniformStorageClass - A variable with a structure type decorated with
Blockin theStorageBufferStorageClass - A
OpTypeAccelerationStructureKHRvariable - A
OpTypeAccelerationStructureNVvariable
- A variable with a structure type decorated with
- If the
pNextchain specifies a descriptor mapping usingDESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT,DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT, orDESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT, theOpArrayLengthorOpUntypedArrayLengthKHRinstruction must not be used on that resource - If the
pNextchain specifies a descriptor mapping usingDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT,DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT, orDESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT, and the mapped resource declaration is an array, thepEmbeddedSamplermember of the corresponding mapping structure must beNULL - If the
geometryShader
feature is not enabled,
stagemust not beSHADER_STAGE_GEOMETRY_BIT - If the
tessellationShader
feature is not enabled,
stagemust not beSHADER_STAGE_TESSELLATION_CONTROL_BITorSHADER_STAGE_TESSELLATION_EVALUATION_BIT - If the
meshShaders
feature is not enabled,
stagemust not beSHADER_STAGE_MESH_BIT_EXT - If the
taskShaders
feature is not enabled,
stagemust not beSHADER_STAGE_TASK_BIT_EXT - If
the
clustercullingShader
feature is not enabled,
stagemust not beSHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI -
stagemust not beSHADER_STAGE_ALL_GRAPHICS, orSHADER_STAGE_ALL -
pNamemust be the name of anOpEntryPointinmodulewith an execution model that matchesstage - If the
identified entry point includes any variable in its interface that
is declared with the
ClipDistanceBuiltIndecoration, that variable must not have an array size greater thanPhysicalDeviceLimits::maxClipDistances - If the
identified entry point includes any variable in its interface that
is declared with the
CullDistanceBuiltIndecoration, that variable must not have an array size greater thanPhysicalDeviceLimits::maxCullDistances -
If the identified entry point includes variables in its interface
that are declared with the
ClipDistanceBuiltIndecoration and variables in its interface that are declared with theCullDistanceBuiltIndecoration, those variables must not have array sizes which sum to more thanPhysicalDeviceLimits::maxCombinedClipAndCullDistances - If
the identified entry point includes any variable in its interface
that is declared with the
SampleMaskBuiltIndecoration, that variable must not have an array size greater thanPhysicalDeviceLimits::maxSampleMaskWords - If
stageisSHADER_STAGE_TESSELLATION_CONTROL_BITorSHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has anOpExecutionModeinstruction specifying a patch size withOutputVertices, the patch size must be greater than0and less than or equal toPhysicalDeviceLimits::maxTessellationPatchSize - If
stageisSHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction specifying a maximum output vertex count that is greater than0and less than or equal toPhysicalDeviceLimits::maxGeometryOutputVertices - If
stageisSHADER_STAGE_GEOMETRY_BIT, the identified entry point must have anOpExecutionModeinstruction specifying an invocation count that is greater than0and less than or equal toPhysicalDeviceLimits::maxGeometryShaderInvocations - If
stageis eitherSHADER_STAGE_VERTEX_BIT,SHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_TESSELLATION_EVALUATION_BIT, orSHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes toLayerfor any primitive, it must write the same value toLayerfor all vertices of a given primitive - If
stageis eitherSHADER_STAGE_VERTEX_BIT,SHADER_STAGE_TESSELLATION_CONTROL_BIT,SHADER_STAGE_TESSELLATION_EVALUATION_BIT, orSHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes toViewportIndexfor any primitive, it must write the same value toViewportIndexfor all vertices of a given primitive - If
stageisSHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes toFragDepthin 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
stageisSHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes toFragStencilRefEXTin 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
flagshas thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BITflag set, the subgroupSizeControl feature must be enabled - If
flagshas thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BITflag set, the computeFullSubgroups feature must be enabled - If
flagsincludesPIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,stagemust be one ofSHADER_STAGE_MESH_BIT_EXT,SHADER_STAGE_TASK_BIT_EXT, orSHADER_STAGE_COMPUTE_BIT - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfostructure is included in thepNextchain,flagsmust not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BITflag set - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfostructure is included in thepNextchain, the subgroupSizeControl feature must be enabled, andstagemust be a valid bit specified in requiredSubgroupSizeStages - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfostructure is included in thepNextchain andstageisSHADER_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::requiredSubgroupSizeand maxComputeWorkgroupSubgroups - If a
PipelineShaderStageRequiredSubgroupSizeCreateInfostructure is included in thepNextchain, andflagshas thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BITflag set, the local workgroup size in the X dimension of the pipeline must be a multiple ofPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize - If
flagshas both thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BITandPIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BITflags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize - If
flagshas thePIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BITflag set andflagsdoes not have thePIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BITflag set and noPipelineShaderStageRequiredSubgroupSizeCreateInfostructure is included in thepNextchain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize - If
moduleuses theOpTypeCooperativeMatrixKHRinstruction with aScopeequal toSubgroup, then the local workgroup size in the X dimension of the pipeline must be a multiple of the effective subgroup size - If
moduleuses theOpTypeCooperativeMatrixKHRinstruction with aScopeequal toWorkgroup, then the local workgroup size in the X dimension of the pipeline must be a multiple of the effective subgroup size and the total local workgroup size must be a power of two multiple of the effective subgroup size and must be less than or equal to cooperativeMatrixWorkgroupScopeMaxWorkgroupSize If a shader module identifier is not specified for this
stage,modulemust be a validShaderModule, or thepNextchain of the parentVk*CreateInfostructure must setPipelineBinaryInfoKHR::binaryCountto a value greater than0, if none of the following features are enabled:- If a shader
module identifier is not specified for this
stage,modulemust be a validShaderModule, or there must be a validShaderModuleCreateInfostructure in thepNextchain , or thepNextchain of the parentVk*CreateInfostructure must setPipelineBinaryInfoKHR::binaryCountto a value greater than0, - If a shader
module identifier is specified for this
stage, thepNextchain must not include aShaderModuleCreateInfostructure - If a shader
module identifier is specified for this
stage,modulemust 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)
-
sTypemust beSTRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofDebugUtilsObjectNameInfoEXT,Promoted_From_VK_EXT_pipeline_robustnessAdditionalFunctionality.PipelineRobustnessCreateInfo',PipelineShaderStageModuleIdentifierCreateInfoEXT,PipelineShaderStageNodeCreateInfoAMDX,PipelineShaderStageRequiredSubgroupSizeCreateInfo,ShaderDescriptorSetAndBindingMappingInfoEXT,ShaderModuleCreateInfo, orShaderModuleValidationCacheCreateInfoEXT - The
sTypevalue of each structure in thepNextchain must be unique -
flagsmust be a valid combination ofPipelineShaderStageCreateFlagBitsvalues -
stagemust be a validShaderStageFlagBitsvalue - If
moduleis notNULL_HANDLE,modulemust be a validShaderModulehandle -
pNamemust be a null-terminated UTF-8 string -
If
pSpecializationInfois notNULL,pSpecializationInfomust be a valid pointer to a validSpecializationInfostructure
See Also
VK_VERSION_1_0,
ComputePipelineCreateInfo,
ExecutionGraphPipelineCreateInfoAMDX,
GraphicsPipelineCreateInfo,
GraphicsShaderGroupCreateInfoNV,
PipelineShaderStageCreateFlags,
RayTracingPipelineCreateInfoKHR,
RayTracingPipelineCreateInfoNV,
ShaderModule,
ShaderStageFlagBits,
SpecializationInfo, StructureType
Constructors
| PipelineShaderStageCreateInfo | |
Fields
| |
Instances
data ComputePipelineCreateInfo (es :: [Type]) Source #
VkComputePipelineCreateInfo - Structure specifying parameters of a newly created compute pipeline
Description
The parameters basePipelineHandle and basePipelineIndex are
described in more detail in
Pipeline Derivatives.
If the pNext chain includes a
PipelineCreateFlags2CreateInfo
structure,
PipelineCreateFlags2CreateInfo::flags
from that structure is used instead of flags from this structure.
Valid Usage
- If the
pNextchain does not include aPipelineCreateFlags2CreateInfostructure,flagsmust be a valid combination ofPipelineCreateFlagBitsvalues
- If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineIndexis -1,basePipelineHandlemust be a valid computePipelinehandle - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag, andbasePipelineHandleisNULL_HANDLE,basePipelineIndexmust be a valid index into the calling command’spCreateInfosparameter - If
flagscontains thePIPELINE_CREATE_DERIVATIVE_BITflag,basePipelineIndexmust be -1 orbasePipelineHandlemust beNULL_HANDLE - If a push constant
block is declared in a shader and
layoutis notNULL_HANDLE, a push constant range inlayoutmust match the shader stage - If a push constant
block is declared in a shader and
layoutis notNULL_HANDLE, the block must be contained inside the push constant range inlayoutthat matches the stage - If a
resource variable
is declared in a shader and
layoutis notNULL_HANDLE, the corresponding descriptor set inlayoutmust match the shader stage - If a
resource variable
is declared in a shader,
layoutis notNULL_HANDLE, and the descriptor type is notDESCRIPTOR_TYPE_MUTABLE_EXT, the corresponding descriptor set inlayoutmust match the descriptor type - If a
resource variable
is declared in a shader as an array and
layoutis notNULL_HANDLE, the corresponding descriptor binding used to createlayoutmust have adescriptorCountthat is greater than or equal to the length of the array - If a
resource variables
is declared in a shader as an array of descriptors, then the
descriptor type of that variable must not be
DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK - If
shader64BitIndexing
feature is not enabled,
flagsmust not containPIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT -
If the
pipelineCreationCacheControl
feature is not enabled,
flagsmust not includePIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BITnorPIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT - If
the
pipelineProtectedAccess
feature is not enabled,
flagsmust not includePIPELINE_CREATE_NO_PROTECTED_ACCESS_BITnorPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT -
flagsmust not include bothPIPELINE_CREATE_NO_PROTECTED_ACCESS_BITandPIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT - If
PipelineCreateFlags2CreateInfoKHR::flagsincludesPIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT,layoutmust beNULL_HANDLE - If
PipelineCreateFlags2CreateInfoKHR::flagsincludesPIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT, all shader variables in the shader resource interface with aDescriptorSetandBindingdecoration must have a mapping declared inShaderDescriptorSetAndBindingMappingInfoEXT::pMappings -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV - If the
::deviceGeneratedComputePipelines
feature is not enabled,
flagsmust not includePIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV - If
flagsincludesPIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then thepNextchain must include a pointer to a valid instance ofComputePipelineIndirectBufferInfoNVspecifying the address where the pipeline’s metadata will be saved - If
flagsincludesPIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT, then the ::deviceGeneratedCommands feature must be enabled - The
stagemember ofstagemust beSHADER_STAGE_COMPUTE_BIT - The shader code for
the entry point identified by
stageand the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter - If
layoutis notNULL_HANDLE, the number of resources inlayoutaccessible to the compute shader stage must be less than or equal toPhysicalDeviceLimits::maxPerStageResources - If the
shaderEnqueue
feature is not enabled,
flagsmust not includePIPELINE_CREATE_LIBRARY_BIT_KHR - If
flagsdoes not includePIPELINE_CREATE_LIBRARY_BIT_KHR, the shader specified bystagemust not declare theShaderEnqueueAMDXcapability -
If
PipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCountis not0, it must be1 -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT -
flagsmust not includePIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV - If
PipelineCreateFlags2CreateInfoKHR::flagsdoes not includePIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT,layoutmust not beNULL_HANDLE
Valid Usage (Implicit)
-
sTypemust beSTRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
- Each
pNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance ofComputePipelineIndirectBufferInfoNV,PipelineBinaryInfoKHR,PipelineCompilerControlCreateInfoAMD,PipelineCreateFlags2CreateInfo,PipelineCreationFeedbackCreateInfo,Promoted_From_VK_EXT_pipeline_robustnessAdditionalFunctionality.PipelineRobustnessCreateInfo', orSubpassShadingPipelineCreateInfoHUAWEI - The
sTypevalue of each structure in thepNextchain must be unique -
stagemust be a validPipelineShaderStageCreateInfostructure - If
layoutis notNULL_HANDLE,layoutmust be a validPipelineLayouthandle - Both of
basePipelineHandle, andlayoutthat are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the sameDevice
See Also
VK_VERSION_1_0,
Pipeline,
PipelineCreateFlags,
PipelineLayout, PipelineShaderStageCreateInfo,
StructureType,
createComputePipelines,
getPipelineIndirectMemoryRequirementsNV
Constructors
| ComputePipelineCreateInfo | |
Fields
| |
Instances
VkPipeline - Opaque handle to a pipeline object
See Also
VK_DEFINE_NON_DISPATCHABLE_HANDLE,
VK_VERSION_1_0,
ComputePipelineCreateInfo,
DataGraphPipelineInfoARM,
DataGraphPipelineSessionCreateInfoARM,
ExecutionGraphPipelineCreateInfoAMDX,
GeneratedCommandsInfoNV,
GeneratedCommandsMemoryRequirementsInfoNV,
GeneratedCommandsPipelineInfoEXT,
GraphicsPipelineCreateInfo,
GraphicsPipelineShaderGroupsCreateInfoNV,
IndirectExecutionSetPipelineInfoEXT,
PipelineBinaryCreateInfoKHR,
PipelineExecutableInfoKHR,
PipelineIndirectDeviceAddressInfoNV,
PipelineInfoKHR,
PipelineLibraryCreateInfoKHR,
RayTracingPipelineCreateInfoKHR,
RayTracingPipelineCreateInfoNV,
ReleaseCapturedPipelineDataInfoKHR,
WriteIndirectExecutionSetPipelineEXT,
cmdBindPipeline,
cmdBindPipelineShaderGroupNV,
cmdInitializeGraphScratchMemoryAMDX,
cmdUpdatePipelineIndirectBufferNV,
compileDeferredNV,
createComputePipelines,
createDataGraphPipelinesARM,
createExecutionGraphPipelinesAMDX,
createGraphicsPipelines,
createRayTracingPipelinesKHR,
createRayTracingPipelinesNV,
destroyPipeline,
getExecutionGraphPipelineNodeIndexAMDX,
getExecutionGraphPipelineScratchSizeAMDX,
getRayTracingCaptureReplayShaderGroupHandlesKHR,
getRayTracingShaderGroupHandlesKHR,
getRayTracingShaderGroupHandlesKHR,
getRayTracingShaderGroupStackSizeKHR,
getShaderInfoAMD
Instances
| Eq Pipeline Source # | |
| Ord Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
| Storable Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
| Show Pipeline Source # | |
| HasObjectType Pipeline Source # | |
Defined in Vulkan.Core10.Handles Methods objectTypeAndHandle :: Pipeline -> (ObjectType, Word64) Source # | |
| IsHandle Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
| Zero Pipeline Source # | |
Defined in Vulkan.Core10.Handles | |
newtype ShaderStageFlagBits Source #
VkShaderStageFlagBits - Bitmask specifying a pipeline stage
Description
SHADER_STAGE_VERTEX_BITspecifies the vertex stage.
SHADER_STAGE_TESSELLATION_CONTROL_BITspecifies the tessellation control stage.SHADER_STAGE_TESSELLATION_EVALUATION_BITspecifies the tessellation evaluation stage.SHADER_STAGE_GEOMETRY_BITspecifies the geometry stage.SHADER_STAGE_FRAGMENT_BITspecifies the fragment stage.SHADER_STAGE_COMPUTE_BITspecifies the compute stage.SHADER_STAGE_ALL_GRAPHICSis a combination of bits used as shorthand to specify all graphics stages defined above (excluding the compute stage).SHADER_STAGE_ALLis a combination of bits used as shorthand to specify all shader stages supported by the device, including all additional stages which are introduced by extensions.SHADER_STAGE_TASK_BIT_EXTspecifies the task stage.SHADER_STAGE_MESH_BIT_EXTspecifies the mesh stage.SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEIspecifies the cluster culling stage.SHADER_STAGE_RAYGEN_BIT_KHRspecifies the ray generation stage.SHADER_STAGE_ANY_HIT_BIT_KHRspecifies the any-hit stage.SHADER_STAGE_CLOSEST_HIT_BIT_KHRspecifies the closest hit stage.SHADER_STAGE_MISS_BIT_KHRspecifies the miss stage.SHADER_STAGE_INTERSECTION_BIT_KHRspecifies the intersection stage.SHADER_STAGE_CALLABLE_BIT_KHRspecifies the callable stage.
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
Constructors
| ShaderStageFlagBits Flags |
Bundled Patterns
Instances
newtype PipelineCreateFlagBits Source #
VkPipelineCreateFlagBits - Bitmask controlling how a pipeline is created
Description
PIPELINE_CREATE_DISABLE_OPTIMIZATION_BITspecifies that the created pipeline will not be optimized. Using this flag may reduce the time taken to create the pipeline.
PIPELINE_CREATE_ALLOW_DERIVATIVES_BITspecifies that the pipeline to be created is allowed to be the parent of a pipeline that will be created in a subsequent pipeline creation call.PIPELINE_CREATE_DERIVATIVE_BITspecifies that the pipeline to be created will be a child of a previously created parent pipeline.PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BITspecifies that any shader input variables decorated asViewIndexwill be assigned values as if they were decorated asDeviceIndex.PIPELINE_CREATE_DISPATCH_BASE_BITspecifies that a compute pipeline can be used withcmdDispatchBasewith a non-zero base workgroup.PIPELINE_CREATE_DEFER_COMPILE_BIT_NVspecifies that a pipeline is created with all shaders in the deferred state. Before using the pipeline the application must callcompileDeferredNVexactly once on each shader in the pipeline before using the pipeline.PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHRspecifies that the shader compiler should capture statistics for the 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_KHRspecifies 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_KHRspecifies that the pipeline cannot be used directly, and instead defines a pipeline library that can be combined with other pipelines using thePipelineLibraryCreateInfoKHRstructure. This is available in ray tracing and graphics pipelines.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHRspecifies that an any-hit shader will always be present when an any-hit shader would be executed. 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_KHRspecifies 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_KHRspecifies 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_KHRspecifies 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_KHRspecifies that sphere, LSS and triangle primitives will be skipped during traversal using pipeline trace ray instructions.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRspecifies that AABB primitives will be skipped during traversal using pipeline trace ray instructions.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHRspecifies that the shader group handles can be saved and reused on a subsequent run (e.g. for trace capture and replay).PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NVspecifies that the pipeline can be used in combination with https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#device-generated-commands.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BITspecifies that pipeline creation will fail if a compile is required for creation of a validPipelineobject;PIPELINE_COMPILE_REQUIREDwill be returned by pipeline creation, and thePipelinewill beNULL_HANDLE.- When creating multiple pipelines,
PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BITspecifies that control will be returned to the application if any individual pipeline returns a result which is notSUCCESSrather than continuing to create additional pipelines. PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NVspecifies that the pipeline is allowed to useOpTraceRayMotionNV.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRspecifies that the pipeline will be used with a fragment shading rate attachment and dynamic rendering.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXTspecifies that the pipeline will be used with a fragment density map attachment and dynamic rendering.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXTspecifies 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_EXTspecifies 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_EXTspecifies that a pipeline will be used with descriptor buffers, rather than descriptor sets.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTspecifies that the pipeline may be used with an attachment feedback loop including color attachments. It is ignored ifDYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXTis set inpDynamicStates.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTspecifies that the pipeline may be used with an attachment feedback loop including depth-stencil attachments. It is ignored ifDYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXTis set inpDynamicStates.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXTspecifies that the ray tracing pipeline can be used with acceleration structures which reference an opacity micromap array.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NVspecifies that the ray tracing pipeline can be used with acceleration structures which reference a displacement micromap array.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BITspecifies that the pipeline must not be bound to a protected command buffer.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BITspecifies 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.
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
Constructors
| PipelineCreateFlagBits Flags |
Bundled Patterns
Instances
newtype PipelineShaderStageCreateFlagBits Source #
VkPipelineShaderStageCreateFlagBits - Bitmask controlling how a pipeline shader stage is created
Description
PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BITspecifies that the SubgroupSize may vary in the shader stage.
PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BITspecifies that the subgroup sizes must be launched with all invocations active in the task, mesh, or compute stage.
If
PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
and
PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
are specified and
minSubgroupSize
does not equal
maxSubgroupSize
and no
required subgroup size
is specified, then the only way to guarantee that the 'X' dimension of
the local workgroup size is a multiple of
SubgroupSize
is to make it a multiple of maxSubgroupSize. Under these conditions,
you are guaranteed full subgroups but not any particular subgroup size.
See Also
Constructors
| PipelineShaderStageCreateFlagBits Flags |
Bundled Patterns
Instances
newtype PipelineLayoutCreateFlagBits Source #
VkPipelineLayoutCreateFlagBits - Pipeline layout creation flag bits
Description
PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXTspecifies that implementations must ensure that the properties and/or absence of a particular descriptor set do not influence any other properties of the pipeline layout. This allows pipelines libraries linked withoutPIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXTto be created with a subset of the total descriptor sets.
See Also
Constructors
| PipelineLayoutCreateFlagBits Flags |
Bundled Patterns
| pattern PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT :: PipelineLayoutCreateFlagBits |