| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints
Description
Name
VK_NV_device_diagnostic_checkpoints - device extension
VK_NV_device_diagnostic_checkpoints
- Name String
VK_NV_device_diagnostic_checkpoints
- Extension Type
- Device extension
- Registered Extension Number
- 207
- Revision
- 2
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1
- API Interactions
- Interacts with VK_VERSION_1_3
- Interacts with VK_KHR_synchronization2
- Contact
Other Extension Metadata
- Last Modified Date
- 2018-07-16
- Contributors
- Oleg Kuznetsov, NVIDIA
- Alex Dunn, NVIDIA
- Jeff Bolz, NVIDIA
- Eric Werness, NVIDIA
- Daniel Koch, NVIDIA
Description
This extension allows applications to insert markers in the command stream and associate them with custom data.
If a device lost error occurs, the application may then query the implementation for the last markers to cross specific implementation-defined pipeline stages, in order to narrow down which commands were executing at the time and might have caused the failure.
New Commands
If Vulkan Version 1.3 or VK_KHR_synchronization2 is supported:
New Structures
If Vulkan Version 1.3 or VK_KHR_synchronization2 is supported:
New Enum Constants
If Vulkan Version 1.3 or VK_KHR_synchronization2 is supported:
Extending
StructureType:
Version History
Revision 1, 2018-07-16 (Nuno Subtil)
- Internal revisions
Revision 2, 2018-07-16 (Nuno Subtil)
- ???
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification.
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- cmdSetCheckpointNV :: MonadIO io => CommandBuffer -> ("checkpointMarker" ::: Ptr ()) -> io ()
- getQueueCheckpointDataNV :: MonadIO io => Queue -> io ("checkpointData" ::: Vector CheckpointDataNV)
- getQueueCheckpointData2NV :: MonadIO io => Queue -> io ("checkpointData" ::: Vector CheckpointData2NV)
- data QueueFamilyCheckpointPropertiesNV = QueueFamilyCheckpointPropertiesNV {}
- data CheckpointDataNV = CheckpointDataNV {}
- data QueueFamilyCheckpointProperties2NV = QueueFamilyCheckpointProperties2NV {}
- data CheckpointData2NV = CheckpointData2NV {
- stage :: PipelineStageFlags2
- checkpointMarker :: Ptr ()
- type NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION = 2
- pattern NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION :: Integral a => a
- type NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME = "VK_NV_device_diagnostic_checkpoints"
- pattern NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME :: (Eq a, IsString a) => a
Documentation
Arguments
| :: MonadIO io | |
| => CommandBuffer |
|
| -> ("checkpointMarker" ::: Ptr ()) |
|
| -> io () |
vkCmdSetCheckpointNV - Insert diagnostic checkpoint in command stream
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_COMPUTE_BIT,QUEUE_GRAPHICS_BIT, orQUEUE_TRANSFER_BIToperations - This command must not be called between suspended render pass instances
- This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type |
|---|---|---|---|---|
| Primary Secondary | Both | Outside | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT VK_QUEUE_TRANSFER_BIT | Action |
Conditional Rendering
vkCmdSetCheckpointNV is not affected by conditional rendering
See Also
getQueueCheckpointDataNV Source #
Arguments
| :: MonadIO io | |
| => Queue |
|
| -> io ("checkpointData" ::: Vector CheckpointDataNV) |
vkGetQueueCheckpointDataNV - Retrieve diagnostic checkpoint data
Description
If pCheckpointData is NULL, then the number of checkpoint markers
available is returned in pCheckpointDataCount.
Otherwise, pCheckpointDataCount must point to a variable set by the
application to the number of elements in the pCheckpointData array,
and on return the variable is overwritten with the number of structures
actually written to pCheckpointData.
If pCheckpointDataCount is less than the number of checkpoint markers
available, at most pCheckpointDataCount structures will be written.
Valid Usage
Valid Usage (Implicit)
-
queuemust be a validQueuehandle
-
pCheckpointDataCountmust be a valid pointer to auint32_tvalue - If the
value referenced by
pCheckpointDataCountis not0, andpCheckpointDatais notNULL,pCheckpointDatamust be a valid pointer to an array ofpCheckpointDataCountCheckpointDataNVstructures
See Also
VK_NV_device_diagnostic_checkpoints,
CheckpointDataNV, Queue
getQueueCheckpointData2NV Source #
Arguments
| :: MonadIO io | |
| => Queue |
|
| -> io ("checkpointData" ::: Vector CheckpointData2NV) |
vkGetQueueCheckpointData2NV - Retrieve diagnostic checkpoint data
Description
If pCheckpointData is NULL, then the number of checkpoint markers
available is returned in pCheckpointDataCount. Otherwise,
pCheckpointDataCount must point to a variable set by the application
to the number of elements in the pCheckpointData array, and on return
the variable is overwritten with the number of structures actually
written to pCheckpointData.
If pCheckpointDataCount is less than the number of checkpoint markers
available, at most pCheckpointDataCount structures will be written.
Valid Usage
Valid Usage (Implicit)
-
queuemust be a validQueuehandle
-
pCheckpointDataCountmust be a valid pointer to auint32_tvalue - If the
value referenced by
pCheckpointDataCountis not0, andpCheckpointDatais notNULL,pCheckpointDatamust be a valid pointer to an array ofpCheckpointDataCountCheckpointData2NVstructures
See Also
VK_KHR_synchronization2,
VK_NV_device_diagnostic_checkpoints,
VK_VERSION_1_3,
CheckpointData2NV, Queue
data QueueFamilyCheckpointPropertiesNV Source #
VkQueueFamilyCheckpointPropertiesNV - Return structure for queue family checkpoint information query
Description
Additional queue family information can be queried by setting
QueueFamilyProperties2::pNext
to point to a QueueFamilyCheckpointPropertiesNV structure.
Valid Usage (Implicit)
See Also
VK_NV_device_diagnostic_checkpoints,
PipelineStageFlags,
StructureType
Constructors
| QueueFamilyCheckpointPropertiesNV | |
Fields
| |
Instances
data CheckpointDataNV Source #
VkCheckpointDataNV - Return structure for command buffer checkpoint data
Description
The stages at which a checkpoint marker can be executed are
implementation-defined and can be queried by calling
getPhysicalDeviceQueueFamilyProperties2.
Valid Usage (Implicit)
See Also
VK_NV_device_diagnostic_checkpoints,
PipelineStageFlagBits,
StructureType,
getQueueCheckpointDataNV
Constructors
| CheckpointDataNV | |
Fields
| |
Instances
data QueueFamilyCheckpointProperties2NV Source #
VkQueueFamilyCheckpointProperties2NV - Return structure for queue family checkpoint information query
Description
Additional queue family information can be queried by setting
QueueFamilyProperties2::pNext
to point to a QueueFamilyCheckpointProperties2NV structure.
Valid Usage (Implicit)
See Also
VK_KHR_synchronization2,
VK_NV_device_diagnostic_checkpoints,
VK_VERSION_1_3,
PipelineStageFlags2,
StructureType
Constructors
| QueueFamilyCheckpointProperties2NV | |
Fields
| |
Instances
data CheckpointData2NV Source #
VkCheckpointData2NV - Return structure for command buffer checkpoint data
Valid Usage (Implicit)
The stages at which a checkpoint marker can be executed are
implementation-defined and can be queried by calling
getPhysicalDeviceQueueFamilyProperties2.
See Also
VK_KHR_synchronization2,
VK_NV_device_diagnostic_checkpoints,
VK_VERSION_1_3,
PipelineStageFlags2,
StructureType,
getQueueCheckpointData2NV
Constructors
| CheckpointData2NV | |
Fields
| |
Instances
pattern NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION :: Integral a => a Source #
type NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME = "VK_NV_device_diagnostic_checkpoints" Source #
pattern NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME :: (Eq a, IsString a) => a Source #