vulkan-3.1.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Synopsis

Documentation

cmdProcessCommandsNVX :: forall io. MonadIO io => CommandBuffer -> CmdProcessCommandsInfoNVX -> io () Source #

vkCmdProcessCommandsNVX - Performs the generation of commands on the device

Parameters

  • commandBuffer is the primary command buffer in which the generation process takes space.
  • pProcessCommandsInfo is a pointer to a CmdProcessCommandsInfoNVX structure containing parameters affecting the processing of commands.

Valid Usage (Implicit)

  • pProcessCommandsInfo must be a valid pointer to a valid CmdProcessCommandsInfoNVX 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

CmdProcessCommandsInfoNVX, CommandBuffer

cmdReserveSpaceForCommandsNVX :: forall io. MonadIO io => CommandBuffer -> ("reserveSpaceInfo" ::: CmdReserveSpaceForCommandsInfoNVX) -> io () Source #

vkCmdReserveSpaceForCommandsNVX - Perform a reservation of command buffer space

Parameters

  • commandBuffer is the secondary command buffer in which the space for device-generated commands is reserved.

Valid Usage

  • The provided commandBuffer must not have had a prior space reservation since its creation or the last reset.
  • The state of the commandBuffer must be legal to execute all commands within the sequence provided by the indirectCommandsLayout member of pProcessCommandsInfo.

Valid Usage (Implicit)

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
Secondary Inside Graphics Compute

See Also

CmdReserveSpaceForCommandsInfoNVX, CommandBuffer

createIndirectCommandsLayoutNVX :: forall io. MonadIO io => Device -> IndirectCommandsLayoutCreateInfoNVX -> ("allocator" ::: Maybe AllocationCallbacks) -> io IndirectCommandsLayoutNVX Source #

vkCreateIndirectCommandsLayoutNVX - Create an indirect command layout object

Parameters

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

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

AllocationCallbacks, Device, IndirectCommandsLayoutCreateInfoNVX, IndirectCommandsLayoutNVX

withIndirectCommandsLayoutNVX :: forall r. Device -> IndirectCommandsLayoutCreateInfoNVX -> Maybe AllocationCallbacks -> (IndirectCommandsLayoutNVX -> IO r) -> IO r Source #

A safe wrapper for createIndirectCommandsLayoutNVX and destroyIndirectCommandsLayoutNVX using bracket

The allocated value must not be returned from the provided computation

destroyIndirectCommandsLayoutNVX :: forall io. MonadIO io => Device -> IndirectCommandsLayoutNVX -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #

vkDestroyIndirectCommandsLayoutNVX - Destroy an object table

Parameters

  • device is the logical device that destroys the layout.
  • indirectCommandsLayout is the table to destroy.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

Valid Usage

  • All submitted commands that refer to indirectCommandsLayout must have completed execution
  • If AllocationCallbacks were provided when objectTable was created, a compatible set of callbacks must be provided here
  • If no AllocationCallbacks were provided when objectTable was created, pAllocator must be NULL

Valid Usage (Implicit)

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

See Also

AllocationCallbacks, Device, IndirectCommandsLayoutNVX

createObjectTableNVX :: forall io. MonadIO io => Device -> ObjectTableCreateInfoNVX -> ("allocator" ::: Maybe AllocationCallbacks) -> io ObjectTableNVX Source #

vkCreateObjectTableNVX - Create an object table

Parameters

  • device is the logical device that creates the object table.
  • pCreateInfo is a pointer to a ObjectTableCreateInfoNVX structure containing parameters affecting creation of the table.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.
  • pObjectTable is a pointer to a ObjectTableNVX handle in which the resulting object table is returned.

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

AllocationCallbacks, Device, ObjectTableCreateInfoNVX, ObjectTableNVX

withObjectTableNVX :: forall r. Device -> ObjectTableCreateInfoNVX -> Maybe AllocationCallbacks -> (ObjectTableNVX -> IO r) -> IO r Source #

A safe wrapper for createObjectTableNVX and destroyObjectTableNVX using bracket

The allocated value must not be returned from the provided computation

destroyObjectTableNVX :: forall io. MonadIO io => Device -> ObjectTableNVX -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #

