vulkan-3.3.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_NV_device_generated_commands

Synopsis

Documentation

cmdExecuteGeneratedCommandsNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command is recorded.

-> ("isPreprocessed" ::: Bool)

isPreprocessed represents whether the input data has already been preprocessed on the device. If it is FALSE this command will implicitly trigger the preprocessing step, otherwise not.

-> GeneratedCommandsInfoNV

pGeneratedCommandsInfo is a pointer to an instance of the GeneratedCommandsInfoNV structure containing parameters affecting the generation of commands.

-> io () 

vkCmdExecuteGeneratedCommandsNV - Performs the generation and execution of commands on the device

Valid Usage

  • [[VUID-{refpage}-None-02691]] If a ImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
  • [[VUID-{refpage}-None-02692]] If a ImageView is sampled with FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
  • [[VUID-{refpage}-filterCubic-02694]] Any ImageView being sampled with FILTER_CUBIC_EXT as a result of this command must have a ImageViewType and format that supports cubic filtering, as specified by FilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by getPhysicalDeviceImageFormatProperties2
  • [[VUID-{refpage}-filterCubicMinmax-02695]] Any ImageView being sampled with FILTER_CUBIC_EXT with a reduction mode of either SAMPLER_REDUCTION_MODE_MIN or SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a ImageViewType and format that supports cubic filtering together with minmax filtering, as specified by FilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by getPhysicalDeviceImageFormatProperties2
  • [[VUID-{refpage}-flags-02696]] Any Image created with a ImageCreateInfo::flags containing IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a SamplerAddressMode of SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
  • [[VUID-{refpage}-None-02697]] For each set n that is statically used by the Pipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a PipelineLayout that is compatible for set n, with the PipelineLayout used to create the current Pipeline, as described in ???
  • [[VUID-{refpage}-None-02698]] For each push constant that is statically used by the Pipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a PipelineLayout that is compatible for push constants, with the PipelineLayout used to create the current Pipeline, as described in ???
  • [[VUID-{refpage}-None-02699]] Descriptors in each bound descriptor set, specified via cmdBindDescriptorSets, must be valid if they are statically used by the Pipeline bound to the pipeline bind point used by this command
  • [[VUID-{refpage}-None-02700]] A valid pipeline must be bound to the pipeline bind point used by this command
  • [[VUID-{refpage}-commandBuffer-02701]] If the Pipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
  • [[VUID-{refpage}-None-02859]] There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the Pipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
  • [[VUID-{refpage}-None-02702]] If the Pipeline object bound to the pipeline bind point used by this command accesses a Sampler object that uses unnormalized coordinates, that sampler must not be used to sample from any Image with a ImageView of the type IMAGE_VIEW_TYPE_3D, IMAGE_VIEW_TYPE_CUBE, IMAGE_VIEW_TYPE_1D_ARRAY, IMAGE_VIEW_TYPE_2D_ARRAY or IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
  • [[VUID-{refpage}-None-02703]] If the Pipeline object bound to the pipeline bind point used by this command accesses a Sampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage
  • [[VUID-{refpage}-None-02704]] If the Pipeline object bound to the pipeline bind point used by this command accesses a Sampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage
  • [[VUID-{refpage}-None-02705]] If the robust buffer access feature is not enabled, and if the Pipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • [[VUID-{refpage}-None-02706]] If the robust buffer access feature is not enabled, and if the Pipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
  • [[VUID-{refpage}-commandBuffer-02707]] If commandBuffer is an unprotected command buffer, any resource accessed by the Pipeline object bound to the pipeline bind point used by this command must not be a protected resource
  • [[VUID-{refpage}-renderPass-02684]] The current render pass must be compatible with the renderPass member of the GraphicsPipelineCreateInfo structure specified when creating the Pipeline bound to PIPELINE_BIND_POINT_GRAPHICS
  • [[VUID-{refpage}-subpass-02685]] The subpass index of the current render pass must be equal to the subpass member of the GraphicsPipelineCreateInfo structure specified when creating the Pipeline bound to PIPELINE_BIND_POINT_GRAPHICS
  • [[VUID-{refpage}-None-02686]] Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set
  • [[VUID-{refpage}-None-02687]] Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command
  • [[VUID-{refpage}-maxMultiviewInstanceIndex-02688]] If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to PhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
  • [[VUID-{refpage}-sampleLocationsEnable-02689]] If the bound graphics pipeline was created with PipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set
  • [[VUID-{refpage}-None-04007]] All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or NULL_HANDLE buffers bound
  • [[VUID-{refpage}-None-04008]] If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be NULL_HANDLE
  • [[VUID-{refpage}-None-02721]] For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in ???
  • commandBuffer must not be a protected command buffer
  • If isPreprocessed is TRUE then cmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except GeneratedCommandsInfoNV::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set
  • GeneratedCommandsInfoNV::pipeline must match the current bound pipeline at GeneratedCommandsInfoNV::pipelineBindPoint
  • Transform feedback must not be active
  • The ::deviceGeneratedCommands feature must be enabled

