Class NVDeviceDiagnosticCheckpoints

java.lang.Object
org.lwjgl.vulkan.NVDeviceDiagnosticCheckpoints

public class NVDeviceDiagnosticCheckpoints extends 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
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 or 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
  • Field Details

  • Method Details

    • vkCmdSetCheckpointNV

      public static void vkCmdSetCheckpointNV(org.lwjgl.vulkan.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 - 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(org.lwjgl.vulkan.VkQueue queue, long pCheckpointDataCount, long pCheckpointData)
      Unsafe version of: GetQueueCheckpointDataNV
      Parameters:
      pCheckpointDataCount - a pointer to an integer related to the number of checkpoint markers available or queried, as described below.
    • vkGetQueueCheckpointDataNV

      public static void vkGetQueueCheckpointDataNV(org.lwjgl.vulkan.VkQueue queue, IntBuffer pCheckpointDataCount, @Nullable 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 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
      • 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 - 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.
    • nvkGetQueueCheckpointData2NV

      public static void nvkGetQueueCheckpointData2NV(org.lwjgl.vulkan.VkQueue queue, long pCheckpointDataCount, long pCheckpointData)
      Unsafe version of: GetQueueCheckpointData2NV
      Parameters:
      pCheckpointDataCount - a pointer to an integer related to the number of checkpoint markers available or queried, as described below.
    • vkGetQueueCheckpointData2NV

      public static void vkGetQueueCheckpointData2NV(org.lwjgl.vulkan.VkQueue queue, IntBuffer pCheckpointDataCount, @Nullable VkCheckpointData2NV.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 some point during host execution. When this happens, the application can call GetQueueCheckpointData2NV to retrieve information on the most recent diagnostic checkpoints that were executed by the device.

      
       void vkGetQueueCheckpointData2NV(
           VkQueue                                     queue,
           uint32_t*                                   pCheckpointDataCount,
           VkCheckpointData2NV*                        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 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
      • 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 VkCheckpointData2NV structures
      See Also

      VkCheckpointData2NV

      Parameters:
      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 VkCheckpointData2NV structures.
    • vkGetQueueCheckpointDataNV

      public static void vkGetQueueCheckpointDataNV(org.lwjgl.vulkan.VkQueue queue, int[] pCheckpointDataCount, @Nullable VkCheckpointDataNV.Buffer pCheckpointData)
      Array version of: GetQueueCheckpointDataNV
    • vkGetQueueCheckpointData2NV

      public static void vkGetQueueCheckpointData2NV(org.lwjgl.vulkan.VkQueue queue, int[] pCheckpointDataCount, @Nullable VkCheckpointData2NV.Buffer pCheckpointData)
      Array version of: GetQueueCheckpointData2NV