vkDestroyObjectTableNVX - Destroy an object table

Parameters

  • device is the logical device that destroys the table.
  • objectTable is the table to destroy.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

Valid Usage

  • All submitted commands that refer to objectTable must have completed execution.
  • If AllocationCallbacks were provided when objectTable was created, a compatible set of callbacks must be provided here.
  • If no AllocationCallbacks were provided when objectTable was created, pAllocator must be NULL.

Valid Usage (Implicit)

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

Host Synchronization

  • Host access to objectTable must be externally synchronized

See Also

AllocationCallbacks, Device, ObjectTableNVX

registerObjectsNVX :: forall io. MonadIO io => Device -> ObjectTableNVX -> ("objectTableEntries" ::: Vector ObjectTableEntryNVX) -> ("objectIndices" ::: Vector Word32) -> io () Source #

vkRegisterObjectsNVX - Register resource bindings in an object table

Parameters

  • device is the logical device that creates the object table.

Valid Usage

  • The contents of pObjectTableEntry must yield plausible bindings supported by the device.
  • At any pObjectIndices there must not be a registered resource already.
  • Any value inside pObjectIndices must be below the appropriate ObjectTableCreateInfoNVX::pObjectEntryCounts limits provided at objectTable creation time.

Valid Usage (Implicit)

  • device must be a valid Device handle
  • objectTable must be a valid ObjectTableNVX handle
  • ppObjectTableEntries must be a valid pointer to an array of objectCount valid ObjectTableEntryNVX structures
  • pObjectIndices must be a valid pointer to an array of objectCount uint32_t values
  • objectCount must be greater than 0
  • objectTable must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to objectTable must be externally synchronized

Return Codes

Success
Failure

See Also

Device, ObjectTableEntryNVX, ObjectTableNVX

unregisterObjectsNVX :: forall io. MonadIO io => Device -> ObjectTableNVX -> ("objectEntryTypes" ::: Vector ObjectEntryTypeNVX) -> ("objectIndices" ::: Vector Word32) -> io () Source #

vkUnregisterObjectsNVX - Unregister resource bindings in an object table

Parameters

  • device is the logical device that creates the object table.
  • objectTable is the table from which the resources are unregistered.
  • objectCount is the number of resources being removed from the object table.
  • pObjectEntryType provides an array of ObjectEntryTypeNVX for the resources being removed.
  • pObjectIndices provides the array of object indices to be removed.

Valid Usage

  • At any pObjectIndices there must be a registered resource already.
  • The pObjectEntryTypes of the resource at pObjectIndices must match.
  • All operations on the device using the registered resource must have been completed.

Valid Usage (Implicit)

  • device must be a valid Device handle
  • objectTable must be a valid ObjectTableNVX handle
  • pObjectEntryTypes must be a valid pointer to an array of objectCount valid ObjectEntryTypeNVX values
  • pObjectIndices must be a valid pointer to an array of objectCount uint32_t values
  • objectCount must be greater than 0
  • objectTable must have been created, allocated, or retrieved from device

Host Synchronization

  • Host access to objectTable must be externally synchronized

Return Codes

Success
Failure

See Also

Device, ObjectEntryTypeNVX, ObjectTableNVX

getPhysicalDeviceGeneratedCommandsPropertiesNVX :: forall io. MonadIO io => PhysicalDevice -> io (DeviceGeneratedCommandsFeaturesNVX, DeviceGeneratedCommandsLimitsNVX) Source #

vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX - Returns device-generated commands related properties of a physical device

Parameters

  • physicalDevice is the handle to the physical device whose properties will be queried.

Valid Usage (Implicit)

See Also

DeviceGeneratedCommandsFeaturesNVX, DeviceGeneratedCommandsLimitsNVX, PhysicalDevice

data DeviceGeneratedCommandsFeaturesNVX Source #

VkDeviceGeneratedCommandsFeaturesNVX - Structure specifying physical device support

Valid Usage (Implicit)

See Also

Bool32, StructureType, getPhysicalDeviceGeneratedCommandsPropertiesNVX

Constructors

DeviceGeneratedCommandsFeaturesNVX 

Fields