Valid Usage (Implicit)

  • pGeneratedCommandsInfo must be a valid pointer to a valid GeneratedCommandsInfoNV structure
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics, or compute operations
  • This command must only be called inside of a render pass instance

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Inside Graphics Compute

See Also

Bool32, CommandBuffer, GeneratedCommandsInfoNV

cmdPreprocessGeneratedCommandsNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer which does the preprocessing.

-> GeneratedCommandsInfoNV

pGeneratedCommandsInfo is a pointer to an instance of the GeneratedCommandsInfoNV structure containing parameters affecting the preprocessing step.

-> io () 

vkCmdPreprocessGeneratedCommandsNV - Performs preprocessing for generated commands

Valid Usage

  • commandBuffer must not be a protected command buffer

Valid Usage (Implicit)

  • pGeneratedCommandsInfo must be a valid pointer to a valid GeneratedCommandsInfoNV structure
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics, or compute operations
  • This command must only be called outside of a render pass instance

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Outside Graphics Compute

See Also

CommandBuffer, GeneratedCommandsInfoNV

cmdBindPipelineShaderGroupNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer that the pipeline will be bound to.

-> PipelineBindPoint

pipelineBindPoint is a PipelineBindPoint value specifying to which bind point the pipeline is bound.

-> Pipeline

pipeline is the pipeline to be bound.

-> ("groupIndex" ::: Word32)

groupIndex is the shader group to be bound.

-> io () 

vkCmdBindPipelineShaderGroupNV - Bind a pipeline object

Valid Usage

Valid Usage (Implicit)

  • pipelineBindPoint must be a valid PipelineBindPoint value
  • pipeline must be a valid Pipeline handle
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics, or compute operations
  • Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Both Graphics Compute

See Also

CommandBuffer, Pipeline, PipelineBindPoint

getGeneratedCommandsMemoryRequirementsNV Source #

Arguments

:: forall a io. (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) 
=> Device

device is the logical device that owns the buffer.

-> GeneratedCommandsMemoryRequirementsInfoNV

pInfo is a pointer to an instance of the GeneratedCommandsMemoryRequirementsInfoNV structure containing parameters required for the memory requirements query.

-> io (MemoryRequirements2 a) 

vkGetGeneratedCommandsMemoryRequirementsNV - Retrieve the buffer allocation requirements for generated commands

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

See Also

Device, GeneratedCommandsMemoryRequirementsInfoNV, MemoryRequirements2

createIndirectCommandsLayoutNV Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that creates the indirect command layout.

-> IndirectCommandsLayoutCreateInfoNV

pCreateInfo is a pointer to an instance of the IndirectCommandsLayoutCreateInfoNV structure containing parameters affecting creation of the indirect command layout.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator controls host memory allocation as described in the Memory Allocation chapter.

-> io IndirectCommandsLayoutNV 

vkCreateIndirectCommandsLayoutNV - Create an indirect command layout object

Valid Usage

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

AllocationCallbacks, Device, IndirectCommandsLayoutCreateInfoNV, IndirectCommandsLayoutNV

