Top Description Fields Constructors Methods
org.lwjgl.vulkan

public Class NVDeviceDiagnosticCheckpoints

extends Object
Class Inheritance
Imports
javax.annotation.*, java.nio.*, org.lwjgl.system.*

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.

VK_NV_device_diagnostic_checkpoints
Name String
VK_NV_device_diagnostic_checkpoints
Extension Type
Device extension
Registered Extension Number
207
Revision
2
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
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

Field Summary

Modifier and TypeField and Description
public static final String
public static final int
VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION

The extension specification version.

public static final int
VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV

Extends VkStructureType.

public static final int

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
nvkGetQueueCheckpointDataNV(VkQueue queue, long
a pointer to an integer related to the number of checkpoint markers available or queried, as described below.
pCheckpointDataCount
,
long pCheckpointData)

Unsafe version of: GetQueueCheckpointDataNV

public static void
vkCmdSetCheckpointNV(VkCommandBuffer
the command buffer that will receive the marker
commandBuffer
,
long
an opaque application-provided value that will be associated with the checkpoint.
pCheckpointMarker
)

Insert diagnostic checkpoint in command stream.

public static void
vkGetQueueCheckpointDataNV(VkQueue
the VkQueue object the caller would like to retrieve checkpoint data for
queue
,
IntBuffer
a pointer to an integer related to the number of checkpoint markers available or queried, as described below.
pCheckpointDataCount
,
VkCheckpointDataNV.Buffer
either NULL or a pointer to an array of VkCheckpointDataNV structures.
pCheckpointData
)

Retrieve diagnostic checkpoint data.

public static void
vkGetQueueCheckpointDataNV(VkQueue queue, int[] pCheckpointDataCount, VkCheckpointDataNV.Buffer pCheckpointData)

Array version of: GetQueueCheckpointDataNV

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAMEback to summary
public static final String VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME

The extension name.

VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSIONback to summary
public static final int VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION

The extension specification version.

VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NVback to summary
public static final int VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NVback to summary
public static final int VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV

Extends VkStructureType.

Enum values:

Constructor Detail

NVDeviceDiagnosticCheckpointsback to summary
protected NVDeviceDiagnosticCheckpoints()

Method Detail

nvkGetQueueCheckpointDataNVback to summary
public static void nvkGetQueueCheckpointDataNV(VkQueue queue, long pCheckpointDataCount, long pCheckpointData)

Unsafe version of: GetQueueCheckpointDataNV

Parameters
pCheckpointDataCount:long

a pointer to an integer related to the number of checkpoint markers available or queried, as described below.

vkCmdSetCheckpointNVback to summary
public static void vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer, long pCheckpointMarker)

Insert diagnostic checkpoint in command stream.

C Specification

Device diagnostic checkpoints are inserted into the command stream by calling CmdSetCheckpointNV.


void vkCmdSetCheckpointNV(
    VkCommandBuffer                             commandBuffer,
    const void*                                 pCheckpointMarker);
Valid Usage (Implicit)
  • commandBuffer must be a valid VkCommandBuffer handle
  • commandBuffer must be in the recording state
  • The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
  • This command must only be called outside of a video coding scope
Host Synchronization
  • Host access to commandBuffer must be externally synchronized
  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized
Command Properties
Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryBothOutsideGraphics Compute TransferAction
Parameters
commandBuffer:VkCommandBuffer

the command buffer that will receive the marker

pCheckpointMarker:long

an opaque application-provided value that will be associated with the checkpoint.

vkGetQueueCheckpointDataNVback to summary
public static void vkGetQueueCheckpointDataNV(VkQueue queue, IntBuffer pCheckpointDataCount, VkCheckpointDataNV.Buffer pCheckpointData)

Retrieve diagnostic checkpoint data.

C Specification

If the device encounters an error during execution, the implementation will return a ERROR_DEVICE_LOST error to the application at a certain point during host execution. When this happens, the application can call GetQueueCheckpointDataNV to retrieve information on the most recent diagnostic checkpoints that were executed by the device.


void vkGetQueueCheckpointDataNV(
    VkQueue                                     queue,
    uint32_t*                                   pCheckpointDataCount,
    VkCheckpointDataNV*                         pCheckpointData);
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 user 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
  • The device that queue belongs to must be in the lost state
Valid Usage (Implicit)
  • queue must be a valid VkQueue handle
  • pCheckpointDataCount must be a valid pointer to a uint32_t value
  • If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures
See Also

VkCheckpointDataNV

Parameters
queue:VkQueue

the VkQueue object the caller would like to retrieve checkpoint data for

pCheckpointDataCount:IntBuffer

a pointer to an integer related to the number of checkpoint markers available or queried, as described below.

pCheckpointData:VkCheckpointDataNV.Buffer

either NULL or a pointer to an array of VkCheckpointDataNV structures.

vkGetQueueCheckpointDataNVback to summary
public static void vkGetQueueCheckpointDataNV(VkQueue queue, int[] pCheckpointDataCount, VkCheckpointDataNV.Buffer pCheckpointData)

Array version of: GetQueueCheckpointDataNV