Instances
Show DeviceGeneratedCommandsFeaturesNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable DeviceGeneratedCommandsFeaturesNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct DeviceGeneratedCommandsFeaturesNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct DeviceGeneratedCommandsFeaturesNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero DeviceGeneratedCommandsFeaturesNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data DeviceGeneratedCommandsLimitsNVX Source #

VkDeviceGeneratedCommandsLimitsNVX - Structure specifying physical device limits

Valid Usage (Implicit)

See Also

StructureType, getPhysicalDeviceGeneratedCommandsPropertiesNVX

Constructors

DeviceGeneratedCommandsLimitsNVX 

Fields

Instances
Show DeviceGeneratedCommandsLimitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable DeviceGeneratedCommandsLimitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct DeviceGeneratedCommandsLimitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct DeviceGeneratedCommandsLimitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero DeviceGeneratedCommandsLimitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data IndirectCommandsTokenNVX Source #

VkIndirectCommandsTokenNVX - Structure specifying parameters for the reservation of command buffer space

Valid Usage

Valid Usage (Implicit)

  • buffer must be a valid Buffer handle

See Also

Buffer, CmdProcessCommandsInfoNVX, DeviceSize, IndirectCommandsTokenTypeNVX

Constructors

IndirectCommandsTokenNVX 

Fields

Instances
Show IndirectCommandsTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable IndirectCommandsTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct IndirectCommandsTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct IndirectCommandsTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero IndirectCommandsTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data IndirectCommandsLayoutTokenNVX Source #

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

Valid Usage (Implicit)

See Also

IndirectCommandsLayoutCreateInfoNVX, IndirectCommandsTokenTypeNVX

Constructors

IndirectCommandsLayoutTokenNVX 

Fields

Instances
Show IndirectCommandsLayoutTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable IndirectCommandsLayoutTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct IndirectCommandsLayoutTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct IndirectCommandsLayoutTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero IndirectCommandsLayoutTokenNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data IndirectCommandsLayoutCreateInfoNVX Source #

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

Description

The following code illustrates some of the key flags:

void cmdProcessAllSequences(cmd, objectTable, indirectCommandsLayout, pIndirectCommandsTokens, sequencesCount, indexbuffer, indexbufferoffset)
{
  for (s = 0; s < sequencesCount; s++)
  {
    sequence = s;

    if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX) {
      sequence = incoherent_implementation_dependent_permutation[ sequence ];
    }
    if (indirectCommandsLayout.flags & VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX) {
      sequence = indexbuffer.load_uint32( sequence * sizeof(uint32_t) + indexbufferoffset);
    }

    cmdProcessSequence( cmd, objectTable, indirectCommandsLayout, pIndirectCommandsTokens, sequence );
  }
}

Valid Usage

Valid Usage (Implicit)

See Also

IndirectCommandsLayoutTokenNVX, IndirectCommandsLayoutUsageFlagsNVX, PipelineBindPoint, StructureType, createIndirectCommandsLayoutNVX

Constructors

IndirectCommandsLayoutCreateInfoNVX 

Fields

data CmdProcessCommandsInfoNVX Source #

VkCmdProcessCommandsInfoNVX - Structure specifying parameters for the generation of commands

Valid Usage

  • The provided objectTable must include all objects referenced by the generation process
  • indirectCommandsTokenCount must match the indirectCommandsLayout’s tokenCount
  • The tokenType member of each entry in the pIndirectCommandsTokens array must match the values used at creation time of indirectCommandsLayout
  • If targetCommandBuffer is provided, it must have reserved command space
  • If targetCommandBuffer is provided, the objectTable must match the reservation’s objectTable and must have had all referenced objects registered at reservation time
  • If targetCommandBuffer is provided, the indirectCommandsLayout must match the reservation’s indirectCommandsLayout
  • If targetCommandBuffer is provided, the maxSequencesCount must not exceed the reservation’s maxSequencesCount
  • If sequencesCountBuffer is used, its usage flag must have the BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
  • If sequencesCountBuffer is used, sequencesCountOffset must be aligned to DeviceGeneratedCommandsLimitsNVX::minSequenceCountBufferOffsetAlignment
  • If sequencesIndexBuffer is used, its usage flag must have the BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
  • If sequencesIndexBuffer is used, sequencesIndexOffset must be aligned to DeviceGeneratedCommandsLimitsNVX::minSequenceIndexBufferOffsetAlignment