withIndirectCommandsLayoutNV :: forall io r. MonadIO io => Device -> IndirectCommandsLayoutCreateInfoNV -> Maybe AllocationCallbacks -> (io IndirectCommandsLayoutNV -> (IndirectCommandsLayoutNV -> io ()) -> r) -> r Source #

A convenience wrapper to make a compatible pair of calls to createIndirectCommandsLayoutNV and destroyIndirectCommandsLayoutNV

To ensure that destroyIndirectCommandsLayoutNV is always called: pass bracket (or the allocate function from your favourite resource management library) as the first argument. To just extract the pair pass (,) as the first argument.

destroyIndirectCommandsLayoutNV Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that destroys the layout.

-> IndirectCommandsLayoutNV

indirectCommandsLayout is the layout to destroy.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator controls host memory allocation as described in the Memory Allocation chapter.

-> io () 

vkDestroyIndirectCommandsLayoutNV - Destroy an indirect commands layout

Valid Usage

  • All submitted commands that refer to indirectCommandsLayout must have completed execution

Valid Usage (Implicit)

  • device must be a valid Device handle
  • If indirectCommandsLayout is not NULL_HANDLE, indirectCommandsLayout must be a valid IndirectCommandsLayoutNV handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • If indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to indirectCommandsLayout must be externally synchronized

See Also

AllocationCallbacks, Device, IndirectCommandsLayoutNV

data PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source #

VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV - Structure describing the device-generated commands features that can be supported by an implementation

Members

The members of the PhysicalDeviceDeviceGeneratedCommandsFeaturesNV structure describe the following features:

Description

If the PhysicalDeviceDeviceGeneratedCommandsFeaturesNV structure is included in the pNext chain of PhysicalDeviceFeatures2, it is filled with values indicating whether the feature is supported. PhysicalDeviceDeviceGeneratedCommandsFeaturesNV can also be used in the pNext chain of DeviceCreateInfo to enable the features.

Valid Usage (Implicit)

See Also

Bool32, StructureType

Constructors

PhysicalDeviceDeviceGeneratedCommandsFeaturesNV 

Fields

Instances

