Class NVDeviceDiagnosticCheckpoints

  • public class NVDeviceDiagnosticCheckpoints
    extends java.lang.Object
    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.

    Name String
    Extension Type
    Device extension
    Registered Extension Number
    Extension and Version Dependencies
    Last Modified Date
    • Oleg Kuznetsov, NVIDIA
    • Alex Dunn, NVIDIA
    • Jeff Bolz, NVIDIA
    • Eric Werness, NVIDIA
    • Daniel Koch, NVIDIA
    • Method Detail

      • vkCmdSetCheckpointNV

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

         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
        Host Synchronization
        • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized
        Command Properties
        Command Buffer LevelsRender Pass ScopeSupported Queue TypesPipeline Type
        Primary SecondaryBothGraphics Compute Transfer
        commandBuffer - the command buffer that will receive the marker
        pCheckpointMarker - an opaque application-provided value that will be associated with the checkpoint.
      • nvkGetQueueCheckpointDataNV

        public static void nvkGetQueueCheckpointDataNV​(VkQueue queue,
                                                       long pCheckpointDataCount,
                                                       long pCheckpointData)
        Unsafe version of: GetQueueCheckpointDataNV
        pCheckpointDataCount - a pointer to an integer related to the number of checkpoint markers available or queried, as described below.
      • vkGetQueueCheckpointDataNV

        public static void vkGetQueueCheckpointDataNV​(VkQueue queue,
                                                      java.nio.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 vkGetQueueCheckpointDataNV to retrieve information on the most recent diagnostic checkpoints that were executed by the device.

         void vkGetQueueCheckpointDataNV(
             VkQueue                                     queue,
             uint32_t*                                   pCheckpointDataCount,
             VkCheckpointDataNV*                         pCheckpointData);

        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


        queue - the VkQueue object the caller would like to retrieve checkpoint data for
        pCheckpointDataCount - a pointer to an integer related to the number of checkpoint markers available or queried, as described below.
        pCheckpointData - either NULL or a pointer to an array of VkCheckpointDataNV structures.