Valid Usage (Implicit)

  • pNext must be NULL
  • objectTable must be a valid ObjectTableNVX handle
  • indirectCommandsLayout must be a valid IndirectCommandsLayoutNVX handle
  • pIndirectCommandsTokens must be a valid pointer to an array of indirectCommandsTokenCount valid IndirectCommandsTokenNVX structures
  • If targetCommandBuffer is not NULL, targetCommandBuffer must be a valid CommandBuffer 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
  • indirectCommandsTokenCount must be greater than 0
  • Each of indirectCommandsLayout, objectTable, sequencesCountBuffer, sequencesIndexBuffer, and targetCommandBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to objectTable must be externally synchronized
  • Host access to targetCommandBuffer must be externally synchronized

See Also

Buffer, CommandBuffer, DeviceSize, IndirectCommandsLayoutNVX, IndirectCommandsTokenNVX, ObjectTableNVX, StructureType, cmdProcessCommandsNVX

Constructors

CmdProcessCommandsInfoNVX 

Fields

data CmdReserveSpaceForCommandsInfoNVX Source #

VkCmdReserveSpaceForCommandsInfoNVX - Structure specifying parameters for the reservation of command buffer space

Valid Usage (Implicit)

  • pNext must be NULL
  • objectTable must be a valid ObjectTableNVX handle
  • indirectCommandsLayout must be a valid IndirectCommandsLayoutNVX handle
  • Both of indirectCommandsLayout, and objectTable must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to objectTable must be externally synchronized

See Also

IndirectCommandsLayoutNVX, ObjectTableNVX, StructureType, cmdReserveSpaceForCommandsNVX

Constructors

CmdReserveSpaceForCommandsInfoNVX 

Fields

Instances
Show CmdReserveSpaceForCommandsInfoNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable CmdReserveSpaceForCommandsInfoNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct CmdReserveSpaceForCommandsInfoNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct CmdReserveSpaceForCommandsInfoNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero CmdReserveSpaceForCommandsInfoNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data ObjectTableCreateInfoNVX Source #

VkObjectTableCreateInfoNVX - Structure specifying the parameters of a newly created object table

Valid Usage

  • Any value within pObjectEntryCounts must not exceed DeviceGeneratedCommandsLimitsNVX::maxObjectEntryCounts
  • maxUniformBuffersPerDescriptor must be within the limits supported by the device.
  • maxStorageBuffersPerDescriptor must be within the limits supported by the device.
  • maxStorageImagesPerDescriptor must be within the limits supported by the device.
  • maxSampledImagesPerDescriptor must be within the limits supported by the device.

Valid Usage (Implicit)

  • pNext must be NULL
  • pObjectEntryTypes must be a valid pointer to an array of objectCount valid ObjectEntryTypeNVX values
  • pObjectEntryCounts must be a valid pointer to an array of objectCount uint32_t values
  • pObjectEntryUsageFlags must be a valid pointer to an array of objectCount valid combinations of ObjectEntryUsageFlagBitsNVX values
  • Each element of pObjectEntryUsageFlags must not be 0
  • objectCount must be greater than 0

See Also

ObjectEntryTypeNVX, ObjectEntryUsageFlagsNVX, StructureType, createObjectTableNVX

Constructors

ObjectTableCreateInfoNVX 

Fields

data ObjectTableEntryNVX Source #

VkObjectTableEntryNVX - Common parameters of an object table resource entry

Valid Usage

Valid Usage (Implicit)

See Also

ObjectEntryTypeNVX, ObjectEntryUsageFlagsNVX, registerObjectsNVX

Constructors

ObjectTableEntryNVX 

Fields

Instances
Show ObjectTableEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectTableEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct ObjectTableEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct ObjectTableEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero ObjectTableEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data ObjectTablePipelineEntryNVX Source #

VkObjectTablePipelineEntryNVX - Parameters of an object table pipeline entry

Valid Usage (Implicit)

See Also

ObjectEntryTypeNVX, ObjectEntryUsageFlagsNVX, Pipeline

Constructors

ObjectTablePipelineEntryNVX 

Fields

Instances
Show ObjectTablePipelineEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectTablePipelineEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct ObjectTablePipelineEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct ObjectTablePipelineEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero ObjectTablePipelineEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data ObjectTableDescriptorSetEntryNVX Source #

VkObjectTableDescriptorSetEntryNVX - Parameters of an object table descriptor set entry

Valid Usage

Valid Usage (Implicit)

  • flags must be a valid combination of ObjectEntryUsageFlagBitsNVX values
  • flags must not be 0
  • pipelineLayout must be a valid PipelineLayout handle
  • descriptorSet must be a valid DescriptorSet handle
  • Both of descriptorSet, and pipelineLayout must have been created, allocated, or retrieved from the same Device

See Also

DescriptorSet, ObjectEntryTypeNVX, ObjectEntryUsageFlagsNVX, PipelineLayout

Constructors

ObjectTableDescriptorSetEntryNVX 

Fields

Instances
Show ObjectTableDescriptorSetEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectTableDescriptorSetEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct ObjectTableDescriptorSetEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct ObjectTableDescriptorSetEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero ObjectTableDescriptorSetEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data ObjectTableVertexBufferEntryNVX Source #

VkObjectTableVertexBufferEntryNVX - Parameters of an object table vertex buffer entry

Valid Usage (Implicit)

See Also

Buffer, ObjectEntryTypeNVX, ObjectEntryUsageFlagsNVX

Constructors

ObjectTableVertexBufferEntryNVX 

Fields

Instances
Show ObjectTableVertexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectTableVertexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct ObjectTableVertexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct ObjectTableVertexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero ObjectTableVertexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data ObjectTableIndexBufferEntryNVX Source #

VkObjectTableIndexBufferEntryNVX - Parameters of an object table index buffer entry

Valid Usage (Implicit)

See Also

Buffer, IndexType, ObjectEntryTypeNVX, ObjectEntryUsageFlagsNVX

Constructors

ObjectTableIndexBufferEntryNVX 

Fields

Instances
Show ObjectTableIndexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectTableIndexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct ObjectTableIndexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct ObjectTableIndexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero ObjectTableIndexBufferEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

data ObjectTablePushConstantEntryNVX Source #

VkObjectTablePushConstantEntryNVX - Parameters of an object table push constant entry

Valid Usage (Implicit)

See Also

ObjectEntryTypeNVX, ObjectEntryUsageFlagsNVX, PipelineLayout, ShaderStageFlags

Constructors

ObjectTablePushConstantEntryNVX 

Fields

Instances
Show ObjectTablePushConstantEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectTablePushConstantEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

FromCStruct ObjectTablePushConstantEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

ToCStruct ObjectTablePushConstantEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero ObjectTablePushConstantEntryNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

newtype IndirectCommandsLayoutUsageFlagBitsNVX Source #

VkIndirectCommandsLayoutUsageFlagBitsNVX - Bitmask specifying allowed usage of an indirect commands layout

See Also

IndirectCommandsLayoutUsageFlagsNVX

Bundled Patterns

pattern INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX :: IndirectCommandsLayoutUsageFlagBitsNVX

INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX specifies that the processing of sequences can happen at an implementation-dependent order, which is not guaranteed to be coherent across multiple invocations.

pattern INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX :: IndirectCommandsLayoutUsageFlagBitsNVX

INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX specifies that there is likely a high difference between allocated number of sequences and actually used.

pattern INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX :: IndirectCommandsLayoutUsageFlagBitsNVX

INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX specifies that there are likely many draw or dispatch calls that are zero-sized (zero grid dimension, no primitives to render).

pattern INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX :: IndirectCommandsLayoutUsageFlagBitsNVX

INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX 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.

Instances
Eq IndirectCommandsLayoutUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Ord IndirectCommandsLayoutUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Read IndirectCommandsLayoutUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Show IndirectCommandsLayoutUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable IndirectCommandsLayoutUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Bits IndirectCommandsLayoutUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Methods

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

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

xor :: IndirectCommandsLayoutUsageFlagBitsNVX -> IndirectCommandsLayoutUsageFlagBitsNVX -> IndirectCommandsLayoutUsageFlagBitsNVX #

complement :: IndirectCommandsLayoutUsageFlagBitsNVX -> IndirectCommandsLayoutUsageFlagBitsNVX #

shift :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

rotate :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

zeroBits :: IndirectCommandsLayoutUsageFlagBitsNVX #

bit :: Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

setBit :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

clearBit :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

complementBit :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

testBit :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> Bool #

bitSizeMaybe :: IndirectCommandsLayoutUsageFlagBitsNVX -> Maybe Int #

bitSize :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int #

isSigned :: IndirectCommandsLayoutUsageFlagBitsNVX -> Bool #

shiftL :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

unsafeShiftL :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

shiftR :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

unsafeShiftR :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

rotateL :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

rotateR :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int -> IndirectCommandsLayoutUsageFlagBitsNVX #

popCount :: IndirectCommandsLayoutUsageFlagBitsNVX -> Int #

Zero IndirectCommandsLayoutUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

newtype ObjectEntryUsageFlagBitsNVX Source #

VkObjectEntryUsageFlagBitsNVX - Bitmask specifying allowed usage of an object entry

See Also

ObjectEntryUsageFlagsNVX

Instances
Eq ObjectEntryUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Ord ObjectEntryUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Read ObjectEntryUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Show ObjectEntryUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectEntryUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Bits ObjectEntryUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Methods

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

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

xor :: ObjectEntryUsageFlagBitsNVX -> ObjectEntryUsageFlagBitsNVX -> ObjectEntryUsageFlagBitsNVX #

complement :: ObjectEntryUsageFlagBitsNVX -> ObjectEntryUsageFlagBitsNVX #

shift :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

rotate :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

zeroBits :: ObjectEntryUsageFlagBitsNVX #

bit :: Int -> ObjectEntryUsageFlagBitsNVX #

setBit :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

clearBit :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

complementBit :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

testBit :: ObjectEntryUsageFlagBitsNVX -> Int -> Bool #

bitSizeMaybe :: ObjectEntryUsageFlagBitsNVX -> Maybe Int #

bitSize :: ObjectEntryUsageFlagBitsNVX -> Int #

isSigned :: ObjectEntryUsageFlagBitsNVX -> Bool #

shiftL :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

unsafeShiftL :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

shiftR :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

unsafeShiftR :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

rotateL :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

rotateR :: ObjectEntryUsageFlagBitsNVX -> Int -> ObjectEntryUsageFlagBitsNVX #

popCount :: ObjectEntryUsageFlagBitsNVX -> Int #

Zero ObjectEntryUsageFlagBitsNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

newtype IndirectCommandsTokenTypeNVX Source #

Instances
Eq IndirectCommandsTokenTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Ord IndirectCommandsTokenTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Read IndirectCommandsTokenTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Show IndirectCommandsTokenTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable IndirectCommandsTokenTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero IndirectCommandsTokenTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

newtype ObjectEntryTypeNVX Source #

Instances
Eq ObjectEntryTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Ord ObjectEntryTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Read ObjectEntryTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Show ObjectEntryTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Storable ObjectEntryTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

Zero ObjectEntryTypeNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands

type NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME = "VK_NVX_device_generated_commands" Source #

newtype ObjectTableNVX Source #

Constructors

ObjectTableNVX Word64 
Instances
Eq ObjectTableNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Ord ObjectTableNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Show ObjectTableNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Storable ObjectTableNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Zero ObjectTableNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

IsHandle ObjectTableNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

newtype IndirectCommandsLayoutNVX Source #

VkIndirectCommandsLayoutNVX - Opaque handle to an indirect commands layout object

See Also

CmdProcessCommandsInfoNVX, CmdReserveSpaceForCommandsInfoNVX, createIndirectCommandsLayoutNVX, destroyIndirectCommandsLayoutNVX

Instances
Eq IndirectCommandsLayoutNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Ord IndirectCommandsLayoutNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Show IndirectCommandsLayoutNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Storable IndirectCommandsLayoutNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

Zero IndirectCommandsLayoutNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles

IsHandle IndirectCommandsLayoutNVX Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.Handles