Instances details
Eq PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Storable PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep PhysicalDeviceDeviceGeneratedCommandsFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = D1 ('MetaData "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "deviceGeneratedCommands") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool)))

data PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source #

VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV - Structure describing push descriptor limits that can be supported by an implementation

Valid Usage (Implicit)

See Also

StructureType

Constructors

PhysicalDeviceDeviceGeneratedCommandsPropertiesNV 

Fields

Instances

Instances details
Eq PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Storable PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep PhysicalDeviceDeviceGeneratedCommandsPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = D1 ('MetaData "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV" 'PrefixI 'True) (((S1 ('MetaSel ('Just "maxGraphicsShaderGroupCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "maxIndirectSequenceCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just "maxIndirectCommandsTokenCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "maxIndirectCommandsStreamCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32))) :*: ((S1 ('MetaSel ('Just "maxIndirectCommandsTokenOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "maxIndirectCommandsStreamStride") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32)) :*: (S1 ('MetaSel ('Just "minSequencesCountBufferOffsetAlignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: (S1 ('MetaSel ('Just "minSequencesIndexBufferOffsetAlignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "minIndirectCommandsBufferOffsetAlignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32))))))

data GraphicsShaderGroupCreateInfoNV Source #

VkGraphicsShaderGroupCreateInfoNV - Structure specifying override parameters for each shader group

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL
  • pStages must be a valid pointer to an array of stageCount valid PipelineShaderStageCreateInfo structures
  • stageCount must be greater than 0

See Also

GraphicsPipelineShaderGroupsCreateInfoNV, PipelineShaderStageCreateInfo, PipelineTessellationStateCreateInfo, PipelineVertexInputStateCreateInfo, StructureType

Constructors

GraphicsShaderGroupCreateInfoNV 

Fields

Instances

Instances details
Show GraphicsShaderGroupCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic GraphicsShaderGroupCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep GraphicsShaderGroupCreateInfoNV :: Type -> Type #

FromCStruct GraphicsShaderGroupCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct GraphicsShaderGroupCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero GraphicsShaderGroupCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GraphicsShaderGroupCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GraphicsShaderGroupCreateInfoNV = D1 ('MetaData "GraphicsShaderGroupCreateInfoNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "GraphicsShaderGroupCreateInfoNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "stages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector (SomeStruct PipelineShaderStageCreateInfo))) :*: (S1 ('MetaSel ('Just "vertexInputState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (SomeStruct PipelineVertexInputStateCreateInfo))) :*: S1 ('MetaSel ('Just "tessellationState") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (SomeStruct PipelineTessellationStateCreateInfo))))))

data GraphicsPipelineShaderGroupsCreateInfoNV Source #

VkGraphicsPipelineShaderGroupsCreateInfoNV - Structure specifying parameters of a newly created multi shader group pipeline

Description

When referencing shader groups by index, groups defined in the referenced pipelines are treated as if they were defined as additional entries in pGroups. They are appended in the order they appear in the pPipelines array and in the pGroups array when those pipelines were defined.

The application must maintain the lifetime of all such referenced pipelines based on the pipelines that make use of them.

Valid Usage

  • The sum of groupCount including those groups added from referenced pPipelines must also be as maximum PhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount
  • The state of the first element of pGroups must match its equivalent within the parent’s GraphicsPipelineCreateInfo
  • Each element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration
  • All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid
  • Mesh and regular primitive shading stages cannot be mixed across pGroups
  • Each element of the pPipelines member of libraries must have been created with identical state to the pipeline currently created except the state that can be overriden by GraphicsShaderGroupCreateInfoNV
  • The ::deviceGeneratedCommands feature must be enabled

Valid Usage (Implicit)

  • pGroups must be a valid pointer to an array of groupCount valid GraphicsShaderGroupCreateInfoNV structures
  • If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid Pipeline handles
  • groupCount must be greater than 0

See Also

GraphicsShaderGroupCreateInfoNV, Pipeline, StructureType

Constructors

GraphicsPipelineShaderGroupsCreateInfoNV 

Fields

Instances

Instances details
Show GraphicsPipelineShaderGroupsCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic GraphicsPipelineShaderGroupsCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct GraphicsPipelineShaderGroupsCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct GraphicsPipelineShaderGroupsCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero GraphicsPipelineShaderGroupsCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GraphicsPipelineShaderGroupsCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GraphicsPipelineShaderGroupsCreateInfoNV = D1 ('MetaData "GraphicsPipelineShaderGroupsCreateInfoNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "GraphicsPipelineShaderGroupsCreateInfoNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "groups") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector GraphicsShaderGroupCreateInfoNV)) :*: S1 ('MetaSel ('Just "pipelines") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector Pipeline))))

data BindShaderGroupIndirectCommandNV Source #

VkBindShaderGroupIndirectCommandNV - Structure specifying input data for a single shader group command token

Valid Usage

  • The index must be within range of the accessible shader groups of the current bound graphics pipeline. See cmdBindPipelineShaderGroupNV for further details

See Also

No cross-references are available

Instances

Instances details
Eq BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep BindShaderGroupIndirectCommandNV :: Type -> Type #

Storable BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep BindShaderGroupIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep BindShaderGroupIndirectCommandNV = D1 ('MetaData "BindShaderGroupIndirectCommandNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "BindShaderGroupIndirectCommandNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "groupIndex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32)))

data BindIndexBufferIndirectCommandNV Source #

VkBindIndexBufferIndirectCommandNV - Structure specifying input data for a single index buffer command token

Valid Usage

  • The bufferAddress must be aligned to the indexType used
  • Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single DeviceMemory object

Valid Usage (Implicit)

See Also

DeviceAddress, IndexType

Constructors

BindIndexBufferIndirectCommandNV 

Fields

Instances

Instances details
Eq BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep BindIndexBufferIndirectCommandNV :: Type -> Type #

Storable BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep BindIndexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep BindIndexBufferIndirectCommandNV = D1 ('MetaData "BindIndexBufferIndirectCommandNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "BindIndexBufferIndirectCommandNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "bufferAddress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DeviceAddress) :*: (S1 ('MetaSel ('Just "size") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "indexType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IndexType))))

data BindVertexBufferIndirectCommandNV Source #

VkBindVertexBufferIndirectCommandNV - Structure specifying input data for a single vertex buffer command token

Valid Usage

  • Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single DeviceMemory object

See Also

DeviceAddress

Constructors

BindVertexBufferIndirectCommandNV 

Fields

Instances

Instances details
Eq BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep BindVertexBufferIndirectCommandNV :: Type -> Type #

Storable BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep BindVertexBufferIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep BindVertexBufferIndirectCommandNV = D1 ('MetaData "BindVertexBufferIndirectCommandNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "BindVertexBufferIndirectCommandNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "bufferAddress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DeviceAddress) :*: (S1 ('MetaSel ('Just "size") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "stride") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32))))

data SetStateFlagsIndirectCommandNV Source #

VkSetStateFlagsIndirectCommandNV - Structure specifying input data for a single state flag command token

See Also

No cross-references are available

Constructors

SetStateFlagsIndirectCommandNV 

Fields

Instances

Instances details
Eq SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep SetStateFlagsIndirectCommandNV :: Type -> Type #

Storable SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep SetStateFlagsIndirectCommandNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep SetStateFlagsIndirectCommandNV = D1 ('MetaData "SetStateFlagsIndirectCommandNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "SetStateFlagsIndirectCommandNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "data'") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32)))

data IndirectCommandsStreamNV Source #

VkIndirectCommandsStreamNV - Structure specifying input streams for generated command tokens

Valid Usage

Valid Usage (Implicit)

  • buffer must be a valid Buffer handle

See Also

Buffer, DeviceSize, GeneratedCommandsInfoNV

Constructors

IndirectCommandsStreamNV 

Fields

  • buffer :: Buffer

    buffer specifies the Buffer storing the functional arguments for each sequence. These arguments can be written by the device.

  • offset :: DeviceSize

    offset specified an offset into buffer where the arguments start.

Instances

Instances details
Eq IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep IndirectCommandsStreamNV :: Type -> Type #

Storable IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep IndirectCommandsStreamNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep IndirectCommandsStreamNV = D1 ('MetaData "IndirectCommandsStreamNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "IndirectCommandsStreamNV" 'PrefixI 'True) (S1 ('MetaSel ('Just "buffer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Buffer) :*: S1 ('MetaSel ('Just "offset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DeviceSize)))

data IndirectCommandsLayoutTokenNV Source #

VkIndirectCommandsLayoutTokenNV - Struct specifying the details of an indirect command layout token

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL
  • tokenType must be a valid IndirectCommandsTokenTypeNV value
  • If pushconstantPipelineLayout is not NULL_HANDLE, pushconstantPipelineLayout must be a valid PipelineLayout handle
  • pushconstantShaderStageFlags must be a valid combination of ShaderStageFlagBits values
  • indirectStateFlags must be a valid combination of IndirectStateFlagBitsNV values
  • If indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid IndexType values
  • If indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values

See Also

Bool32, IndexType, IndirectCommandsLayoutCreateInfoNV, IndirectCommandsTokenTypeNV, IndirectStateFlagsNV, PipelineLayout, ShaderStageFlags, StructureType

Constructors

IndirectCommandsLayoutTokenNV 

Fields

Instances

Instances details
Show IndirectCommandsLayoutTokenNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic IndirectCommandsLayoutTokenNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep IndirectCommandsLayoutTokenNV :: Type -> Type #

FromCStruct IndirectCommandsLayoutTokenNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct IndirectCommandsLayoutTokenNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero IndirectCommandsLayoutTokenNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep IndirectCommandsLayoutTokenNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep IndirectCommandsLayoutTokenNV = D1 ('MetaData "IndirectCommandsLayoutTokenNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "IndirectCommandsLayoutTokenNV" 'PrefixI 'True) (((S1 ('MetaSel ('Just "tokenType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IndirectCommandsTokenTypeNV) :*: (S1 ('MetaSel ('Just "stream") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "offset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32))) :*: (S1 ('MetaSel ('Just "vertexBindingUnit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: (S1 ('MetaSel ('Just "vertexDynamicStride") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "pushconstantPipelineLayout") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PipelineLayout)))) :*: ((S1 ('MetaSel ('Just "pushconstantShaderStageFlags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ShaderStageFlags) :*: (S1 ('MetaSel ('Just "pushconstantOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "pushconstantSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32))) :*: (S1 ('MetaSel ('Just "indirectStateFlags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IndirectStateFlagsNV) :*: (S1 ('MetaSel ('Just "indexTypes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector IndexType)) :*: S1 ('MetaSel ('Just "indexTypeValues") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector Word32)))))))

data IndirectCommandsLayoutCreateInfoNV Source #

VkIndirectCommandsLayoutCreateInfoNV - Structure specifying the parameters of a newly created indirect commands layout object

Description

The following code illustrates some of the flags:

void cmdProcessAllSequences(cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sequencesCount, indexbuffer, indexbufferOffset)
{
  for (s = 0; s < sequencesCount; s++)
  {
    sUsed = s;

    if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV) {
      sUsed = indexbuffer.load_uint32( sUsed * sizeof(uint32_t) + indexbufferOffset);
    }

    if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV) {
      sUsed = incoherent_implementation_dependent_permutation[ sUsed ];
    }

    cmdProcessSequence( cmd, pipeline, indirectCommandsLayout, pIndirectCommandsTokens, sUsed );
  }
}

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL
  • flags must be a valid combination of IndirectCommandsLayoutUsageFlagBitsNV values
  • flags must not be 0
  • pipelineBindPoint must be a valid PipelineBindPoint value
  • pTokens must be a valid pointer to an array of tokenCount valid IndirectCommandsLayoutTokenNV structures
  • pStreamStrides must be a valid pointer to an array of streamCount uint32_t values
  • tokenCount must be greater than 0
  • streamCount must be greater than 0

See Also

IndirectCommandsLayoutTokenNV, IndirectCommandsLayoutUsageFlagsNV, PipelineBindPoint, StructureType, createIndirectCommandsLayoutNV

Constructors

IndirectCommandsLayoutCreateInfoNV 

Fields

Instances

Instances details
Show IndirectCommandsLayoutCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic IndirectCommandsLayoutCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep IndirectCommandsLayoutCreateInfoNV :: Type -> Type #

FromCStruct IndirectCommandsLayoutCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct IndirectCommandsLayoutCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero IndirectCommandsLayoutCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep IndirectCommandsLayoutCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep IndirectCommandsLayoutCreateInfoNV = D1 ('MetaData "IndirectCommandsLayoutCreateInfoNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "IndirectCommandsLayoutCreateInfoNV" 'PrefixI 'True) ((S1 ('MetaSel ('Just "flags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IndirectCommandsLayoutUsageFlagsNV) :*: S1 ('MetaSel ('Just "pipelineBindPoint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PipelineBindPoint)) :*: (S1 ('MetaSel ('Just "tokens") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector IndirectCommandsLayoutTokenNV)) :*: S1 ('MetaSel ('Just "streamStrides") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector Word32)))))

data GeneratedCommandsInfoNV Source #

VkGeneratedCommandsInfoNV - Structure specifying parameters for the generation of commands

Valid Usage

  • The provided pipeline must match the pipeline bound at execution time

Valid Usage (Implicit)

  • pNext must be NULL
  • pipelineBindPoint must be a valid PipelineBindPoint value
  • pipeline must be a valid Pipeline handle
  • indirectCommandsLayout must be a valid IndirectCommandsLayoutNV handle
  • pStreams must be a valid pointer to an array of streamCount valid IndirectCommandsStreamNV structures
  • preprocessBuffer must be a valid Buffer handle
  • If sequencesCountBuffer is not NULL_HANDLE, sequencesCountBuffer must be a valid Buffer handle
  • If sequencesIndexBuffer is not NULL_HANDLE, sequencesIndexBuffer must be a valid Buffer handle
  • streamCount must be greater than 0
  • Each of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

See Also

Buffer, DeviceSize, IndirectCommandsLayoutNV, IndirectCommandsStreamNV, Pipeline, PipelineBindPoint, StructureType, cmdExecuteGeneratedCommandsNV, cmdPreprocessGeneratedCommandsNV

Constructors

GeneratedCommandsInfoNV 

Fields

Instances

Instances details
Show GeneratedCommandsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic GeneratedCommandsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Associated Types

type Rep GeneratedCommandsInfoNV :: Type -> Type #

FromCStruct GeneratedCommandsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct GeneratedCommandsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero GeneratedCommandsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GeneratedCommandsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GeneratedCommandsInfoNV = D1 ('MetaData "GeneratedCommandsInfoNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "GeneratedCommandsInfoNV" 'PrefixI 'True) (((S1 ('MetaSel ('Just "pipelineBindPoint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PipelineBindPoint) :*: (S1 ('MetaSel ('Just "pipeline") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Pipeline) :*: S1 ('MetaSel ('Just "indirectCommandsLayout") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IndirectCommandsLayoutNV))) :*: (S1 ('MetaSel ('Just "streams") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector IndirectCommandsStreamNV)) :*: (S1 ('MetaSel ('Just "sequencesCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "preprocessBuffer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Buffer)))) :*: ((S1 ('MetaSel ('Just "preprocessOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DeviceSize) :*: (S1 ('MetaSel ('Just "preprocessSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DeviceSize) :*: S1 ('MetaSel ('Just "sequencesCountBuffer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Buffer))) :*: (S1 ('MetaSel ('Just "sequencesCountOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DeviceSize) :*: (S1 ('MetaSel ('Just "sequencesIndexBuffer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Buffer) :*: S1 ('MetaSel ('Just "sequencesIndexOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DeviceSize))))))

data GeneratedCommandsMemoryRequirementsInfoNV Source #

VkGeneratedCommandsMemoryRequirementsInfoNV - Structure specifying parameters for the reservation of preprocess buffer space

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL
  • pipelineBindPoint must be a valid PipelineBindPoint value
  • pipeline must be a valid Pipeline handle
  • indirectCommandsLayout must be a valid IndirectCommandsLayoutNV handle
  • Both of indirectCommandsLayout, and pipeline must have been created, allocated, or retrieved from the same Device

See Also

IndirectCommandsLayoutNV, Pipeline, PipelineBindPoint, StructureType, getGeneratedCommandsMemoryRequirementsNV

Constructors

GeneratedCommandsMemoryRequirementsInfoNV 

Fields

Instances

Instances details
Eq GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Generic GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Storable GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

FromCStruct GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

ToCStruct GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GeneratedCommandsMemoryRequirementsInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type Rep GeneratedCommandsMemoryRequirementsInfoNV = D1 ('MetaData "GeneratedCommandsMemoryRequirementsInfoNV" "Vulkan.Extensions.VK_NV_device_generated_commands" "vulkan-3.3.1-inplace" 'False) (C1 ('MetaCons "GeneratedCommandsMemoryRequirementsInfoNV" 'PrefixI 'True) ((S1 ('MetaSel ('Just "pipelineBindPoint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PipelineBindPoint) :*: S1 ('MetaSel ('Just "pipeline") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Pipeline)) :*: (S1 ('MetaSel ('Just "indirectCommandsLayout") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IndirectCommandsLayoutNV) :*: S1 ('MetaSel ('Just "maxSequencesCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32))))

newtype IndirectCommandsLayoutUsageFlagBitsNV Source #

VkIndirectCommandsLayoutUsageFlagBitsNV - Bitmask specifying allowed usage of an indirect commands layout

See Also

IndirectCommandsLayoutUsageFlagsNV

Bundled Patterns

pattern INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV :: IndirectCommandsLayoutUsageFlagBitsNV

INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV specifies that the layout is always used with the manual preprocessing step through calling cmdPreprocessGeneratedCommandsNV and executed by cmdExecuteGeneratedCommandsNV with isPreprocessed set to TRUE.

pattern INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV :: IndirectCommandsLayoutUsageFlagBitsNV

INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV specifies that the input data for the sequences is not implicitly indexed from 0..sequencesUsed but a user provided Buffer encoding the index is provided.

pattern INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV :: IndirectCommandsLayoutUsageFlagBitsNV

INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV specifies that the processing of sequences can happen at an implementation-dependent order, which is not: guaranteed to be coherent using the same input data.

Instances

Instances details
Eq IndirectCommandsLayoutUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Ord IndirectCommandsLayoutUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Read IndirectCommandsLayoutUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show IndirectCommandsLayoutUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Storable IndirectCommandsLayoutUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Bits IndirectCommandsLayoutUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Methods

(.&.) :: IndirectCommandsLayoutUsageFlagBitsNV -> IndirectCommandsLayoutUsageFlagBitsNV -> IndirectCommandsLayoutUsageFlagBitsNV #

(.|.) :: IndirectCommandsLayoutUsageFlagBitsNV -> IndirectCommandsLayoutUsageFlagBitsNV -> IndirectCommandsLayoutUsageFlagBitsNV #

xor :: IndirectCommandsLayoutUsageFlagBitsNV -> IndirectCommandsLayoutUsageFlagBitsNV -> IndirectCommandsLayoutUsageFlagBitsNV #

complement :: IndirectCommandsLayoutUsageFlagBitsNV -> IndirectCommandsLayoutUsageFlagBitsNV #

shift :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

rotate :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

zeroBits :: IndirectCommandsLayoutUsageFlagBitsNV #

bit :: Int -> IndirectCommandsLayoutUsageFlagBitsNV #

setBit :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

clearBit :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

complementBit :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

testBit :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> Bool #

bitSizeMaybe :: IndirectCommandsLayoutUsageFlagBitsNV -> Maybe Int #

bitSize :: IndirectCommandsLayoutUsageFlagBitsNV -> Int #

isSigned :: IndirectCommandsLayoutUsageFlagBitsNV -> Bool #

shiftL :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

unsafeShiftL :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

shiftR :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

unsafeShiftR :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

rotateL :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

rotateR :: IndirectCommandsLayoutUsageFlagBitsNV -> Int -> IndirectCommandsLayoutUsageFlagBitsNV #

popCount :: IndirectCommandsLayoutUsageFlagBitsNV -> Int #

Zero IndirectCommandsLayoutUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

newtype IndirectStateFlagBitsNV Source #

VkIndirectStateFlagBitsNV - Bitmask specifiying state that can be altered on the device

See Also

IndirectStateFlagsNV

Bundled Patterns

pattern INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV :: IndirectStateFlagBitsNV

INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV allows to toggle the FrontFace rasterization state for subsequent draw operations.

Instances

Instances details
Eq IndirectStateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Ord IndirectStateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Read IndirectStateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show IndirectStateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Storable IndirectStateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Bits IndirectStateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero IndirectStateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

newtype IndirectCommandsTokenTypeNV Source #

Instances

Instances details
Eq IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Ord IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Read IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Show IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Storable IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

Zero IndirectCommandsTokenTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_device_generated_commands

type NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_NV_device_generated_commands" Source #

newtype IndirectCommandsLayoutNV Source #

VkIndirectCommandsLayoutNV - Opaque handle to an indirect commands layout object

See Also

GeneratedCommandsInfoNV, GeneratedCommandsMemoryRequirementsInfoNV, createIndirectCommandsLayoutNV, destroyIndirectCommandsLayoutNV

Instances

Instances details
Eq IndirectCommandsLayoutNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord IndirectCommandsLayoutNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show IndirectCommandsLayoutNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable IndirectCommandsLayoutNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero IndirectCommandsLayoutNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType IndirectCommandsLayoutNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle IndirectCommandsLayoutNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles