NVAPI Reference Documentation
NVIDIA
Release 560
Mon Aug 5 2024

Data Structures | Macros | Typedefs | Enumerations | Functions
DirectX Interface

Data Structures

struct  NV_D3D11_META_COMMAND_RESOURCE
 
struct  NV_D3D12_META_COMMAND_INITIALIZE_CONVOLUTION_EX_DESC
 
struct  _NV_MULTIGPU_CAPS_V1
 
struct  _NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS_V1
 
struct  _NV_QUERY_MULTIVIEW_SUPPORT_PARAMS_V1
 
struct  _NV_MULTIVIEW_PARAMS_V1
 
struct  _NV_QUERY_MODIFIED_W_SUPPORT_PARAMS
 
struct  _NV_QUERY_LATELATCH_SUPPORT_PARAMS
 
struct  _NV_D3D1x_GRAPHICS_CAPS_V1
 
struct  _NV_D3D12_GRAPHICS_CAPS_V1
 
struct  _NV_D3D11_EXCLUSIVE_SCISSOR_RECT_DESC_V1
 
struct  _NV_PIXEL_SRSO_1x2
 
struct  _NV_QUERY_SMP_ASSIST_SUPPORT_PARAMS_V1
 
struct  _NV_GET_SLEEP_STATUS_PARAMS
 
struct  _NV_SET_SLEEP_MODE_PARAMS
 
struct  _NV_SET_REFLEX_SYNC_PARAMS
 
struct  _NV_LATENCY_RESULT_PARAMS
 
struct  _NV_LATENCY_MARKER_PARAMS
 
struct  _NV_ASYNC_FRAME_MARKER_PARAMS_V1
 
struct  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_USAGE_COUNT
 
struct  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DESC
 
struct  _NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_INPUTS
 
struct  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO
 
struct  _NVAPI_GET_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1
 
struct  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT
 
struct  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC
 
struct  _NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS
 
struct  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO
 
struct  _NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1
 
struct  _NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1
 
struct  _NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1
 
struct  _NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_ATTACHMENT_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_ATTACHMENT_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_TRIANGLES_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX
 
struct  _NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX
 
struct  _NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1
 
struct  _NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC
 
struct  _NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1
 
struct  _NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1
 
struct  _NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC
 
struct  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_DESC
 
struct  _NVAPI_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1
 
struct  _NVAPI_RELOCATE_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1
 
struct  _NVAPI_EMIT_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1
 
struct  _NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1
 
struct  _NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC_EX
 
struct  _NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1
 
struct  NV_GET_CURRENT_SLI_STATE_V1
 

Macros

#define NVAPI_COPY_ASYNCHRONOUSLY   1
 
#define NV_MAX_PIXEL_SHADING_RATES   16
 
#define NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT   256
 
#define NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL   12
 
#define NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BYTE_ALIGNMENT   256
 
#define NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DC1_MAX_SUBDIVISION_LEVEL   5
 
#define NV_GET_CURRENT_SLI_STATE_VER1   MAKE_NVAPI_VERSION(NV_GET_CURRENT_SLI_STATE_V1,1)
 

Typedefs

typedef enum _NVAPI_D3D11_INSERTWFI_FLAG NVAPI_D3D11_INSERTWFI_FLAG
 
typedef enum _NVAPI_ANSEL_FEATURE NVAPI_ANSEL_FEATURE
 
typedef enum _NV_RESOLVE_MODE NV_RESOLVE_MODE
 
typedef enum _NV_PSO_EXTENSION NV_PSO_EXTENSION
 
typedef enum _NV_COMPUTE_SHADER_DERIVATIVES NV_COMPUTE_SHADER_DERIVATIVES
 
typedef struct _NV_MULTIGPU_CAPS_V1 NV_MULTIGPU_CAPS_V1
 
typedef struct _NV_MULTIGPU_CAPS_V1PNV_MULTIGPU_CAPS_V1
 
typedef struct _NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS_V1 NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS_V1
 
typedef struct _NV_QUERY_MULTIVIEW_SUPPORT_PARAMS_V1 NV_QUERY_MULTIVIEW_SUPPORT_PARAMS_V1
 
typedef struct _NV_MULTIVIEW_PARAMS_V1 NV_MULTIVIEW_PARAMS_V1
 
typedef struct _NV_QUERY_MODIFIED_W_SUPPORT_PARAMS NV_QUERY_MODIFIED_W_SUPPORT_PARAMS_V1
 
typedef ID3DLateLatchObject_V1 ID3DLateLatchObject
 
typedef struct _NV_QUERY_LATELATCH_SUPPORT_PARAMS NV_QUERY_LATELATCH_SUPPORT_PARAMS_V1
 
typedef enum _IMPLICIT_SLI_CONTROL IMPLICIT_SLI_CONTROL
 
typedef struct _NV_D3D1x_GRAPHICS_CAPS_V1 NV_D3D1x_GRAPHICS_CAPS_V1
 
typedef struct _NV_D3D12_GRAPHICS_CAPS_V1 NV_D3D12_GRAPHICS_CAPS_V1
 
typedef struct _NV_D3D11_EXCLUSIVE_SCISSOR_RECT_DESC_V1 NV_D3D11_EXCLUSIVE_SCISSOR_RECT_DESC_V1
 
typedef struct _NV_PIXEL_SRSO_1x2 NV_PIXEL_SRSO_1x2
 
typedef enum NV_SMP_ASSIST_TYPE NV_SMP_ASSIST_TYPE
 
typedef struct _NV_QUERY_SMP_ASSIST_SUPPORT_PARAMS_V1 NV_QUERY_SMP_ASSIST_SUPPORT_PARAMS_V1
 
typedef struct _NV_GET_SLEEP_STATUS_PARAMS NV_GET_SLEEP_STATUS_PARAMS_V1
 
typedef struct _NV_SET_SLEEP_MODE_PARAMS NV_SET_SLEEP_MODE_PARAMS_V1
 
typedef struct _NV_SET_REFLEX_SYNC_PARAMS NV_SET_REFLEX_SYNC_PARAMS_V1
 
typedef struct _NV_LATENCY_RESULT_PARAMS NV_LATENCY_RESULT_PARAMS_V1
 
typedef struct _NV_LATENCY_MARKER_PARAMS NV_LATENCY_MARKER_PARAMS_V1
 
typedef struct _NV_ASYNC_FRAME_MARKER_PARAMS_V1 NV_ASYNC_FRAME_MARKER_PARAMS_V1
 
typedef enum _NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS
 
typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS
 
typedef enum _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS
 
typedef enum _NVAPI_D3D12_RAYTRACING_CAPS_TYPE NVAPI_D3D12_RAYTRACING_CAPS_TYPE
 
typedef enum _NVAPI_D3D12_RAYTRACING_VALIDATION_FLAGS NVAPI_D3D12_RAYTRACING_VALIDATION_FLAGS
 
typedef enum _NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY
 
typedef void(__stdcall * NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_CALLBACK) (void *pUserData, NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY severity, const char *messageCode, const char *message, const char *messageDetails)
 
typedef enum _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAGS NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAGS
 
typedef enum _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT
 
typedef struct _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_USAGE_COUNT NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_USAGE_COUNT
 
typedef struct _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DESC NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DESC
 
typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_INPUTS NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_INPUTS
 
typedef struct _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO
 
typedef struct _NVAPI_GET_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1 NVAPI_GET_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1
 
typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS
 
typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT
 
typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT
 
typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC
 
typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS
 
typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO
 
typedef struct _NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1 NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1
 
typedef enum _NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS
 
typedef struct _NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1 NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1
 
typedef enum _NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX
 
typedef struct _NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1 NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1
 
typedef enum _NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX
 
typedef enum _NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX
 
typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX
 
typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_ATTACHMENT_DESC NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_ATTACHMENT_DESC
 
typedef enum _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAGS NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAGS
 
typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_ATTACHMENT_DESC NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_ATTACHMENT_DESC
 
typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_TRIANGLES_DESC NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_TRIANGLES_DESC
 
typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC
 
typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX
 
typedef enum _NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX
 
typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX
 
typedef struct _NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1 NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1
 
typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC
 
typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC
 
typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE
 
typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC
 
typedef struct _NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1 NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1
 
typedef struct _NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1 NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1
 
typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_DESC NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_DESC
 
typedef struct _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC
 
typedef enum _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE
 
typedef struct _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_DESC NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_DESC
 
typedef struct _NVAPI_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1 NVAPI_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1
 
typedef struct _NVAPI_RELOCATE_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1 NVAPI_RELOCATE_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1
 
typedef struct _NVAPI_EMIT_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1 NVAPI_EMIT_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1
 
typedef struct _NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1 NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1
 
typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC_EX NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC_EX
 
typedef struct _NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1 NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1
 
typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE
 
typedef enum _NVAPI_RAY_FLAGS_EX NVAPI_RAY_FLAG_EX
 
typedef enum _NVAPI_D3D_SETRESOURCEHINT_CATEGORY NVAPI_D3D_SETRESOURCEHINT_CATEGORY
 
typedef enum _NVAPI_D3D_SETRESOURCEHINT_SLI NVAPI_D3D_SETRESOURCEHINT_SLI
 
typedef enum _NVAPI_D3D_RESOURCERENDERING_FLAG NVAPI_D3D_RESOURCERENDERING_FLAG
 

Enumerations

enum  NVAPI_ALIAS_SURFACE_FLAG { NVAPI_ALIAS_SURFACE_FLAG_NONE = 0x00000000 , NVAPI_ALIAS_SURFACE_FLAG_USE_SUPER = 0x00000001 , NVAPI_ALIAS_SURFACE_FLAG_MASK = 0x00000001 }
 
enum  _NVAPI_D3D11_INSERTWFI_FLAG { NVAPI_D3D_BEGIN_UAV_OVERLAP_NO_WFI = 0x00000000 , NVAPI_D3D_BEGIN_UAV_OVERLAP_GFX_WFI = 0x00000001 , NVAPI_D3D_BEGIN_UAV_OVERLAP_COMP_WFI = 0x00000002 }
 
enum  NVAPI_VSYNC_MODE {
  NVAPI_VSYNC_DEFAULT , NVAPI_VSYNC_OFF , NVAPI_VSYNC_ON , NVAPI_VSYNC_ADAPTIVE ,
  NVAPI_VSYNC_ADAPTIVE_HALF_REFRESH_RATE
}
 
enum  _NVAPI_ANSEL_FEATURE { NVAPI_ANSEL_FEATURE_UNKNOWN = 0 , NVAPI_ANSEL_FEATURE_BLACK_AND_WHITE = 1 , NVAPI_ANSEL_FEATURE_HUDLESS = 2 }
 
enum  _NV_RESOLVE_MODE { NV_RESOLVE_MODE_SAMPLE_0 }
 
enum  _NV_PSO_EXTENSION {
  NV_PSO_RASTER_EXTENSION = 0 , NV_PSO_REQUEST_FASTGS_EXTENSION = 1 , NV_PSO_GEOMETRY_SHADER_EXTENSION = 2 , NV_PSO_ENABLE_DEPTH_BOUND_TEST_EXTENSION = 3 ,
  NV_PSO_EXPLICIT_FASTGS_EXTENSION = 4 , NV_PSO_SET_SHADER_EXTNENSION_SLOT_AND_SPACE = 5 , NV_PSO_SET_SHADER_EXTENSION_SLOT_AND_SPACE = 5 , NV_PSO_VERTEX_SHADER_EXTENSION = 6 ,
  NV_PSO_DOMAIN_SHADER_EXTENSION = 7 , NV_PSO_HULL_SHADER_EXTENSION = 9
}
 
enum  _NV_COMPUTE_SHADER_DERIVATIVES { NV_COMPUTE_SHADER_DERIVATIVE_NONE = 0 , NV_COMPUTE_SHADER_DERIVATIVE_GROUP_LINEAR = 1 , NV_COMPUTE_SHADER_DERIVATIVE_GROUP_QUADS = 2 }
 
enum  NV_D3D12_HEAP_FLAGS { NV_D3D12_HEAP_FLAG_NONE = 0 , NV_D3D12_HEAP_FLAG_CPUVISIBLE_VIDMEM = 1 }
 
enum  NV_D3D12_RESOURCE_FLAGS { NV_D3D12_RESOURCE_FLAG_NONE = 0 , NV_D3D12_RESOURCE_FLAG_HTEX = 1 , NV_D3D12_RESOURCE_FLAG_CPUVISIBLE_VIDMEM = 2 }
 
enum  _IMPLICIT_SLI_CONTROL { DISABLE_IMPLICIT_SLI = 0 , ENABLE_IMPLICIT_SLI = 1 }
 
enum  NV_SMP_ASSIST_TYPE { NV_SMP_ASSIST_NONE = 0 , NV_SMP_ASSIST_MRS = 1 , NV_SMP_ASSIST_LMS = 2 , NV_SMP_ASSIST_NUM_TYPES }
 
enum  NV_LATENCY_MARKER_TYPE {
  SIMULATION_START = 0 , SIMULATION_END = 1 , RENDERSUBMIT_START = 2 , RENDERSUBMIT_END = 3 ,
  PRESENT_START = 4 , PRESENT_END = 5 , INPUT_SAMPLE = 6 , TRIGGER_FLASH = 7 ,
  PC_LATENCY_PING = 8 , OUT_OF_BAND_RENDERSUBMIT_START = 9 , OUT_OF_BAND_RENDERSUBMIT_END = 10 , OUT_OF_BAND_PRESENT_START = 11 ,
  OUT_OF_BAND_PRESENT_END = 12
}
 
enum  NV_OUT_OF_BAND_CQ_TYPE { OUT_OF_BAND_RENDER = 0 , OUT_OF_BAND_PRESENT = 1 , OUT_OF_BAND_IGNORE = 2 }
 
enum  _NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS { NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_NONE = 0x0 , NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_STANDARD = NV_BIT(0) }
 
enum  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS { NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_NONE = 0x0 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_STANDARD = NV_BIT(0) }
 
enum  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS { NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAP_NONE = 0x0 , NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAP_STANDARD = NV_BIT(0) }
 
enum  _NVAPI_D3D12_RAYTRACING_CAPS_TYPE { NVAPI_D3D12_RAYTRACING_CAPS_TYPE_THREAD_REORDERING = 0 , NVAPI_D3D12_RAYTRACING_CAPS_TYPE_OPACITY_MICROMAP = 1 , NVAPI_D3D12_RAYTRACING_CAPS_TYPE_DISPLACEMENT_MICROMAP = 2 , NVAPI_D3D12_RAYTRACING_CAPS_TYPE_INVALID = -1 }
 
enum  _NVAPI_D3D12_RAYTRACING_VALIDATION_FLAGS { NVAPI_D3D12_RAYTRACING_VALIDATION_FLAG_NONE = 0x0 }
 
enum  _NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY { NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY_ERROR = 0x0 , NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY_WARNING = 0x1 }
 
enum  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAGS { NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_NONE = 0x0 , NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE = NV_BIT(0) , NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD = NV_BIT(1) }
 
enum  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT { NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT_DC1_64_TRIS_64_BYTES = 0x1 , NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT_DC1_256_TRIS_128_BYTES = 0x2 , NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT_DC1_1024_TRIS_128_BYTES = 0x3 }
 
enum  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS { NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_NONE = 0x0 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE = NV_BIT(0) , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD = NV_BIT(1) }
 
enum  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT { NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE = 0x1 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE = 0x2 }
 
enum  _NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS { NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_NONE = 0 , NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_ENABLE_OMM_SUPPORT = NV_BIT(0) , NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_ENABLE_DMM_SUPPORT = NV_BIT(1) }
 
enum  _NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX { NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE_EX = 0x0 , NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_OPACITY_MICROMAP_ARRAY_EX = 0x1 , NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_EX = 0x2 }
 
enum  _NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX {
  NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE_EX = 0x0 , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE_EX = NV_BIT(0) , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION_EX = NV_BIT(1) , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE_EX = NV_BIT(2) ,
  NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD_EX = NV_BIT(3) , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY_EX = NV_BIT(4) , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE_EX = NV_BIT(5) , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE_EX = NV_BIT(6) ,
  NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS_EX = NV_BIT(7) , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_OPACITY_STATES_UPDATE_EX = NV_BIT(8) , NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DATA_ACCESS_EX = NV_BIT(9)
}
 
enum  _NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX { NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES_EX = 0x0 , NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS_EX = 0x1 , NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES_EX = 0x2 , NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_DMM_TRIANGLES_EX = 0x3 }
 
enum  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX { NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT = -1 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE = -2 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT = -3 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE = -4 }
 
enum  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAGS { NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAG_DECIMATE_01 = NV_BIT(0) , NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAG_DECIMATE_12 = NV_BIT(1) , NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAG_DECIMATE_20 = NV_BIT(2) }
 
enum  _NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX {
  NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_NONE_EX = 0x0 , NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE_EX = NV_BIT(0) , NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE_EX = NV_BIT(1) , NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE_EX = NV_BIT(2) ,
  NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE_EX = NV_BIT(3) , NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE_EX = NV_BIT(4) , NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX = NV_BIT(5)
}
 
enum  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE { NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0x0 }
 
enum  _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE { NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0x0 }
 
enum  _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE { NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT = 0 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE = 1 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT = 2 , NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE = 3 }
 
enum  _NVAPI_RAY_FLAGS_EX {
  NVAPI_RAY_FLAG_NONE_EX = 0x0 , NVAPI_RAY_FLAG_FORCE_OPAQUE_EX = NV_BIT( 0) , NVAPI_RAY_FLAG_FORCE_NON_OPAQUE_EX = NV_BIT( 1) , NVAPI_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH_EX = NV_BIT( 2) ,
  NVAPI_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER_EX = NV_BIT( 3) , NVAPI_RAY_FLAG_CULL_BACK_FACING_TRIANGLES_EX = NV_BIT( 4) , NVAPI_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES_EX = NV_BIT( 5) , NVAPI_RAY_FLAG_CULL_OPAQUE_EX = NV_BIT( 6) ,
  NVAPI_RAY_FLAG_CULL_NON_OPAQUE_EX = NV_BIT( 7) , NVAPI_RAY_FLAG_SKIP_TRIANGLES_EX = NV_BIT( 8) , NVAPI_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES_EX = NV_BIT( 9) , NVAPI_RAY_FLAG_FORCE_OMM_2_STATE_EX = NV_BIT(10)
}
 
enum  NVAPI_DEVICE_FEATURE_LEVEL {
  NVAPI_DEVICE_FEATURE_LEVEL_NULL = -1 , NVAPI_DEVICE_FEATURE_LEVEL_10_0 = 0 , NVAPI_DEVICE_FEATURE_LEVEL_10_0_PLUS = 1 , NVAPI_DEVICE_FEATURE_LEVEL_10_1 = 2 ,
  NVAPI_DEVICE_FEATURE_LEVEL_11_0 = 3
}
 
enum  _NVAPI_D3D_SETRESOURCEHINT_CATEGORY { NVAPI_D3D_SRH_CATEGORY_SLI = 1 }
 
enum  _NVAPI_D3D_SETRESOURCEHINT_SLI { NVAPI_D3D_SRH_SLI_APP_CONTROLLED_INTERFRAME_CONTENT_SYNC = 1 , NVAPI_D3D_SRH_SLI_ASK_FOR_BROADCAST_USAGE = 2 , NVAPI_D3D_SRH_SLI_RESPECT_DRIVER_INTERFRAME_CONTENT_SYNC = 3 }
 
enum  _NVAPI_D3D_RESOURCERENDERING_FLAG { NVAPI_D3D_RR_FLAG_DEFAULTS = 0x00000000 , NVAPI_D3D_RR_FLAG_FORCE_DISCARD_CONTENT = 0x00000001 , NVAPI_D3D_RR_FLAG_FORCE_KEEP_CONTENT = 0x00000002 , NVAPI_D3D_RR_FLAG_MULTI_FRAME = 0x00000004 }
 

Functions

NVAPI_INTERFACE NvAPI_D3D9_RegisterResource (IDirect3DResource9 *pResource)
 
NVAPI_INTERFACE NvAPI_D3D9_UnregisterResource (IDirect3DResource9 *pResource)
 
NVAPI_INTERFACE NvAPI_D3D9_AliasSurfaceAsTexture (IDirect3DDevice9 *pDev, IDirect3DSurface9 *pSurface, IDirect3DTexture9 **ppTexture, DWORD dwFlag)
 
NVAPI_INTERFACE NvAPI_D3D9_StretchRectEx (IDirect3DDevice9 *pDevice, IDirect3DResource9 *pSourceResource, CONST RECT *pSourceRect, IDirect3DResource9 *pDestResource, CONST RECT *pDestRect, D3DTEXTUREFILTERTYPE Filter)
 
NVAPI_INTERFACE NvAPI_D3D9_ClearRT (IDirect3DDevice9 *pDevice, NvU32 dwNumRects, CONST RECT *pRects, float r, float g, float b, float a)
 
NVAPI_INTERFACE NvAPI_D3D9_GetSurfaceHandle (IDirect3DSurface9 *pSurface, NVDX_ObjectHandle *pHandle)
 
NVAPI_INTERFACE NvAPI_D3D10_SetDepthBoundsTest (ID3D10Device *pDev, NvU32 bEnable, float fMinDepth, float fMaxDepth)
 
NVAPI_INTERFACE NvAPI_D3D11_IsNvShaderExtnOpCodeSupported (__in IUnknown *pDev, __in NvU32 opCode, __out bool *pSupported)
 
NVAPI_INTERFACE NvAPI_D3D11_SetNvShaderExtnSlot (__in IUnknown *pDev, __in NvU32 uavSlot)
 
NVAPI_INTERFACE NvAPI_D3D12_SetNvShaderExtnSlotSpace (__in IUnknown *pDev, __in NvU32 uavSlot, __in NvU32 uavSpace)
 
NVAPI_INTERFACE NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread (__in IUnknown *pDev, __in NvU32 uavSlot, __in NvU32 uavSpace)
 
NVAPI_INTERFACE NvAPI_D3D11_SetNvShaderExtnSlotLocalThread (__in IUnknown *pDev, __in NvU32 uavSlot)
 
NVAPI_INTERFACE NvAPI_D3D11_BeginUAVOverlap (__in IUnknown *pDeviceOrContext)
 
NVAPI_INTERFACE NvAPI_D3D11_EndUAVOverlap (__in IUnknown *pDeviceOrContext)
 
NVAPI_INTERFACE NvAPI_D3D_SetFPSIndicatorState (IUnknown *pDev, NvU8 doEnable)
 
NVAPI_INTERFACE NvAPI_D3D9_Present (IDirect3DDevice9 *pDevice, IDirect3DSwapChain9 *pSwapChain, const RECT *pSourceRect, const RECT *pDestRect, HWND hDestWindowOverride, const RGNDATA *pDirtyRegion)
 
NVAPI_INTERFACE NvAPI_D3D9_QueryFrameCount (IDirect3DDevice9 *pDevice, NvU32 *pFrameCount)
 
NVAPI_INTERFACE NvAPI_D3D9_ResetFrameCount (IDirect3DDevice9 *pDevice)
 
NVAPI_INTERFACE NvAPI_D3D9_QueryMaxSwapGroup (IDirect3DDevice9 *pDevice, NvU32 *pMaxGroups, NvU32 *pMaxBarriers)
 
NVAPI_INTERFACE NvAPI_D3D9_QuerySwapGroup (IDirect3DDevice9 *pDevice, IDirect3DSwapChain9 *pSwapChain, NvU32 *pSwapGroup, NvU32 *pSwapBarrier)
 
NVAPI_INTERFACE NvAPI_D3D9_JoinSwapGroup (IDirect3DDevice9 *pDevice, IDirect3DSwapChain9 *pSwapChain, NvU32 group, BOOL blocking)
 
NVAPI_INTERFACE NvAPI_D3D9_BindSwapBarrier (IDirect3DDevice9 *pDevice, NvU32 group, NvU32 barrier)
 
NVAPI_INTERFACE NvAPI_D3D_SetVerticalSyncMode (__in IUnknown *pDevice, __in NVAPI_VSYNC_MODE vsyncMode)
 
NVAPI_INTERFACE NvAPI_D3D1x_Present (IUnknown *pDevice, IDXGISwapChain *pSwapChain, UINT SyncInterval, UINT Flags)
 
NVAPI_INTERFACE NvAPI_D3D1x_QueryFrameCount (IUnknown *pDevice, NvU32 *pFrameCount)
 
NVAPI_INTERFACE NvAPI_D3D1x_ResetFrameCount (IUnknown *pDevice)
 
NVAPI_INTERFACE NvAPI_D3D1x_QueryMaxSwapGroup (IUnknown *pDevice, NvU32 *pMaxGroups, NvU32 *pMaxBarriers)
 
NVAPI_INTERFACE NvAPI_D3D1x_QuerySwapGroup (IUnknown *pDevice, IDXGISwapChain *pSwapChain, NvU32 *pSwapGroup, NvU32 *pSwapBarrier)
 
NVAPI_INTERFACE NvAPI_D3D1x_JoinSwapGroup (IUnknown *pDevice, IDXGISwapChain *pSwapChain, NvU32 group, BOOL blocking)
 
NVAPI_INTERFACE NvAPI_D3D1x_BindSwapBarrier (IUnknown *pDevice, NvU32 group, NvU32 barrier)
 
NVAPI_INTERFACE NvAPI_D3D12_QueryPresentBarrierSupport (__in ID3D12Device *pDevice, __out bool *pSupported)
 
NVAPI_INTERFACE NvAPI_D3D12_CreatePresentBarrierClient (__in ID3D12Device *pDevice, __in IDXGISwapChain *pSwapChain, __out NvPresentBarrierClientHandle *pPresentBarrierClient)
 
NVAPI_INTERFACE NvAPI_D3D12_RegisterPresentBarrierResources (__in NvPresentBarrierClientHandle presentBarrierClient, __in ID3D12Fence *pFence, __in ID3D12Resource **ppResources, __in NvU32 numResources)
 
NVAPI_INTERFACE NvAPI_D3D12_CreateDDisplayPresentBarrierClient (__in ID3D12Device *pDevice, __in NvU32 sourceId, __out NvPresentBarrierClientHandle *pPresentBarrierClient)
 
NVAPI_INTERFACE NvAPI_D3D11_CreateRasterizerState (__in ID3D11Device *pDevice, __in const NvAPI_D3D11_RASTERIZER_DESC_EX *pRasterizerDesc, __out ID3D11RasterizerState **ppRasterizerState)
 
NVAPI_INTERFACE NvAPI_D3D11_CheckFeatureSupport (__in ID3D11Device *pDevice, __in NV_D3D11_FEATURE Feature, __out void *pFeatureSupportData, __in UINT FeatureSupportDataSize)
 
NVAPI_INTERFACE NvAPI_D3D11_CreateImplicitMSAATexture2D (__in ID3D11Device *pDevice, __in const D3D11_TEXTURE2D_DESC *pDesc, __out ID3D11Texture2D **ppTexture2D)
 
NVAPI_INTERFACE NvAPI_D3D12_CreateCommittedImplicitMSAATexture2D (__in ID3D12Device *pDevice, __in const D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, __in const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialResourceState, __in_opt const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riidResource, __out void **ppvResource)
 
NVAPI_INTERFACE NvAPI_D3D11_ResolveSubresourceRegion (__in ID3D11Device *pDevice, __in ID3D11Texture2D *pDstResource, __in UINT DstSubresource, __in UINT DstX, __in UINT DstY, __in ID3D11Texture2D *pSrcResource, __in UINT SrcSubresource, __in_opt const RECT *pSrcRect, __in DXGI_FORMAT Format, __in NV_RESOLVE_MODE ResolveMode)
 
NVAPI_INTERFACE NvAPI_D3D12_ResolveSubresourceRegion (__in ID3D12GraphicsCommandList1 *pCommandList, __in ID3D12Resource *pDstResource, __in UINT DstSubresource, __in UINT DstX, __in UINT DstY, __in ID3D12Resource *pSrcResource, __in UINT SrcSubresource, __in_opt RECT *pSrcRect, __in DXGI_FORMAT Format, __in NV_RESOLVE_MODE ResolveMode)
 
NVAPI_INTERFACE NvAPI_D3D11_AliasMSAATexture2DAsNonMSAA (__in ID3D11Device *pDevice, __in ID3D11Texture2D *pInputTex, __out ID3D11Texture2D **ppOutTex)
 
NVAPI_INTERFACE NvAPI_D3D11_DecompressView (__in ID3D11Device *pDevice, __in ID3D11DeviceContext *pDeviceContext, __in ID3D11View *pView)
 
NVAPI_INTERFACE NvAPI_D3D12_CreateGraphicsPipelineState (__in ID3D12Device *pDevice, __in const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pPSODesc, NvU32 numExtensions, __in const NVAPI_D3D12_PSO_EXTENSION_DESC **ppExtensions, __out ID3D12PipelineState **ppPSO)
 
NVAPI_INTERFACE NvAPI_D3D12_CreateComputePipelineState (__in ID3D12Device *pDevice, __in const D3D12_COMPUTE_PIPELINE_STATE_DESC *pPSODesc, NvU32 numExtensions, __in const NVAPI_D3D12_PSO_EXTENSION_DESC **ppExtensions, __out ID3D12PipelineState **ppPSO)
 
NVAPI_INTERFACE NvAPI_D3D12_SetDepthBoundsTestValues (__in ID3D12GraphicsCommandList *pCommandList, __in const float minDepth, __in const float maxDepth)
 
NVAPI_INTERFACE NvAPI_D3D12_CreateReservedResource (__in ID3D12Device *pDevice, __in const D3D12_RESOURCE_DESC *pDesc, __in D3D12_RESOURCE_STATES InitialState, __in const D3D12_CLEAR_VALUE *pOptimizedClearValue, __in REFIID riid, __out void **ppvResource, __in bool bTexture2DArrayMipPack, __in ID3D12Heap *pHeap)
 
NVAPI_INTERFACE NvAPI_D3D12_CreateHeap (__in ID3D12Device *pDevice, __in const D3D12_HEAP_DESC *pDesc, __in REFIID riid, __out void **ppvHeap)
 
NVAPI_INTERFACE NvAPI_D3D12_QueryCpuVisibleVidmem (__in ID3D12Device *pDevice, __out NvU64 *pTotalBytes, __out NvU64 *pFreeBytes)
 
NVAPI_INTERFACE NvAPI_D3D12_ReservedResourceGetDesc (__in ID3D12Resource *pReservedResource, __out D3D12_RESOURCE_DESC *pDesc)
 
NVAPI_INTERFACE NvAPI_D3D12_UpdateTileMappings (__in ID3D12CommandQueue *pCommandQueue, __in ID3D12Resource *pResource, __in UINT NumResourceRegions, __in const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, __in const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, __in ID3D12Heap *pHeap, __in UINT NumRanges, __in const D3D12_TILE_RANGE_FLAGS *pRangeFlags, __in const UINT *pHeapRangeStartOffsets, __in const UINT *pRangeTileCounts, __in D3D12_TILE_MAPPING_FLAGS Flags)
 
NVAPI_INTERFACE NvAPI_D3D12_CopyTileMappings (__in ID3D12CommandQueue *pCommandQueue, __in ID3D12Resource *pDstResource, __in const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, __in ID3D12Resource *pSrcResource, __in const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, __in const D3D12_TILE_REGION_SIZE *pRegionSize, __in D3D12_TILE_MAPPING_FLAGS Flags)
 
NVAPI_INTERFACE NvAPI_D3D12_ResourceAliasingBarrier (__in ID3D12GraphicsCommandList *pCommandList, __in UINT NumBarriers, __in const D3D12_RESOURCE_BARRIER *pBarriers)
 
NVAPI_INTERFACE NvAPI_D3D11_EnumerateMetaCommands (__in ID3D11Device *pDevice, __inout NvU32 *pNumMetaCommands, __out_ecount_opt(*pNumMetaCommands) NVAPI_META_COMMAND_DESC *pDescs)
 
NVAPI_INTERFACE NvAPI_D3D11_InitializeMetaCommand (__in ID3D11DeviceContext *pDeviceContext, __in ID3D11NvMetaCommand *pMetaCommand, __in_bcount(InitializationParametersDataSize) const void *pInitializationParametersData, __in NvU32 InitializationParametersDataSize)
 
NVAPI_INTERFACE NvAPI_D3D11_ExecuteMetaCommand (__in ID3D11DeviceContext *pDeviceContext, __in ID3D11NvMetaCommand *pMetaCommand, __in_bcount(ExecutionParametersDataSize) const void *pExecutionParametersData, __in NvU32 ExecutionParametersDataSize)
 
NVAPI_INTERFACE NvAPI_D3D12_EnumerateMetaCommands (__in ID3D12Device *pDevice, __inout NvU32 *pNumMetaCommands, __out_ecount_opt(*pNumMetaCommands) NVAPI_META_COMMAND_DESC *pDescs)
 
NVAPI_INTERFACE NvAPI_D3D12_InitializeMetaCommand (__in ID3D12GraphicsCommandList *pCommandlist, __in ID3D12NvMetaCommand *pMetaCommand, __in_bcount(InitializationParametersDataSize) const void *pInitializationParametersData, __in NvU32 InitializationParametersDataSize)
 
NVAPI_INTERFACE NvAPI_D3D12_ExecuteMetaCommand (__in ID3D12GraphicsCommandList *pCommandlist, __in ID3D12NvMetaCommand *pMetaCommand, __in_bcount(ExecutionParametersDataSize) const void *pExecutionParametersData, __in NvU32 ExecutionParametersDataSize)
 
NVAPI_INTERFACE NvAPI_D3D12_GetCopyableFootprints (__in ID3D12Device *pDevice, __in const D3D12_RESOURCE_DESC *pResourceDesc, __in const NV_RESOURCE_PARAMS *pNVResourceParams, __in UINT FirstSubresource, __in UINT NumSubresources, __in UINT64 BaseOffset, __out_ecount_opt(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, __out_ecount_opt(NumSubresources) UINT *pNumRows, __out_ecount_opt(NumSubresources) UINT64 *pRowSizeInBytes, __out_opt UINT64 *pTotalBytes)
 
NVAPI_INTERFACE NvAPI_D3D12_CopyTextureRegion (__in ID3D12GraphicsCommandList *pCommandList, __in const D3D12_TEXTURE_COPY_LOCATION *pDst, __in UINT DstX, __in UINT DstY, __in UINT DstZ, __in const D3D12_TEXTURE_COPY_LOCATION *pSrc, __in_opt const D3D12_BOX *pSrcBox)
 
NVAPI_INTERFACE NvAPI_D3D12_IsNvShaderExtnOpCodeSupported (__in ID3D12Device *pDevice, __in NvU32 opCode, __out bool *pSupported)
 
NVAPI_INTERFACE NvAPI_D3D12_GetOptimalThreadCountForMesh (__in ID3D12Device *pDevice, __out NvU32 *pThreadCount)
 
NVAPI_INTERFACE NvAPI_D3D_IsGSyncCapable (__in IUnknown *pDeviceOrContext, __in NVDX_ObjectHandle primarySurface, __out BOOL *pIsGsyncCapable)
 
NVAPI_INTERFACE NvAPI_D3D_IsGSyncActive (__in IUnknown *pDeviceOrContext, __in NVDX_ObjectHandle primarySurface, __out BOOL *pIsGsyncActive)
 
NVAPI_INTERFACE NvAPI_D3D1x_DisableShaderDiskCache (IUnknown *pDevice)
 
NVAPI_INTERFACE NvAPI_D3D11_MultiGPU_GetCaps (__inout PNV_MULTIGPU_CAPS pMultiGPUCaps)
 
NVAPI_INTERFACE NvAPI_D3D11_MultiGPU_Init (__in bool bEnable)
 
NVAPI_INTERFACE NvAPI_D3D11_CreateMultiGPUDevice (__in ID3D11Device *pDevice, __in ULONG version, __out ULONG *currentVersion, __out ID3D11MultiGPUDevice **ppD3D11MultiGPUDevice, __in UINT maxGpus=ALL_GPUS)
 
NVAPI_INTERFACE NvAPI_D3D_QuerySinglePassStereoSupport (__in IUnknown *pDevice, __inout NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS *pQuerySinglePassStereoSupportedParams)
 
NVAPI_INTERFACE NvAPI_D3D_SetSinglePassStereoMode (__in IUnknown *pDevOrContext, __in NvU32 numViews, __in NvU32 renderTargetIndexOffset, __in NvU8 independentViewportMaskEnable)
 
NVAPI_INTERFACE NvAPI_D3D12_QuerySinglePassStereoSupport (__in ID3D12Device *pDevice, __inout NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS *pQuerySinglePassStereoSupportedParams)
 
NVAPI_INTERFACE NvAPI_D3D12_SetSinglePassStereoMode (__in ID3D12GraphicsCommandList *pCommandList, __in NvU32 numViews, __in NvU32 renderTargetIndexOffset, __in NvU8 independentViewportMaskEnable)
 
NVAPI_INTERFACE NvAPI_D3D_QueryMultiViewSupport (__in IUnknown *pDevice, __inout NV_QUERY_MULTIVIEW_SUPPORT_PARAMS *pQueryMultiViewSupportedParams)
 
NVAPI_INTERFACE NvAPI_D3D_SetMultiViewMode (__in IUnknown *pDevOrContext, __in NV_MULTIVIEW_PARAMS *pMultiViewParams)
 
NVAPI_INTERFACE NvAPI_D3D_QueryModifiedWSupport (__in IUnknown *pDev, __inout NV_QUERY_MODIFIED_W_SUPPORT_PARAMS *pQueryModifiedWSupportedParams)
 
NVAPI_INTERFACE NvAPI_D3D_SetModifiedWMode (__in IUnknown *pDevOrContext, __in NV_MODIFIED_W_PARAMS *psModifiedWParams)
 
NVAPI_INTERFACE NvAPI_D3D12_QueryModifiedWSupport (__in ID3D12Device *pDevice, __inout NV_QUERY_MODIFIED_W_SUPPORT_PARAMS *pQueryModifiedWSupportedParams)
 
NVAPI_INTERFACE NvAPI_D3D12_SetModifiedWMode (__in ID3D12GraphicsCommandList *pCommandList, __in NV_MODIFIED_W_PARAMS *pModifiedWParams)
 
 DECLARE_INTERFACE (ID3DLateLatchObject_V1)
 
NVAPI_INTERFACE NvAPI_D3D_CreateLateLatchObject (__in IUnknown *pDevice, __inout NV_D3D_LATELATCH_OBJECT_DESC *pLateLatchObjectDesc)
 
NVAPI_INTERFACE NvAPI_D3D_QueryLateLatchSupport (__in IUnknown *pDevice, __inout NV_QUERY_LATELATCH_SUPPORT_PARAMS *pQueryLateLatchSupportParams)
 
NVAPI_INTERFACE NvAPI_D3D_RegisterDevice (__in IUnknown *pDev)
 
NVAPI_INTERFACE NvAPI_D3D11_MultiDrawInstancedIndirect (__in ID3D11DeviceContext *pDevContext11, __in NvU32 drawCount, __in ID3D11Buffer *pBuffer, __in NvU32 alignedByteOffsetForArgs, __in NvU32 alignedByteStrideForArgs)
 
NVAPI_INTERFACE NvAPI_D3D11_MultiDrawIndexedInstancedIndirect (__in ID3D11DeviceContext *pDevContext11, __in NvU32 drawCount, __in ID3D11Buffer *pBuffer, __in NvU32 alignedByteOffsetForArgs, __in NvU32 alignedByteStrideForArgs)
 
NVAPI_INTERFACE NvAPI_D3D_ImplicitSLIControl (__in IMPLICIT_SLI_CONTROL implicitSLIControl)
 
NVAPI_INTERFACE NvAPI_D3D12_GetNeedsAppFPBlendClamping (__in ID3D12Device *pDevice, __out bool *pAppClampNeeded)
 
NVAPI_INTERFACE NvAPI_D3D12_UseDriverHeapPriorities (__in ID3D12Device *pDevice)
 
NVAPI_INTERFACE NvAPI_D3D12_Mosaic_GetCompanionAllocations (__inout NV_D3D12_MOSAIC_GETCOMPANIONALLOCATIONS *params)
 
NVAPI_INTERFACE NvAPI_D3D12_Mosaic_GetViewportAndGpuPartitions (__inout NV_D3D12_MOSAIC_GETVIEWPORTANDGPUPARTITIONS *params)
 
NVAPI_INTERFACE NvAPI_D3D1x_GetGraphicsCapabilities (__in IUnknown *pDevice, __in NvU32 structVersion, __inout NV_D3D1x_GRAPHICS_CAPS *pGraphicsCaps)
 
NVAPI_INTERFACE NvAPI_D3D12_GetGraphicsCapabilities (__in IUnknown *pDevice, __in NvU32 structVersion, __inout NV_D3D12_GRAPHICS_CAPS *pGraphicsCaps)
 
NVAPI_INTERFACE NvAPI_D3D11_RSSetExclusiveScissorRects (__in IUnknown *pContext, __in NV_D3D11_EXCLUSIVE_SCISSOR_RECTS_DESC *pExclusiveScissorRectsDesc)
 
NVAPI_INTERFACE NvAPI_D3D11_RSSetViewportsPixelShadingRates (__in IUnknown *pContext, __in NV_D3D11_VIEWPORTS_SHADING_RATE_DESC *pShadingRateDesc)
 
NVAPI_INTERFACE NvAPI_D3D11_CreateShadingRateResourceView (__in ID3D11Device *pDevice, __in ID3D11Resource *pShadingRateResource, __in NV_D3D11_SHADING_RATE_RESOURCE_VIEW_DESC *pShadingRateResourceViewDesc, __out ID3D11NvShadingRateResourceView **ppShadingRateResourceView)
 
NVAPI_INTERFACE NvAPI_D3D11_RSSetShadingRateResourceView (__in IUnknown *pContext, __in ID3D11NvShadingRateResourceView *pShadingRateResourceView)
 
NVAPI_INTERFACE NvAPI_D3D11_RSGetPixelShadingRateSampleOrder (__in IUnknown *pContext, __out NV_PIXEL_SHADING_RATE_SAMPLE_ORDER_TABLE *pSampleOrderTable)
 
NVAPI_INTERFACE NvAPI_D3D11_RSSetPixelShadingRateSampleOrder (__in IUnknown *pContext, __in NV_PIXEL_SHADING_RATE_SAMPLE_ORDER_TABLE *pSampleOrderTable)
 
NVAPI_INTERFACE NvAPI_D3D_InitializeVRSHelper (__in IUnknown *pDevice, __inout NV_VRS_HELPER_INIT_PARAMS *pInitializeVRSHelperParams)
 
NVAPI_INTERFACE NvAPI_D3D_InitializeNvGazeHandler (__in IUnknown *pDevice, __inout NV_GAZE_HANDLER_INIT_PARAMS *pInitializeNvGazeHandlerParams)
 
NVAPI_INTERFACE NvAPI_D3D_InitializeSMPAssist (__in IUnknown *pDevice, __inout NV_SMP_ASSIST_INITIALIZE_PARAMS *pSMPAssistInitParams)
 
NVAPI_INTERFACE NvAPI_D3D_QuerySMPAssistSupport (__in IUnknown *pDev, __inout NV_QUERY_SMP_ASSIST_SUPPORT_PARAMS *pQuerySMPAssistSupportParams)
 
NVAPI_INTERFACE NvAPI_D3D_GetSleepStatus (__in IUnknown *pDev, __in NV_GET_SLEEP_STATUS_PARAMS *pGetSleepStatusParams)
 
NVAPI_INTERFACE NvAPI_D3D_SetSleepMode (__in IUnknown *pDev, __in NV_SET_SLEEP_MODE_PARAMS *pSetSleepModeParams)
 
NVAPI_INTERFACE NvAPI_D3D_Sleep (__in IUnknown *pDev)
 
NVAPI_INTERFACE NvAPI_D3D_SetReflexSync (__in IUnknown *pDev, __in NV_SET_REFLEX_SYNC_PARAMS *pSetReflexSyncParams)
 
NVAPI_INTERFACE NvAPI_D3D_GetLatency (__in IUnknown *pDev, __out NV_LATENCY_RESULT_PARAMS *pGetLatencyParams)
 
NVAPI_INTERFACE NvAPI_D3D_SetLatencyMarker (__in IUnknown *pDev, __in NV_LATENCY_MARKER_PARAMS *pSetLatencyMarkerParams)
 
NVAPI_INTERFACE NvAPI_D3D12_SetAsyncFrameMarker (__in ID3D12CommandQueue *pCommandQueue, __in NV_ASYNC_FRAME_MARKER_PARAMS *pSetAsyncFrameMarkerParams)
 
NVAPI_INTERFACE NvAPI_D3D12_NotifyOutOfBandCommandQueue (__in ID3D12CommandQueue *pCommandQueue, __in NV_OUT_OF_BAND_CQ_TYPE cqType)
 
NVAPI_INTERFACE NvAPI_D3D12_SetCreateCommandQueueLowLatencyHint (__in ID3D12Device *pDevice)
 
NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingCaps (__in ID3D12Device *pDevice, __in NVAPI_D3D12_RAYTRACING_CAPS_TYPE type, __out void *pData, __in size_t dataSize)
 
NVAPI_INTERFACE NvAPI_D3D12_EnableRaytracingValidation (__in ID3D12Device5 *pDevice, __in NVAPI_D3D12_RAYTRACING_VALIDATION_FLAGS flags)
 
NVAPI_INTERFACE NvAPI_D3D12_RegisterRaytracingValidationMessageCallback (__in ID3D12Device5 *pDevice, __in NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_CALLBACK pfnMessageCallback, __in_opt void *pUserData, __out void **pHandle)
 
NVAPI_INTERFACE NvAPI_D3D12_UnregisterRaytracingValidationMessageCallback (__in ID3D12Device5 *pDevice, __in void *handle)
 
NVAPI_INTERFACE NvAPI_D3D12_FlushRaytracingValidationMessages (__in ID3D12Device5 *pDevice)
 
NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingDisplacementMicromapArrayPrebuildInfo (__in ID3D12Device5 *pDevice, __inout NVAPI_GET_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo (__in ID3D12Device5 *pDevice, __inout NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_SetCreatePipelineStateOptions (__in ID3D12Device5 *pDevice, __in const NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS *pState)
 
NVAPI_INTERFACE NvAPI_D3D12_CheckDriverMatchingIdentifierEx (__in ID3D12Device5 *pDevice, __inout NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx (__in ID3D12Device5 *pDevice, __inout NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingOpacityMicromapArray (__in ID3D12GraphicsCommandList4 *pCommandList, __in NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray (__in ID3D12GraphicsCommandList4 *pCommandList, __in const NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingDisplacementMicromapArray (__in ID3D12GraphicsCommandList4 *pCommandList, __in NVAPI_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_RelocateRaytracingDisplacementMicromapArray (__in ID3D12GraphicsCommandList4 *pCommandList, __in const NVAPI_RELOCATE_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_EmitRaytracingDisplacementMicromapArrayPostbuildInfo (__in ID3D12GraphicsCommandList4 *pCommandList, __in const NVAPI_EMIT_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo (__in ID3D12GraphicsCommandList4 *pCommandList, __in const NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingAccelerationStructureEx (__in ID3D12GraphicsCommandList4 *pCommandList, __in const NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS *pParams)
 
NVAPI_INTERFACE NvAPI_D3D12_QueryWorkstationFeatureProperties (__in ID3D12Device *pDevice, __inout NVAPI_D3D12_WORKSTATION_FEATURE_PROPERTIES_PARAMS *pWorkstationFeatureProperties)
 
NVAPI_INTERFACE NvAPI_D3D12_CreateCommittedRDMABuffer (__in ID3D12Device *pDevice, __in NvU64 size, __in NvU32 heapCreationNodeMask, __in NvU32 heapVisibleNodeMask, __in REFIID riidResource, __out void **ppvResource, __out void **ppRDMAAddress)
 
NVAPI_INTERFACE NvAPI_DirectD3D12GraphicsCommandList_Create (__in ID3D12GraphicsCommandList *pDXD3D12GraphicsCommandList, __out INvAPI_DirectD3D12GraphicsCommandList **ppReturnD3D12GraphicsCommandList)
 
NVAPI_INTERFACE NvAPI_DirectD3D12GraphicsCommandList_Release (__in INvAPI_DirectD3D12GraphicsCommandList *pD3D12GraphicsCommandList)
 
NVAPI_INTERFACE NvAPI_DirectD3D12GraphicsCommandList_Reset (__in INvAPI_DirectD3D12GraphicsCommandList *pD3D12GraphicsCommandList)
 
NVAPI_INTERFACE NvAPI_D3D_GetObjectHandleForResource (IUnknown *pDevice, IUnknown *pResource, NVDX_ObjectHandle *pHandle)
 
NVAPI_INTERFACE NvAPI_D3D11_CreateDevice (IDXGIAdapter *pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, CONST D3D_FEATURE_LEVEL *pFeatureLevels, UINT FeatureLevels, UINT SDKVersion, ID3D11Device **ppDevice, D3D_FEATURE_LEVEL *pFeatureLevel, ID3D11DeviceContext **ppImmediateContext, NVAPI_DEVICE_FEATURE_LEVEL *pSupportedLevel)
 
NVAPI_INTERFACE NvAPI_D3D11_CreateDeviceAndSwapChain (IDXGIAdapter *pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, CONST D3D_FEATURE_LEVEL *pFeatureLevels, UINT FeatureLevels, UINT SDKVersion, CONST DXGI_SWAP_CHAIN_DESC *pSwapChainDesc, IDXGISwapChain **ppSwapChain, ID3D11Device **ppDevice, D3D_FEATURE_LEVEL *pFeatureLevel, ID3D11DeviceContext **ppImmediateContext, NVAPI_DEVICE_FEATURE_LEVEL *pSupportedLevel)
 
NVAPI_INTERFACE NvAPI_D3D11_SetDepthBoundsTest (IUnknown *pDeviceOrContext, NvU32 bEnable, float fMinDepth, float fMaxDepth)
 
NVAPI_INTERFACE NvAPI_D3D_GetCurrentSLIState (IUnknown *pDevice, NV_GET_CURRENT_SLI_STATE *pSliState)
 
NVAPI_INTERFACE NvAPI_D3D_SetResourceHint (IUnknown *pDev, NVDX_ObjectHandle obj, NVAPI_D3D_SETRESOURCEHINT_CATEGORY dwHintCategory, NvU32 dwHintName, NvU32 *pdwHintValue)
 
NVAPI_INTERFACE NvAPI_D3D_BeginResourceRendering (IUnknown *pDeviceOrContext, NVDX_ObjectHandle obj, NvU32 Flags)
 
NVAPI_INTERFACE NvAPI_D3D_EndResourceRendering (IUnknown *pDeviceOrContext, NVDX_ObjectHandle obj, NvU32 Flags)
 

Detailed Description

Macro Definition Documentation

◆ NV_GET_CURRENT_SLI_STATE_VER1

#define NV_GET_CURRENT_SLI_STATE_VER1   MAKE_NVAPI_VERSION(NV_GET_CURRENT_SLI_STATE_V1,1)

◆ NV_MAX_PIXEL_SHADING_RATES

#define NV_MAX_PIXEL_SHADING_RATES   16

See NvAPI_D3D11_RSSetViewportsPixelShadingRates

◆ NVAPI_COPY_ASYNCHRONOUSLY

#define NVAPI_COPY_ASYNCHRONOUSLY   1

SUPPORTED OS: Windows 7 and higher

DESCRIPTION: This function returns ID3D11MultiGPUDevice used for multi GPU VR support
\param [in] pDevice current d3d device
\param [in] version version of requested ID3D11MultiGPUDevice.
\param [out] currentVersion pointer to returned current version of ID3D11MultiGPUDevice.
\param [out] ppD3D11MultiGPUDevice pointer to returned ID3D11MultiGPUDevice.
\param [in] maxGpus max number of gpus this ID3D11MultiGPUDevice is allowed to use
\return ::NVAPI_OK if the call succeeds.
NVAPI_INVALID_ARGUMENT if NvAPI_D3D11_MultiGPU_Init() was not enabled prior to the creation of the D3D11 device,
or if maxGpus is greater than the number of GPUs in the SLI group.
NVAPI_NO_ACTIVE_SLI_TOPOLOGY on single-GPU systems, or
if SLI has not been enabled in the NVIDIA control panel.
NVAPI_INVALID_CALL if there is already an ID3D11MultiGPUDevice created for the specified ID3D11Device.
NVAPI_INCOMPATIBLE_STRUCT_VERSION if requested interface version is greater than the one that is supported by installed.
driver. In this case currentVersion will contain version supported by installed driver.
NVAPI_INTERFACE NvAPI_D3D11_MultiGPU_Init(__in bool bEnable)
@ NVAPI_INVALID_CALL
The method call is invalid. For example, a method's parameter may not be a valid pointer.
Definition nvapi_lite_common.h:309
@ NVAPI_INCOMPATIBLE_STRUCT_VERSION
An argument's structure version is not supported.
Definition nvapi_lite_common.h:267
@ NVAPI_NO_ACTIVE_SLI_TOPOLOGY
SLI is not active on this device.
Definition nvapi_lite_common.h:288
@ NVAPI_INVALID_ARGUMENT
The argument/parameter value is not valid or NULL.
Definition nvapi_lite_common.h:263
ID3D11MultiGPUDevice_V1 ID3D11MultiGPUDevice
Definition nvapi.h:15704

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BYTE_ALIGNMENT

#define NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BYTE_ALIGNMENT   256

Mandatory alignment for the address of a DMM Array.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DC1_MAX_SUBDIVISION_LEVEL

#define NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DC1_MAX_SUBDIVISION_LEVEL   5

Highest subdivision-level allowed with DC1.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT

#define NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT   256

Mandatory alignment for the address of an OMM Array.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL

#define NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL   12

Highest subdivision-level allowed with OC1.

Typedef Documentation

◆ ID3DLateLatchObject

typedef ID3DLateLatchObject_V1 ID3DLateLatchObject

See NvAPI_D3D_CreateLateLatchObject

◆ IMPLICIT_SLI_CONTROL

SUPPORTED OS: Windows 7 and higher This function enables/disables the SLI rendering mode. It has to be called prior to D3D device creation. Once this function is called with DISABLE_IMPLICIT_SLI parameter all subsequently created devices will be forced to run in a single gpu mode until the same function is called with ENABLE_IMPLICIT_SLI parameter. The enable call will force all subsequently created devices to run in default implicit SLI mode being determined by an application profile or a global control panel SLI setting. This NvAPI call is supported in all DX10+ versions of the driver. It is supported on all Windows versions.

Return values
NVAPI_OKCompleted request
NVAPI_ERRORError occurred

◆ NV_ASYNC_FRAME_MARKER_PARAMS_V1

SUPPORTED OS: Windows 10 and higher

Used in NvAPI_D3D12_SetAsyncFrameMarker

◆ NV_COMPUTE_SHADER_DERIVATIVES

Enum for compute shader derivative modes

◆ NV_D3D11_EXCLUSIVE_SCISSOR_RECT_DESC_V1

See NvAPI_D3D11_RSSetExclusiveScissorRects

◆ NV_D3D12_GRAPHICS_CAPS_V1

See NvAPI_D3D12_GetGraphicsCapabilities

◆ NV_D3D1x_GRAPHICS_CAPS_V1

See NvAPI_D3D1x_GetGraphicsCapabilities

◆ NV_GET_SLEEP_STATUS_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used to get sleep status

◆ NV_LATENCY_MARKER_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used set latency markers

◆ NV_LATENCY_RESULT_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used to get latency report.

◆ NV_MULTIGPU_CAPS_V1

SUPPORTED OS: Windows 7 and higher DESCRIPTION: Request to get multi GPU extension caps.

Parameters
[in/out]pMultiGPUCaps Pointer to a structure returning multi GPU caps
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.

◆ NV_MULTIVIEW_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used for setting the Mode for MultiView HW Feature. <>

◆ NV_PIXEL_SRSO_1x2

See NvAPI_D3D11_RSGetPixelShadingRateSampleOrder See NvAPI_D3D11_RSSetPixelShadingRateSampleOrder

◆ NV_PSO_EXTENSION

Enum for CreatePSO extensions.

constant 5 is assigned to two members of this enum becuase the first member name contains a typo: EXTNENSION. Please use the correctly-spelled enumerator.

◆ NV_QUERY_LATELATCH_SUPPORT_PARAMS_V1

See NvAPI_D3D_QueryLateLatchSupport

◆ NV_QUERY_MODIFIED_W_SUPPORT_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used to query the support of Lens Matched Shading HW feature <>

◆ NV_QUERY_MULTIVIEW_SUPPORT_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used to query the support of MultiView HW feature <>

◆ NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used to query the support of Single Pass Stereo HW feature <>

◆ NV_QUERY_SMP_ASSIST_SUPPORT_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

◆ NV_RESOLVE_MODE

SUPPORTED OS: Windows 10 and higher

Valid modes for NvAPI_D3D11_ResolveSubresourceRegion() and NvAPI_D3D12_ResolveSubresourceRegion

◆ NV_SET_REFLEX_SYNC_PARAMS_V1

SUPPORTED OS: Windows 10 and higher

Used to send Reflex Sync data to UMD

◆ NV_SET_SLEEP_MODE_PARAMS_V1

SUPPORTED OS: Windows 7 and higher

Used to set sleep mode

◆ NV_SMP_ASSIST_TYPE

SUPPORTED OS: Windows 7 and higher

◆ NVAPI_ANSEL_FEATURE

SUPPORTED OS: Windows 7 and higher

DESCRIPTION: This function configure the setting of AnselShim, including hotkey.
\param [in] pDevice current d3d device (should be ID3D11Device, ID3D10Device, or ID3D12Device)
\param [in] pAnselConfig configuration of Ansel to be set, including hotkey setting
\return ::NVAPI_OK if the call succeeds.

◆ NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1

◆ NVAPI_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1

◆ NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1

◆ NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1

◆ NVAPI_D3D11_INSERTWFI_FLAG

DESCRIPTION: Causes the driver to skip synchronization that is normally needed when accessing UAVs. Applications must use this with caution otherwise this might cause data hazards when multiple draw calls/compute shader launches are accessing same memory locations

SUPPORTED OS: Windows 7 and higher

Parameters
[in]*pDeviceOrContextpointer to D3D11 device, or D3D11 device context
[in]insertWFIFlagsbit fields to indicate which WFI would be inserted (gfx / compute / both).

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC_EX

This structure extends D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC by supporting additional geometry types as inputs. For more information on the different members, please check Microsoft's DirectX Raytracing Specification.

◆ NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX

This structure extends D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS by supporting additional geometry types. Only modified members are fully described below; for more information on the other members, please check Microsoft's DirectX Raytracing Specification.

◆ NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_DESC

Description of the inputs and memory areas used during the building of DMM Arrays.

◆ NVAPI_D3D12_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_INPUTS

Input structure to DMM Array construction. Individual DMMs are accessed via indices when used in bottom-level acceleration structure (BLAS) construction.

◆ NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC

Description of the inputs and memory areas used during the building of OMM Arrays.

◆ NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS

Input structure to OMM Array construction. Individual OMMs are accessed via indices when used in bottom-level acceleration structure (BLAS) construction.

◆ NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS

Pipeline creation state flags.

◆ NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX

This enum extends D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS with modified and additional values. Only modified/new values are fully described; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

◆ NVAPI_D3D12_RAYTRACING_CAPS_TYPE

List of Raytracing CAPS types that can be queried.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAGS

SUPPORTED OS: Windows 10 and higher Flags specifying building instructions and hints when constructing a DMM Array.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_DESC

Description of the postbuild information to generate from a DMM Array.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE

Type of postbuild info to emit after a DMM Array build.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO

Conservative memory requirements for building a DMM Array.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS

Flags specifying raytracing Displacement Micromap support. Additional flags will be added as support becomes available.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DESC

Describes one Displacement Micromap.

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT

Specifies the input Displacement Micromap formats. The DC1 (Displacement Compression 1) format follows the space-filling curve in barycentric space over the uniformly tessellated micro-triangles.

Note
This is a 16-bit value when used in NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DESC

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAGS

The edge vA..vB is decimated: after subdivision the number of micro-triangles on that edge is halved. (i.e. the neighboring primitive can have a lower subdivision level without introducing cracks)

◆ NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_USAGE_COUNT

Number of DMMs of a specific configuration in a DMM Array or BLAS build. Used to compute conservative buffer size estimates for DMM Array and BLAS builds.

◆ NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX

This structure extends D3D12_RAYTRACING_GEOMETRY_DESC by supporting additional geometry types. Only new members are fully described below; for more information on the other members, please check Microsoft's DirectX Raytracing Specification.

◆ NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_ATTACHMENT_DESC

Geometry descriptor attachment with Displacement Micromaps.

◆ NVAPI_D3D12_RAYTRACING_GEOMETRY_DMM_TRIANGLES_DESC

Geometry triangle descriptor with attached augmented Displacement Micromaps.

◆ NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_ATTACHMENT_DESC

Geometry descriptor attachment with Opacity Micromaps.

◆ NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC

Geometry triangle descriptor with attached augmented Opacity Micromaps.

◆ NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX

This enum extends D3D12_RAYTRACING_GEOMETRY_TYPE with additional values. Only new values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

◆ NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX

This enum extends D3D12_RAYTRACING_INSTANCE_FLAGS with additional values. Only new values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS

SUPPORTED OS: Windows 10 and higher Flags specifying building instructions and hints when constructing an OMM Array.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC

Description of the postbuild information to generate from an OMM Array.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE

Type of postbuild info to emit after an OMM Array build.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO

Conservative memory requirements for building an OMM Array.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS

Flags specifying raytracing Opacity Micromap support. Additional flags will be added as support becomes available.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC

Describes one Opacity Micromap.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT

Specifies the input Opacity Micromap formats. The OC1 (Opacity Compression 1) format follows the space-filling curve in barycentric space over the uniformly tessellated micro-triangles.

Note
This is a 16-bit value when used in NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX

If a triangle has a uniform OMM state in a BLAS build, it is preferable to signal this explicitly rather than attaching a single state OMM. This can be accomplished by supplying these special indices as entries in opacityMicromapIndexBuffer, in NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE

Opacity Micromap micro-triangle states. Not part of any input, but listed here for convenience.

◆ NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT

Number of OMMs of a specific configuration in an OMM Array. Used to compute conservative buffer size estimates for OMM Array builds.

◆ NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS

Flags specifying raytracing thread reordering hardware support. Additional flags will be added as support becomes available.

◆ NVAPI_D3D12_RAYTRACING_VALIDATION_FLAGS

Flags specifying validation behaviour for raytracing operations.

See NvAPI_D3D12_EnableRaytracingValidation

◆ NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_CALLBACK

typedef void(__stdcall * NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_CALLBACK) (void *pUserData, NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY severity, const char *messageCode, const char *message, const char *messageDetails)

Callback for raytracing validation messages.

Parameters
[in]pUserDataUser data pointer as provided to callback registration.
[in]severitySeverity of message.
[in]messageCodeType of reported validation message.
[in]messageHuman-readable description of what the message code means.
[in]messageDetailsAdditional human-readable context for validation message. May contain newlines.

See NvAPI_D3D12_RegisterRaytracingValidationMessageCallback

◆ NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY

Severity classification of validation messages.

See NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_CALLBACK

◆ NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX

Type of serialized data.

◆ NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1

State used when creating new pipelines.

◆ NVAPI_D3D_RESOURCERENDERING_FLAG

◆ NVAPI_D3D_SETRESOURCEHINT_CATEGORY

Valid categories for NvAPI_D3D_SetResourceHint()

◆ NVAPI_D3D_SETRESOURCEHINT_SLI

Types of SLI hints;
NVAPI_D3D_SRH_SLI_APP_CONTROLLED_INTERFRAME_CONTENT_SYNC: Valid values : 0 or 1
Default value: 0
Explanation: If the value is 1, the driver will not track any rendering operations that would mark this resource as dirty, avoiding any form of synchronization across frames rendered in parallel in multiple GPUs in AFR mode.

NVAPI_D3D_SRH_SLI_ASK_FOR_BROADCAST_USAGE: Valid values : 0 or 1
Default value: 0
Explanation: If the value is 1, the driver will try to perform operations which involved target resource in broadcast, where it's possible. Hint is static and must be set before resource starts using.

NVAPI_D3D_SRH_SLI_RESPECT_DRIVER_INTERFRAME_CONTENT_SYNC: Valid values : 0 or 1
Default value: 0
Explanation: If the value is 1, the driver will do dirty resource resolve regardless of discard flags in the application profile or AFR-FriendlyD3DHints.exe name using.

◆ NVAPI_EMIT_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1

◆ NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1

◆ NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1

◆ NVAPI_GET_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1

◆ NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1

◆ NVAPI_RAY_FLAG_EX

A list of flags that can be given to the TraceRay() function in HLSL. Only new or modified values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

◆ NVAPI_RELOCATE_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS_V1

◆ NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1

◆ PNV_MULTIGPU_CAPS_V1

Enumeration Type Documentation

◆ _IMPLICIT_SLI_CONTROL

SUPPORTED OS: Windows 7 and higher This function enables/disables the SLI rendering mode. It has to be called prior to D3D device creation. Once this function is called with DISABLE_IMPLICIT_SLI parameter all subsequently created devices will be forced to run in a single gpu mode until the same function is called with ENABLE_IMPLICIT_SLI parameter. The enable call will force all subsequently created devices to run in default implicit SLI mode being determined by an application profile or a global control panel SLI setting. This NvAPI call is supported in all DX10+ versions of the driver. It is supported on all Windows versions.

Return values
NVAPI_OKCompleted request
NVAPI_ERRORError occurred
Enumerator
DISABLE_IMPLICIT_SLI 
ENABLE_IMPLICIT_SLI 

◆ _NV_COMPUTE_SHADER_DERIVATIVES

Enum for compute shader derivative modes

Enumerator
NV_COMPUTE_SHADER_DERIVATIVE_NONE 
NV_COMPUTE_SHADER_DERIVATIVE_GROUP_LINEAR 
NV_COMPUTE_SHADER_DERIVATIVE_GROUP_QUADS 

◆ _NV_PSO_EXTENSION

Enum for CreatePSO extensions.

constant 5 is assigned to two members of this enum becuase the first member name contains a typo: EXTNENSION. Please use the correctly-spelled enumerator.

Enumerator
NV_PSO_RASTER_EXTENSION 
NV_PSO_REQUEST_FASTGS_EXTENSION 
NV_PSO_GEOMETRY_SHADER_EXTENSION 
NV_PSO_ENABLE_DEPTH_BOUND_TEST_EXTENSION 
NV_PSO_EXPLICIT_FASTGS_EXTENSION 
NV_PSO_SET_SHADER_EXTNENSION_SLOT_AND_SPACE 
NV_PSO_SET_SHADER_EXTENSION_SLOT_AND_SPACE 
NV_PSO_VERTEX_SHADER_EXTENSION 
NV_PSO_DOMAIN_SHADER_EXTENSION 
NV_PSO_HULL_SHADER_EXTENSION 

◆ _NV_RESOLVE_MODE

SUPPORTED OS: Windows 10 and higher

Valid modes for NvAPI_D3D11_ResolveSubresourceRegion() and NvAPI_D3D12_ResolveSubresourceRegion

Enumerator
NV_RESOLVE_MODE_SAMPLE_0 

◆ _NVAPI_ANSEL_FEATURE

SUPPORTED OS: Windows 7 and higher

DESCRIPTION: This function configure the setting of AnselShim, including hotkey.
\param [in] pDevice current d3d device (should be ID3D11Device, ID3D10Device, or ID3D12Device)
\param [in] pAnselConfig configuration of Ansel to be set, including hotkey setting
\return ::NVAPI_OK if the call succeeds.
Enumerator
NVAPI_ANSEL_FEATURE_UNKNOWN 
NVAPI_ANSEL_FEATURE_BLACK_AND_WHITE 
NVAPI_ANSEL_FEATURE_HUDLESS 

◆ _NVAPI_D3D11_INSERTWFI_FLAG

DESCRIPTION: Causes the driver to skip synchronization that is normally needed when accessing UAVs. Applications must use this with caution otherwise this might cause data hazards when multiple draw calls/compute shader launches are accessing same memory locations

SUPPORTED OS: Windows 7 and higher

Parameters
[in]*pDeviceOrContextpointer to D3D11 device, or D3D11 device context
[in]insertWFIFlagsbit fields to indicate which WFI would be inserted (gfx / compute / both).

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Enumerator
NVAPI_D3D_BEGIN_UAV_OVERLAP_NO_WFI 

no WFI

NVAPI_D3D_BEGIN_UAV_OVERLAP_GFX_WFI 

(bit 0) force graphics WFI

NVAPI_D3D_BEGIN_UAV_OVERLAP_COMP_WFI 

(bit 1) force compute WFI

◆ _NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS

Pipeline creation state flags.

Enumerator
NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_NONE 

[in] No pipeline flags.

NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_ENABLE_OMM_SUPPORT 

[in] Change whether raytracing pipelines are created with support for Opacity Micromaps. If a triangle with an OMM is encountered during traversal and the pipeline was not created with support for them, behavior is undefined. Support should only be enabled if there are OMMs present, since it may incur a small penalty on traversal performance overall.

NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_ENABLE_DMM_SUPPORT 

[in] Change whether raytracing pipelines are created with support for Displacement Micromaps. If a triangle with a DMM is encountered during traversal and the pipeline was not created with support for them, behavior is undefined. Support should only be enabled if there are DMMs present, since it may incur a small penalty on traversal performance overall.

◆ _NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX

This enum extends D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS with modified and additional values. Only modified/new values are fully described; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

Enumerator
NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE_EX 

No options specified for the acceleration structure build.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE_EX 

Allow the acceleration structure to later be updated (via the flag NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE_EX), rather than always requiring a full rebuild.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION_EX 

Allow for the acceleration structure to later be compacted.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE_EX 

Favorize higher raytracing performance at the cost of longer build times.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD_EX 

Favorize faster build times at the cost of lower raytracing performance.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY_EX 

Minimize the memory footprint of the produced acceleration structure, potentially at the cost of longer build time or lower raytracing performance.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE_EX 

Instead of rebuilding the acceleration structure from scratch, the existing acceleration structure will be updated. Added behaviour: If NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE_EX is specified, OMM references may be changed along with positions when an update is performed.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE_EX 

The acceleration structure (AS) supports updating OMM contents (base OMM Array and/or indices). Specifying this flag may result in larger AS size and may reduce traversal performance.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS_EX 

Only applicable for BLAS builds. If enabled, any instances referencing this BLAS are allowed to disable the OMM test through the NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX flag. Specifying this build flag may result in some reductions in traversal performance.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_OPACITY_STATES_UPDATE_EX 

The acceleration structure (AS) supports updating OMM data (encoded opacity values). Specifying this flag may reduce traversal performance.

NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DATA_ACCESS_EX 

Allows triangle and micro-triangle data to be accessed through the BLAS via shader intrinsics.

◆ _NVAPI_D3D12_RAYTRACING_CAPS_TYPE

List of Raytracing CAPS types that can be queried.

Enumerator
NVAPI_D3D12_RAYTRACING_CAPS_TYPE_THREAD_REORDERING 
NVAPI_D3D12_RAYTRACING_CAPS_TYPE_OPACITY_MICROMAP 
NVAPI_D3D12_RAYTRACING_CAPS_TYPE_DISPLACEMENT_MICROMAP 
NVAPI_D3D12_RAYTRACING_CAPS_TYPE_INVALID 

◆ _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAGS

SUPPORTED OS: Windows 10 and higher Flags specifying building instructions and hints when constructing a DMM Array.

Enumerator
NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_NONE 

No options specified for the DMM Array build.

NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE 

Allow the DMM Array build to take a little longer in order to optimize for traversal performance. This flag is incompatible with NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD.

NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD 

Spend as little time as possible on the DMM Array build with some potential loss to traversal performance. This flag is incompatible with NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE.

◆ _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE

Type of postbuild info to emit after a DMM Array build.

Enumerator
NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE 

Size of the current DMM Array. May be smaller than reported by the NvAPI_D3D12_GetRaytracingDisplacementMicromapArrayPrebuildInfo() call. Unused memory can be reclaimed by copying the DMM Array into a new resource; see NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC.

◆ _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAPS

Flags specifying raytracing Displacement Micromap support. Additional flags will be added as support becomes available.

Enumerator
NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAP_NONE 

Displacement Micromap support is not available. The application must not attempt to use any DMM entrypoints or flags.

NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_CAP_STANDARD 

Standard Displacement Micromap support is available.

◆ _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT

Specifies the input Displacement Micromap formats. The DC1 (Displacement Compression 1) format follows the space-filling curve in barycentric space over the uniformly tessellated micro-triangles.

Note
This is a 16-bit value when used in NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_DESC
Enumerator
NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT_DC1_64_TRIS_64_BYTES 

64 micro-triangles packed into 64 bytes

NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT_DC1_256_TRIS_128_BYTES 

256 micro-triangles packed into 128 bytes

NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_FORMAT_DC1_1024_TRIS_128_BYTES 

1024 micro-triangles packed into 128 bytes

◆ _NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAGS

The edge vA..vB is decimated: after subdivision the number of micro-triangles on that edge is halved. (i.e. the neighboring primitive can have a lower subdivision level without introducing cracks)

Enumerator
NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAG_DECIMATE_01 
NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAG_DECIMATE_12 
NVAPI_D3D12_RAYTRACING_DISPLACEMENT_MICROMAP_PRIMITIVE_FLAG_DECIMATE_20 

◆ _NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX

This enum extends D3D12_RAYTRACING_GEOMETRY_TYPE with additional values. Only new values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

Enumerator
NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES_EX 

This geometry is made of basic triangles.

NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS_EX 

This geometry is made of axis-aligned bounding boxes (AABBs).

NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES_EX 

Shares most fields with the basic triangle geometry type, but allows an OMM Array to be attached to the geometry. The basic triangle type and this OMM-enabled type geometries may be mixed in the same BLAS build.

NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_DMM_TRIANGLES_EX 

Triangle geometry with attached DMM data. This geometry cannot be mixed with other geometry types in the same BLAS.

◆ _NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX

This enum extends D3D12_RAYTRACING_INSTANCE_FLAGS with additional values. Only new values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

Enumerator
NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_NONE_EX 

No options specified for this instance.

NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE_EX 

Disable triangle culling for this instance.

NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE_EX 

Use counter-clockwise winding for defining front faces, instead of the default of clockwise winding.

NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE_EX 

Force all geometries in this instance to be opaque.

NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE_EX 

All geometries in this instance will be processed as if they never had the D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE flag applied to them.

NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE_EX 

Ignore the Unknown state and only consider the Transparent/Opaque bit for all 4-state OMMs encountered during traversal. This flag has no effect if NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX is set.

NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX 

Disable OMMs for all triangles, and revert to using geometry opaque/non-opaque state instead (legacy behavior). This flag is only valid if the referenced BLAS was built with the NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS_EX flag; omitting that flag during BLAS build will result in undefined behavior.

◆ _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS

SUPPORTED OS: Windows 10 and higher Flags specifying building instructions and hints when constructing an OMM Array.

Enumerator
NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_NONE 

No options specified for the OMM Array build.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE 

Allow the OMM Array build to take a little longer in order to optimize for traversal performance. This flag is incompatible with NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD 

Spend as little time as possible on the OMM Array build with some potential loss to traversal performance. This flag is incompatible with NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE.

◆ _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE

Type of postbuild info to emit after an OMM Array build.

Enumerator
NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE 

Size of the current OMM Array. May be smaller than reported by the NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo() call. Unused memory can be reclaimed by copying the OMM Array into a new resource; see NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC.

◆ _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS

Flags specifying raytracing Opacity Micromap support. Additional flags will be added as support becomes available.

Enumerator
NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_NONE 

Opacity Micromap support is not available. The application must not attempt to use any OMM entrypoints or flags.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_STANDARD 

Standard Opacity Micromap support is available.

◆ _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT

Specifies the input Opacity Micromap formats. The OC1 (Opacity Compression 1) format follows the space-filling curve in barycentric space over the uniformly tessellated micro-triangles.

Note
This is a 16-bit value when used in NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC.
Enumerator
NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE 

2-state (Transparent/Opaque) format.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE 

4-state (Transparent/Opaque, Known/Unknown) format.

◆ _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX

If a triangle has a uniform OMM state in a BLAS build, it is preferable to signal this explicitly rather than attaching a single state OMM. This can be accomplished by supplying these special indices as entries in opacityMicromapIndexBuffer, in NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC.

Enumerator
NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT 

Uniform transparent OMM state.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE 

Uniform opaque OMM state.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT 

Uniform unknown-transparent OMM state.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE 

Uniform unknown-opaque OMM state.

◆ _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE

Opacity Micromap micro-triangle states. Not part of any input, but listed here for convenience.

Enumerator
NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT 

Transparent OMM state: hit is ignored.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE 

Opaque OMM state: hit is committed.

NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT 

Unknown-transparent OMM state.

  • If operating in 2-state mode, ignore hit.
  • If operating in 4-state mode, invoke any-hit shader.
NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE 

Unknown-opaque OMM state.

  • If operating in 2-state mode, commit hit.
  • If operating in 4-state mode, invoke any-hit shader.

◆ _NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS

Flags specifying raytracing thread reordering hardware support. Additional flags will be added as support becomes available.

Enumerator
NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_NONE 

Thread reordering acts as a no-op.

NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_STANDARD 

Standard thread reordering is supported.

◆ _NVAPI_D3D12_RAYTRACING_VALIDATION_FLAGS

Flags specifying validation behaviour for raytracing operations.

See NvAPI_D3D12_EnableRaytracingValidation

Enumerator
NVAPI_D3D12_RAYTRACING_VALIDATION_FLAG_NONE 

No validation flags.

◆ _NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY

Severity classification of validation messages.

See NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_CALLBACK

Enumerator
NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY_ERROR 

Error message (indicates likely bug)

NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_SEVERITY_WARNING 

Warning message (indicates inadvisable usage or possible bug)

◆ _NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX

Type of serialized data.

Enumerator
NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE_EX 

Serialized data contains a raytracing acceleration structure. Starting from offset 0, the first bytes of the serialized acceleration structure can be reinterpreted as D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER. That structure contains the identifier to be passed along to NvAPI_D3D12_CheckDriverMatchingIdentifierEx().

NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_OPACITY_MICROMAP_ARRAY_EX 

Data blob contains an OMM Array. Starting from offset 0, the first bytes of the OMM Array can be reinterpreted as D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER.

NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_EX 

Data blob contains a DMM Array. Starting from offset 0, the first bytes of the DMM Array can be reinterpreted as D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER.

◆ _NVAPI_D3D_RESOURCERENDERING_FLAG

Used in NvAPI_D3D_BeginResourceRendering().

Enumerator
NVAPI_D3D_RR_FLAG_DEFAULTS 

All bits set to 0 are defaults.

NVAPI_D3D_RR_FLAG_FORCE_DISCARD_CONTENT 

(bit 0) The flag forces to discard previous content of the resource regardless of the NvApiHints_Sli_Disable_InterframeSync hint

NVAPI_D3D_RR_FLAG_FORCE_KEEP_CONTENT 

(bit 1) The flag forces to respect previous content of the resource regardless of the NvApiHints_Sli_Disable_InterframeSync hint

NVAPI_D3D_RR_FLAG_MULTI_FRAME 

(bit 2) The flag hints the driver that content will be used for many frames. If not specified then the driver assumes that content is used only on the next frame

◆ _NVAPI_D3D_SETRESOURCEHINT_CATEGORY

Valid categories for NvAPI_D3D_SetResourceHint()

Enumerator
NVAPI_D3D_SRH_CATEGORY_SLI 

◆ _NVAPI_D3D_SETRESOURCEHINT_SLI

Types of SLI hints;
NVAPI_D3D_SRH_SLI_APP_CONTROLLED_INTERFRAME_CONTENT_SYNC: Valid values : 0 or 1
Default value: 0
Explanation: If the value is 1, the driver will not track any rendering operations that would mark this resource as dirty, avoiding any form of synchronization across frames rendered in parallel in multiple GPUs in AFR mode.

NVAPI_D3D_SRH_SLI_ASK_FOR_BROADCAST_USAGE: Valid values : 0 or 1
Default value: 0
Explanation: If the value is 1, the driver will try to perform operations which involved target resource in broadcast, where it's possible. Hint is static and must be set before resource starts using.

NVAPI_D3D_SRH_SLI_RESPECT_DRIVER_INTERFRAME_CONTENT_SYNC: Valid values : 0 or 1
Default value: 0
Explanation: If the value is 1, the driver will do dirty resource resolve regardless of discard flags in the application profile or AFR-FriendlyD3DHints.exe name using.

Enumerator
NVAPI_D3D_SRH_SLI_APP_CONTROLLED_INTERFRAME_CONTENT_SYNC 
NVAPI_D3D_SRH_SLI_ASK_FOR_BROADCAST_USAGE 
NVAPI_D3D_SRH_SLI_RESPECT_DRIVER_INTERFRAME_CONTENT_SYNC 

◆ _NVAPI_RAY_FLAGS_EX

A list of flags that can be given to the TraceRay() function in HLSL. Only new or modified values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification.

Enumerator
NVAPI_RAY_FLAG_NONE_EX 

No flag specified.

NVAPI_RAY_FLAG_FORCE_OPAQUE_EX 

Consider all intersected geometries to be opaque, regardless of the flags specified at the geometry and instance level.

NVAPI_RAY_FLAG_FORCE_NON_OPAQUE_EX 

Consider all intersected geometries to be non-opaque, regardless of the flags specified at the geometry and instance level.

NVAPI_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH_EX 

End the traversal as soon as a geometry is hit, and that hit is not ignored by the any hit shader.

NVAPI_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER_EX 

Do not invoke the closest hit shader once the traversal ends.

NVAPI_RAY_FLAG_CULL_BACK_FACING_TRIANGLES_EX 

Never intersect triangle geometries that are back facing with regard to the ray.

NVAPI_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES_EX 

Never intersect triangle geometries that are front facing with regard to the ray.

NVAPI_RAY_FLAG_CULL_OPAQUE_EX 

Never intersect geometries that were flagged as opaque.

NVAPI_RAY_FLAG_CULL_NON_OPAQUE_EX 

Never intersect geometries that were not flagged as opaque.

NVAPI_RAY_FLAG_SKIP_TRIANGLES_EX 

Never intersect triangle geometries.

NVAPI_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES_EX 

Never intersect AABB geometries.

NVAPI_RAY_FLAG_FORCE_OMM_2_STATE_EX 

Treat unknown-opaque and unknown-transparent as opaque and transparent, respectively, during traversal. If an instance is flagged with NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX, that takes precedence over this flag.

◆ NV_D3D12_HEAP_FLAGS

Since
Release: 465
DESCRIPTION: NvAPI_D3D12_CreateHeap2 is a wrapper of ID3D12Device::CreateHeap
NV_D3D12_HEAP_FLAG_CPUVISIBLE_VIDMEM gives driver hint to create the heap on vidmem
only upload heaps use this flag currently, others behave exactly as ID3D12Device::CreateHeap
Best practice: Query available space in cpu visible vidmem using NvAPI_D3D12_QueryCpuVisibleVidmem
before using this flag
\param [in] pDevice A pointer to D3D12 device.
\param [in] pDesc A pointer to a D3D12_HEAP_DESC structure that describes the heap
\param [in] pNVHeapParams A pointer to a NV_HEAP_PARAMS structure that gives additional NV specific resource creation information(NV_D3D12_HEAP_FLAGS below for more info)
\param [in] riid The globally unique identifier (GUID) for the resource interface.
\param [out] ppvHeap A pointer to a memory block that receives a pointer to the heap. Cannot be NULL.
SUPPORTED OS: Windows 10 and higher
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
NV_D3D12_HEAP_FLAGS
Definition nvapi.h:13890
NVAPI_INTERFACE NvAPI_D3D12_QueryCpuVisibleVidmem(__in ID3D12Device *pDevice, __out NvU64 *pTotalBytes, __out NvU64 *pFreeBytes)
@ NV_D3D12_HEAP_FLAG_CPUVISIBLE_VIDMEM
Hint to create heap in cpuvisible vidmem.
Definition nvapi.h:13892
NVAPI_INTERFACE NvAPI_D3D12_CreateHeap2(__in ID3D12Device *pDevice, __in const D3D12_HEAP_DESC *pDesc, __in const NV_HEAP_PARAMS *pNVHeapParams, __in REFIID riid, __out void **ppvHeap)
Definition nvapi.h:13896
Enumerator
NV_D3D12_HEAP_FLAG_NONE 
NV_D3D12_HEAP_FLAG_CPUVISIBLE_VIDMEM 

Hint to create heap in cpuvisible vidmem.

◆ NV_D3D12_RESOURCE_FLAGS

Since
Release: 384
DESCRIPTION: Wrapper around ID3D12Device::CreateCommittedResource to allow creation of resources according to params provided.
HTEX resource is created when NV_D3D12_RESOURCE_FLAG_HTEX is set in the nvResourceFlags parameter.
NV_D3D12_RESOURCE_FLAG_CPUVISIBLE_VIDMEM gives driver hint to create the resource on cpu visible vidmem
only upload resources use this flag currently, others behave exactly as ID3D12Device::CreateCommittedResource
Otherwise the function behaves exactly same as regular ID3D12Device::CreateCommittedResource.
When NV_D3D12_RESOURCE_FLAG_HTEX is set, the texels are centered on integer coordinates and filtering
and LOD are calculated based on the size minus one, which then allows the edges to filter to the exact texels on the edge,
eliminating the border/edge filtering issue. Dimension of next mip level is CEIL(currentMipDimension/2), and size of smallest mip is 2x2.
Note that NV_D3D12_RESOURCE_FLAG_HTEX can't be used for shared resources.
Best practice: Query available space in cpu visible vidmem using NvAPI_D3D12_QueryCpuVisibleVidmem
before using NV_D3D12_RESOURCE_FLAG_CPUVISIBLE_VIDMEM
\param [in] pDevice A pointer to D3D12 device.
\param [in] pHeapProperties A pointer to a D3D12_HEAP_PROPERTIES structure that provides properties for the resource's heap.
\param [in] HeapFlags Heap options, as a bitwise-OR'd combination of D3D12_HEAP_FLAGS enumeration constants.
\param [in] pDesc A pointer to a D3D12_RESOURCE_DESC structure that describes the resource.
\param [in] InitialState The initial state of the resource, as a bitwise-OR'd combination of D3D12_RESOURCE_STATES enumeration constants.
\param [in] pOptimizedClearValue Specifies a D3D12_CLEAR_VALUE that describes the default value for a clear color.
\param [in] pNVResourceParams A pointer to a structure containing additional NV specific resource creation information (see NV_D3D12_RESOURCE_FLAGS below for more info on flags)
\param [in] riid The globally unique identifier (GUID) for the resource interface.
\param [out] ppvResource A pointer to memory that receives the requested interface pointer to the created resource object.
ppvResource can be NULL, to enable capability testing. When ppvResource is NULL, no object will be created and pSupported
will be set to true when pResourceDesc is valid.
\param [out] pSupported optional, needed only for capability testing when ppvResource is NULL
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
NV_D3D12_RESOURCE_FLAGS
Definition nvapi.h:15201
@ NV_D3D12_RESOURCE_FLAG_CPUVISIBLE_VIDMEM
Hint to create resource in cpuvisible vidmem.
Definition nvapi.h:15204
@ NV_D3D12_RESOURCE_FLAG_HTEX
Create HTEX texture.
Definition nvapi.h:15203
Enumerator
NV_D3D12_RESOURCE_FLAG_NONE 
NV_D3D12_RESOURCE_FLAG_HTEX 

Create HTEX texture.

NV_D3D12_RESOURCE_FLAG_CPUVISIBLE_VIDMEM 

Hint to create resource in cpuvisible vidmem.

◆ NV_LATENCY_MARKER_TYPE

SUPPORTED OS: Windows 7 and higher

Used define latency marker type

Enumerator
SIMULATION_START 
SIMULATION_END 
RENDERSUBMIT_START 
RENDERSUBMIT_END 
PRESENT_START 
PRESENT_END 
INPUT_SAMPLE 
TRIGGER_FLASH 
PC_LATENCY_PING 
OUT_OF_BAND_RENDERSUBMIT_START 
OUT_OF_BAND_RENDERSUBMIT_END 
OUT_OF_BAND_PRESENT_START 
OUT_OF_BAND_PRESENT_END 

◆ NV_OUT_OF_BAND_CQ_TYPE

SUPPORTED OS: Windows 10 and higher

Used in NvAPI_D3D12_NotifyOutOfBandCommandQueue

Enumerator
OUT_OF_BAND_RENDER 
OUT_OF_BAND_PRESENT 
OUT_OF_BAND_IGNORE 

◆ NV_SMP_ASSIST_TYPE

SUPPORTED OS: Windows 7 and higher

Enumerator
NV_SMP_ASSIST_NONE 
NV_SMP_ASSIST_MRS 
NV_SMP_ASSIST_LMS 
NV_SMP_ASSIST_NUM_TYPES 

◆ NVAPI_ALIAS_SURFACE_FLAG

See NvAPI_D3D9_AliasSurfaceAsTexture().

Enumerator
NVAPI_ALIAS_SURFACE_FLAG_NONE 
NVAPI_ALIAS_SURFACE_FLAG_USE_SUPER 

Use the surface's msaa buffer directly as a texture, rather than resolving. (This is much slower, but potentially has higher quality.)

NVAPI_ALIAS_SURFACE_FLAG_MASK 

◆ NVAPI_DEVICE_FEATURE_LEVEL

D3D_FEATURE_LEVEL supported - used in NvAPI_D3D11_CreateDevice() and NvAPI_D3D11_CreateDeviceAndSwapChain()

Enumerator
NVAPI_DEVICE_FEATURE_LEVEL_NULL 
NVAPI_DEVICE_FEATURE_LEVEL_10_0 
NVAPI_DEVICE_FEATURE_LEVEL_10_0_PLUS 
NVAPI_DEVICE_FEATURE_LEVEL_10_1 
NVAPI_DEVICE_FEATURE_LEVEL_11_0 

◆ NVAPI_VSYNC_MODE

Enumerator
NVAPI_VSYNC_DEFAULT 

Fall back to the default settings.

NVAPI_VSYNC_OFF 

Force vertical sync off when performance is more important than image quality and for benchmarking".

NVAPI_VSYNC_ON 

Force vertical sync on when image quality is more important than performance.

NVAPI_VSYNC_ADAPTIVE 

Select adaptive to turn vertical sync on or off based on the frame rate. Vertical sync will only be on for frame rates above the monitor refresh rate.

NVAPI_VSYNC_ADAPTIVE_HALF_REFRESH_RATE 

Function Documentation

◆ DECLARE_INTERFACE()

DECLARE_INTERFACE ( ID3DLateLatchObject_V1  )

See NvAPI_D3D_CreateLateLatchObject

Release the created LateLatch object and associated buffers.

Request to queue the latch operation to the GPU.

Get ID3D11Buffer* available at the given 'index'

Returns the number of late latch buffers created for this LateLatchObject.

Fully update all LateLatch buffers with new data.

Partially update one of the LateLatch buffers with new data.

References __in.

◆ NvAPI_D3D10_SetDepthBoundsTest()

NVAPI_INTERFACE NvAPI_D3D10_SetDepthBoundsTest ( ID3D10Device *  pDev,
NvU32  bEnable,
float  fMinDepth,
float  fMaxDepth 
)

DESCRIPTION: This function enables/disables the depth bounds test.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevThe device to set the depth bounds test
[in]bEnableEnable(non-zero)/disable(zero) the depth bounds test
[in]fMinDepthThe minimum depth for the depth bounds test
[in]fMaxDepthThe maximum depth for the depth bounds test
The valid values for fMinDepth and fMaxDepth are such that 0 <= fMinDepth <= fMaxDepth <= 1
Returns
NVAPI_OK if the depth bounds test was correctly enabled or disabled

◆ NvAPI_D3D11_AliasMSAATexture2DAsNonMSAA()

NVAPI_INTERFACE NvAPI_D3D11_AliasMSAATexture2DAsNonMSAA ( __in ID3D11Device *  pDevice,
__in ID3D11Texture2D *  pInputTex,
__out ID3D11Texture2D **  ppOutTex 
)

SUPPORTED OS: Windows 8 and higher SUPPORTED OS: Windows 8 and higher SUPPORTED OS: Windows 8 and higher SUPPORTED OS: Windows 8 and higher SUPPORTED OS: Windows 7 and higher

DESCRIPTION: This function allows creating (aliasing) a non-MSAA Texture2D object using the same memory as the given multi-sampled
texture (pInputTex). The surface created would be bloated in width and height but it will have SampleCount = 1
For 2X MSAA: OutTex.Width = InputTex.Width * 2, outTex.Height = InputTex.Height
For 4X MSAA: OutTex.Width = InputTex.Width * 2, outTex.Height = InputTex.Height * 2
For 8X MSAA: OutTex.Width = InputTex.Width * 4, outTex.Height = InputTex.Height * 2
Only textures SampleQuality = 0 can be aliased as Non MSAA
The app should ensure that original texture is released only after the aliased copy is released.
This function is free-threaded create compatible i.e. it can be called from a different thread
than the one calling immediate device setstate functions.
\param [in] pDevice current d3d device
\param [in] pInputTex The MultiSampled Texture2D resource that is being aliased
\param [out] ppOutTex The aliased non AA copy MultiSampled Texture2D resource
\return :: NVAPI_OK if the call succeeds.

◆ NvAPI_D3D11_BeginUAVOverlap()

NVAPI_INTERFACE NvAPI_D3D11_BeginUAVOverlap ( __in IUnknown *  pDeviceOrContext)

DESCRIPTION: Causes the driver to skip synchronization that is normally needed when accessing UAVs. Applications must use this with caution otherwise this might cause data hazards when multiple draw calls/compute shader launches are accessing same memory locations

SUPPORTED OS: Windows 7 and higher

Parameters
[in]*pDeviceOrContextpointer to D3D11 device, or D3D11 device context

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D11_CheckFeatureSupport()

NVAPI_INTERFACE NvAPI_D3D11_CheckFeatureSupport ( __in ID3D11Device *  pDevice,
__in NV_D3D11_FEATURE  Feature,
__out void *  pFeatureSupportData,
__in UINT  FeatureSupportDataSize 
)

DESCRIPTION: This function gets information about the features that are supported by the current graphics driver.

Parameters
[in]pDeviceThe device on which to query for support.
[in]FeatureA member of the NvAPI_D3D11_FEATURE enumerated type that describes which feature to query for suppor.
[in]pFeatureSupportDataUpon completion of the method, the passed structure is filled with data that describes the feature support.
[out]FeatureSupportDataSizeThe size of the structure passed to the pFeatureSupportData parameter.
Since
Release: 410

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status.

Return values
:Returns NVAPI_OK if successful; returns NVAPI_INVALID_ARGUMENT if an unsupported data type is passed to the pFeatureSupportData parameter or a size mismatch is detected for the FeatureSupportDataSize parameter;

◆ NvAPI_D3D11_CreateDevice()

NVAPI_INTERFACE NvAPI_D3D11_CreateDevice ( IDXGIAdapter *  pAdapter,
D3D_DRIVER_TYPE  DriverType,
HMODULE  Software,
UINT  Flags,
CONST D3D_FEATURE_LEVEL *  pFeatureLevels,
UINT  FeatureLevels,
UINT  SDKVersion,
ID3D11Device **  ppDevice,
D3D_FEATURE_LEVEL *  pFeatureLevel,
ID3D11DeviceContext **  ppImmediateContext,
NVAPI_DEVICE_FEATURE_LEVEL pSupportedLevel 
)

DESCRIPTION: This function tries to create a DirectX 11 device. If the call fails (if we are running on pre-DirectX 11 hardware), depending on the type of hardware it will try to create a DirectX 10.1 OR DirectX 10.0+ OR DirectX 10.0 device. The function call is the same as D3D11CreateDevice(), but with an extra argument (D3D_FEATURE_LEVEL supported by the device) that the function fills in. This argument can contain -1 (NVAPI_DEVICE_FEATURE_LEVEL_NULL), if the requested featureLevel is less than DirecX 10.0.

NOTE: When NvAPI_D3D11_CreateDevice is called with 10+ feature level we have an issue on few set of tesla hardware (G80/G84/G86/G92/G94/G96) which does not support all feature level 10+ functionality e.g. calling driver with mismatch between RenderTarget and Depth Buffer. App developers should take into consideration such limitation when using NVAPI on such tesla hardwares. SUPPORTED OS: Windows 7 and higher

Since
Release: 185
Parameters
[in]pAdapter
[in]DriverType
[in]Software
[in]Flags
[in]*pFeatureLevels
[in]FeatureLevels
[in]SDKVersion
[in]**ppDevice
[in]*pFeatureLevel
[in]**ppImmediateContext
[in]*pSupportedLevelD3D_FEATURE_LEVEL supported
Returns
NVAPI_OK if the createDevice call succeeded.

◆ NvAPI_D3D11_CreateDeviceAndSwapChain()

NVAPI_INTERFACE NvAPI_D3D11_CreateDeviceAndSwapChain ( IDXGIAdapter *  pAdapter,
D3D_DRIVER_TYPE  DriverType,
HMODULE  Software,
UINT  Flags,
CONST D3D_FEATURE_LEVEL *  pFeatureLevels,
UINT  FeatureLevels,
UINT  SDKVersion,
CONST DXGI_SWAP_CHAIN_DESC *  pSwapChainDesc,
IDXGISwapChain **  ppSwapChain,
ID3D11Device **  ppDevice,
D3D_FEATURE_LEVEL *  pFeatureLevel,
ID3D11DeviceContext **  ppImmediateContext,
NVAPI_DEVICE_FEATURE_LEVEL pSupportedLevel 
)

DESCRIPTION: This function tries to create a DirectX 11 device and swap chain. If the call fails (if we are running on pre=DirectX 11 hardware), depending on the type of hardware it will try to create a DirectX 10.1 OR DirectX 10.0+ OR DirectX 10.0 device. The function call is the same as D3D11CreateDeviceAndSwapChain,
but with an extra argument (D3D_FEATURE_LEVEL supported by the device) that the function fills in. This argument can contain -1 (NVAPI_DEVICE_FEATURE_LEVEL_NULL), if the requested featureLevel is less than DirectX 10.0.

SUPPORTED OS: Windows 7 and higher

Since
Release: 185
Parameters
[in]pAdapter
[in]DriverType
[in]Software
[in]Flags
[in]*pFeatureLevels
[in]FeatureLevels
[in]SDKVersion
[in]*pSwapChainDesc
[in]**ppSwapChain
[in]**ppDevice
[in]*pFeatureLevel
[in]**ppImmediateContext
[in]*pSupportedLevelD3D_FEATURE_LEVEL supported

return NVAPI_OK if the createDevice with swap chain call succeeded.

◆ NvAPI_D3D11_CreateImplicitMSAATexture2D()

NVAPI_INTERFACE NvAPI_D3D11_CreateImplicitMSAATexture2D ( __in ID3D11Device *  pDevice,
__in const D3D11_TEXTURE2D_DESC *  pDesc,
__out ID3D11Texture2D **  ppTexture2D 
)

SUPPORTED OS: Windows 10 and higher

Since
Release: 410
DESCRIPTION: NvAPI_D3D11_CreateImplicitMSAATexture2D is a simple wrapper of ID3D11Device::CreateTexture2D
which allows to create multisampled 2D texture that is exposed to DX runtime as non-multisampled texture.
\param [in] pDevice Current d3d device
\param [in] pDesc A pointer to a D3D11_TEXTURE2D_DESC structure that describes a 2D texture resource.
To create a typeless resource that can be interpreted at runtime into different,
compatible formats, specify a typeless format in the texture description.
To generatemipmap levels automatically, set the number of mipmap levels to 0.
SampleDesc.SampleCount specifies actual resource sample count, while D3D runtime object
sees resource as non-multisampled.
\param [out] ppTexture2D A pointer to a buffer that receives a pointer to a ID3D11Texture2D interface for the
created texture.
\return This API can return any of the error codes enumerated in
#NvAPI_Status. See MSDN for the API specific error codes.
NVAPI_INTERFACE NvAPI_D3D11_CreateImplicitMSAATexture2D(__in ID3D11Device *pDevice, __in const D3D11_TEXTURE2D_DESC *pDesc, __out ID3D11Texture2D **ppTexture2D)
enum _NvAPI_Status NvAPI_Status

◆ NvAPI_D3D11_CreateMultiGPUDevice()

NVAPI_INTERFACE NvAPI_D3D11_CreateMultiGPUDevice ( __in ID3D11Device *  pDevice,
__in ULONG  version,
__out ULONG *  currentVersion,
__out ID3D11MultiGPUDevice **  ppD3D11MultiGPUDevice,
__in UINT  maxGpus = ALL_GPUS 
)

◆ NvAPI_D3D11_CreateRasterizerState()

NVAPI_INTERFACE NvAPI_D3D11_CreateRasterizerState ( __in ID3D11Device *  pDevice,
__in const NvAPI_D3D11_RASTERIZER_DESC_EX pRasterizerDesc,
__out ID3D11RasterizerState **  ppRasterizerState 
)
DESCRIPTION: This function is an extension of ID3D11Device::CreateRasterizerState with additional raster states
If programmable sample positions is used, to decompress the surface using the currently bound
programmable sample positions, use function NvAPI_D3D11_DecompressView.
This function is free-threaded create compatible i.e. it can be called from a different thread
than the one calling immediate device setstate functions.
\param [in] pDevice current d3d device
\param [in] pRasterizerDesc Rasterizer state description of type NVAPI_D3D11_RASTERIZER_DESC_EX
\param [out] ppRasterizerState ID3D11RasterizerState
\return ::NVAPI_OK if the call succeeds.
NVAPI_INTERFACE NvAPI_D3D11_DecompressView(__in ID3D11Device *pDevice, __in ID3D11DeviceContext *pDeviceContext, __in ID3D11View *pView)

◆ NvAPI_D3D11_CreateShadingRateResourceView()

NVAPI_INTERFACE NvAPI_D3D11_CreateShadingRateResourceView ( __in ID3D11Device *  pDevice,
__in ID3D11Resource *  pShadingRateResource,
__in NV_D3D11_SHADING_RATE_RESOURCE_VIEW_DESC pShadingRateResourceViewDesc,
__out ID3D11NvShadingRateResourceView **  ppShadingRateResourceView 
)

DESCRIPTION: Creates Shading Rate Resource View by taking ID3D11Resource as an input Shading Rate Surface.

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pDeviceThe device to be used for creating the Shading Rate Resource View
[in]pShadingRateResourceShading Rate Resource on which the view is to be created.
Note
This should be of format DXGI_FORMAT_R8_UINT or DXGI_FORMAT_R8_TYPELESS
This should be confined to size calculated using render target dimensions, NV_VARIABLE_PIXEL_SHADING_TILE_WIDTH and NV_VARIABLE_PIXEL_SHADING_TILE_HEIGHT
Parameters
[in]pShadingRateDescShading Rate Resource View descriptor
[out]ppShadingRateResourceViewAddress of a pointer to ID3D11NvShadingRateResourceView for returning the newly created Shading Rate Resource View
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D11_DecompressView()

NVAPI_INTERFACE NvAPI_D3D11_DecompressView ( __in ID3D11Device *  pDevice,
__in ID3D11DeviceContext *  pDeviceContext,
__in ID3D11View *  pView 
)

SUPPORTED OS: Windows 7 and higher

DESCRIPTION: This function is used to decompress a surface using the currently bound programmable sample positions.
This is needed:
- When writing to a surface in a region previously rendered by different sample positions and no clear was done.
- When reading a surface in a shader that was rendered using non-standard sample positions.
- When copying from a surface that was rendered using non-standard sample positions.
\param [in] pDevice Current d3d11 device
\param [in] pDeviceContext Current d3d11 device context
\param [in] pView Current view to decompress
\return ::NVAPI_OK if the call succeeds.

◆ NvAPI_D3D11_EndUAVOverlap()

NVAPI_INTERFACE NvAPI_D3D11_EndUAVOverlap ( __in IUnknown *  pDeviceOrContext)

DESCRIPTION: Re-enables driver synchronization between calls that access same UAVs See NvAPI_D3D_BeginUAVOverlap for more details.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]*pDeviceOrContextpointer to D3D11 device, or D3D11 device context

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D11_EnumerateMetaCommands()

NVAPI_INTERFACE NvAPI_D3D11_EnumerateMetaCommands ( __in ID3D11Device *  pDevice,
__inout NvU32 pNumMetaCommands,
__out_ecount_opt *pNumMetaCommands NVAPI_META_COMMAND_DESC pDescs 
)
Since
Release: 400
DESCRIPTION: Enumerates MetaCommands supported on the system
\param [in] pDevice A pointer to D3D11 device.
\param [in/out] pNumMetaCommands Should be non-null. When the value pointed by pNumMetaCommands is 0 (or when pDescs is NULL), the function returns number of metacommands supported.
When the value pointed is non-zero, the value indicates number of Metacommand descriptions to be populated in pDescs array.
\param [out] pDescs Pointer to array where Metacommand descriptions will be returned. Can be null to indicate that the app is querying the number of supported metacommands.
Otherwise should have enough space to hold *pNumMetaCommands descriptors
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D11_ExecuteMetaCommand()

NVAPI_INTERFACE NvAPI_D3D11_ExecuteMetaCommand ( __in ID3D11DeviceContext *  pDeviceContext,
__in ID3D11NvMetaCommand pMetaCommand,
__in_bcount(ExecutionParametersDataSize) const void *  pExecutionParametersData,
__in NvU32  ExecutionParametersDataSize 
)
Since
Release: 400
DESCRIPTION: Executes the given MetaCommand with the parameters passed in
\param [in] pDeviceContext A pointer to the d3d11 device context
\param [in] pMetaCommand the MetaCommand to execute
\param [in] pExecutionParametersData Structure containing parameters
\param [in] ExecutionParametersDataSize Size of the parameter structure in bytes
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D11_InitializeMetaCommand()

NVAPI_INTERFACE NvAPI_D3D11_InitializeMetaCommand ( __in ID3D11DeviceContext *  pDeviceContext,
__in ID3D11NvMetaCommand pMetaCommand,
__in_bcount(InitializationParametersDataSize) const void *  pInitializationParametersData,
__in NvU32  InitializationParametersDataSize 
)
Since
Release: 400
DESCRIPTION: Initializes the given MetaCommand with the parameters passed in
\param [in] pDeviceContext A pointer to the d3d11 device context
\param [in] pMetaCommand the MetaCommand to initialize
\param [in] pInitializationParametersData Structure containing parameters
\param [in] InitializationParametersDataSize Size of the parameter structure in bytes
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D11_IsNvShaderExtnOpCodeSupported()

NVAPI_INTERFACE NvAPI_D3D11_IsNvShaderExtnOpCodeSupported ( __in IUnknown *  pDev,
__in NvU32  opCode,
__out bool *  pSupported 
)

DESCRIPTION: This function checks if a nv HLSL shader extension opcode is supported on current hardware. List of opcodes is in nvShaderExtnEnums.h To use Nvidia HLSL extensions the application must include nvHLSLExtns.h in the hlsl shader code. See nvHLSLExtns.h for more details on supported opcodes.

This function can be called from a different thread than the one calling immediate device setstate functions.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevThe device on which to query for support, should be a ID3D11Device+ device
[in]opCodethe opcode to check
[out]pSupportedtrue if supported, false otherwise

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Return values
:NVAPI_OK if the call succeeded

◆ NvAPI_D3D11_MultiDrawIndexedInstancedIndirect()

NVAPI_INTERFACE NvAPI_D3D11_MultiDrawIndexedInstancedIndirect ( __in ID3D11DeviceContext *  pDevContext11,
__in NvU32  drawCount,
__in ID3D11Buffer *  pBuffer,
__in NvU32  alignedByteOffsetForArgs,
__in NvU32  alignedByteStrideForArgs 
)

DESCRIPTION: Extension of DrawIndexedInstancedIndirect that takes a draw count in. The effect of this function is to loop over that draw count and perform the DrawIndexedInstancedIndirect operation each time, incrementing the buffer offset by the supplied stride each time.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]*pDevContext11Pointer to D3D11 device context (IC or DC)
[in]drawCountDo DrawIndexedInstancedIndirect operation this many times
[in]*pBufferID3D11Buffer that contains the command parameters
[in]alignedByteOffsetForArgsStart in pBuffer of the command parameters
[in]alignedByteStrideForArgsStride of the command parameters - must be >= 5 * sizeof(NvU32)

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Return values
NVAPI_D3D_DEVICE_NOT_REGISTEREDWhen MultiDraw is called on a deferred context, and the device has not yet been registered (NvAPI_D3D_RegisterDevice), this error is returned.

◆ NvAPI_D3D11_MultiDrawInstancedIndirect()

NVAPI_INTERFACE NvAPI_D3D11_MultiDrawInstancedIndirect ( __in ID3D11DeviceContext *  pDevContext11,
__in NvU32  drawCount,
__in ID3D11Buffer *  pBuffer,
__in NvU32  alignedByteOffsetForArgs,
__in NvU32  alignedByteStrideForArgs 
)

DESCRIPTION: Extension of DrawInstancedIndirect that takes a draw count in. The effect of this function is to loop over that draw count and perform the DrawInstancedIndirect operation each time, incrementing the buffer offset by the supplied stride each time.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]*pDevContext11Pointer to D3D11 device context (IC or DC)
[in]drawCountDo DrawInstancedIndirect operation this many times
[in]*pBufferID3D11Buffer that contains the command parameters
[in]alignedByteOffsetForArgsStart in pBuffer of the command parameters
[in]alignedByteStrideForArgsStride of the command parameters - must be >= 4 * sizeof(NvU32)

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Return values
NVAPI_D3D_DEVICE_NOT_REGISTEREDWhen MultiDraw is called on a deferred context, and the device has not yet been registered (NvAPI_D3D_RegisterDevice), this error is returned.

◆ NvAPI_D3D11_MultiGPU_GetCaps()

NVAPI_INTERFACE NvAPI_D3D11_MultiGPU_GetCaps ( __inout PNV_MULTIGPU_CAPS  pMultiGPUCaps)

SUPPORTED OS: Windows 7 and higher

◆ NvAPI_D3D11_MultiGPU_Init()

NVAPI_INTERFACE NvAPI_D3D11_MultiGPU_Init ( __in bool  bEnable)

SUPPORTED OS: Windows 7 and higher DESCRIPTION: Request to enable/disable multi GPU extension. Also if enabled automatically disables auto stereo.

Parameters
[in]bEnableif true enables the extension for all subsequently created devices. Otherwise disables it
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.

◆ NvAPI_D3D11_ResolveSubresourceRegion()

NVAPI_INTERFACE NvAPI_D3D11_ResolveSubresourceRegion ( __in ID3D11Device *  pDevice,
__in ID3D11Texture2D *  pDstResource,
__in UINT  DstSubresource,
__in UINT  DstX,
__in UINT  DstY,
__in ID3D11Texture2D *  pSrcResource,
__in UINT  SrcSubresource,
__in_opt const RECT *  pSrcRect,
__in DXGI_FORMAT  Format,
__in NV_RESOLVE_MODE  ResolveMode 
)
Since
Release: 410
DESCRIPTION: NvAPI_D3D11_ResolveSubresourceRegion is D3D11 an analog of D3D12 ResolveSubresourceRegion.
\param [in] pDstResource Destination resource. Must be a created with the D3D11_USAGE_DEFAULT flag and be single-sampled.
\param [in] DstSubresource A zero-based index, that identifies the destination subresource. Use D3D11CalcSubresource to calculate the index.
\param [in] DstX The X coordinate of the left-most edge of the destination region.
The width of the destination region is the same as the width of the source rect.
\param [in] DstY The Y coordinate of the top-most edge of the destination region.
The height of the destination region is the same as the height of the source rect.
\param [in] pSrcResource Source resource. Must be multisampled.
\param [in] SrcSubresource The source subresource of the source resource.
\param [in] pSrcRect Specifies the rectangular region of the source resource to be resolved.
Passing NULL for pSrcRect specifies that the entire subresource is to be resolved.
\param [in] Format A DXGI_FORMAT that indicates how the multisampled resource will be resolved to a single-sampled resource.
\param [in] ResolveMode Specifies the operation used to resolve the source samples. NV_RESOLVE_MODE_SAMPLE_0 is the only supported mode.
NV_RESOLVE_MODE_SAMPLE_0 outputs sample 0 and discards all other samples.
\return This API can return any of the error codes enumerated in
#NvAPI_Status. See MSDN for the API specific error codes.
NVAPI_INTERFACE NvAPI_D3D11_ResolveSubresourceRegion(__in ID3D11Device *pDevice, __in ID3D11Texture2D *pDstResource, __in UINT DstSubresource, __in UINT DstX, __in UINT DstY, __in ID3D11Texture2D *pSrcResource, __in UINT SrcSubresource, __in_opt const RECT *pSrcRect, __in DXGI_FORMAT Format, __in NV_RESOLVE_MODE ResolveMode)
@ NV_RESOLVE_MODE_SAMPLE_0
Definition nvapi.h:12509

◆ NvAPI_D3D11_RSGetPixelShadingRateSampleOrder()

NVAPI_INTERFACE NvAPI_D3D11_RSGetPixelShadingRateSampleOrder ( __in IUnknown *  pContext,
__out NV_PIXEL_SHADING_RATE_SAMPLE_ORDER_TABLE pSampleOrderTable 
)

DESCRIPTION: Get the Sample Order for Variable Shading Rate

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pContextThe device context (ID3D11DeviceContext) used for getting the Shading Rate Sample Order
[out]pSampleOrderTableA pointer to NV_PIXEL_SHADING_RATE_SAMPLE_ORDER_TABLE where the current Sample Order for Variable Pixel Rate Shading that is returned
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D11_RSSetExclusiveScissorRects()

NVAPI_INTERFACE NvAPI_D3D11_RSSetExclusiveScissorRects ( __in IUnknown *  pContext,
__in NV_D3D11_EXCLUSIVE_SCISSOR_RECTS_DESC pExclusiveScissorRectsDesc 
)

DESCRIPTION: Sets Exclusive Scissor Rects. The content bounded within the Scissor Rects will be excluded from rendering unlike regular Scissor Rects. These are orthogonal with Regular Scissor Rects.

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pContextThe device context (ID3D11DeviceContext) to be used for setting the Exclusive Scissor Rects.
[in]pExclusiveScissorRectsDescDescription of the Exclusive Scissor Rects duly filled with their dimensions and control over enablement of individual ScissorRect
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D11_RSSetPixelShadingRateSampleOrder()

NVAPI_INTERFACE NvAPI_D3D11_RSSetPixelShadingRateSampleOrder ( __in IUnknown *  pContext,
__in NV_PIXEL_SHADING_RATE_SAMPLE_ORDER_TABLE pSampleOrderTable 
)

DESCRIPTION: Set the Sample Order for Variable Shading Rate

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pContextThe device context (ID3D11DeviceContext) used for setting the Shading Rate Sample Order
[out]pSampleOrderTableSample Order for Variable Shading Rate to be set
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D11_RSSetShadingRateResourceView()

NVAPI_INTERFACE NvAPI_D3D11_RSSetShadingRateResourceView ( __in IUnknown *  pContext,
__in ID3D11NvShadingRateResourceView pShadingRateResourceView 
)

DESCRIPTION: Sets Shading Rate Resource View

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pContextThe device context (ID3D11DeviceContext) used for setting the Shading Rate Resource View
[out]pShadingRateResourceViewShading Rate Resource View to be set
Note
See NvAPI_D3D11_CreateShadingRateResourceView
Passing this as null will reset Shading Rate Resource View to defaults
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D11_RSSetViewportsPixelShadingRates()

NVAPI_INTERFACE NvAPI_D3D11_RSSetViewportsPixelShadingRates ( __in IUnknown *  pContext,
__in NV_D3D11_VIEWPORTS_SHADING_RATE_DESC pShadingRateDesc 
)

DESCRIPTION: Sets Pixel Shading Rates and Enables/Disables per-viewport Variable Pixel Shading Rate feature

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pContextThe device context (ID3D11DeviceContext) to be used for setting the Viewports Shading Rates
[in]pShadingRateDescShading rate descriptor
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D11_SetDepthBoundsTest()

NVAPI_INTERFACE NvAPI_D3D11_SetDepthBoundsTest ( IUnknown *  pDeviceOrContext,
NvU32  bEnable,
float  fMinDepth,
float  fMaxDepth 
)

DESCRIPTION: This function enables/disables the depth bounds test

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDeviceOrContextThe device or device context to set depth bounds test
[in]bEnableEnable(non-zero)/disable(zero) the depth bounds test
[in]fMinDepthThe minimum depth for depth bounds test
[in]fMaxDepthThe maximum depth for depth bounds test The valid values for fMinDepth and fMaxDepth are such that 0 <= fMinDepth <= fMaxDepth <= 1
Returns
NVAPI_OK if the depth bounds test was correcly enabled or disabled

◆ NvAPI_D3D11_SetNvShaderExtnSlot()

NVAPI_INTERFACE NvAPI_D3D11_SetNvShaderExtnSlot ( __in IUnknown *  pDev,
__in NvU32  uavSlot 
)

DESCRIPTION: This function sets the fake UAV slot that is used by Nvidia HLSL shader extensions globally. All createShader calls made to the driver after setting this slot would treat writes/reads to this UAV in a different way. Applications are expected to bind null UAV to this slot. The same slot is used for all shader stages. To disable shader extensions the app need to set this uav slot to 0xFFFFFFFF. To use Nvidia HLSL extensions the application must include nvHLSLExtns.h in the hlsl shader code. See nvHLSLExtns.h for more details.

This function can be called from a different thread than the one calling immediate device setstate functions.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevThe device for which to set the extension slot should be a ID3D11Device+ device
[in]uavSlotthe uav slot to use

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Return values
:NVAPI_OK : success, the uavSlot was set sucessfully

◆ NvAPI_D3D11_SetNvShaderExtnSlotLocalThread()

NVAPI_INTERFACE NvAPI_D3D11_SetNvShaderExtnSlotLocalThread ( __in IUnknown *  pDev,
__in NvU32  uavSlot 
)

DESCRIPTION: This function sets the fake UAV slot that is used by Nvidia HLSL shader extensions on local thread. All createShader calls on the same thread that calls this function after setting this slot would treat writes/reads to this UAV in a different way. Applications are expected to bind null UAV to this slot. The same slot is used for all shader stages. To disable shader extensions the app may set this uav slot to 0xFFFFFFFF. To use Nvidia HLSL extensions the application must include nvHLSLExtns.h in the hlsl shader code. See nvHLSLExtns.h for more details.

This function can be called from a different thread than the one calling immediate device setstate functions.

SUPPORTED OS: Windows 7 and higher

Since
Release: 387
Parameters
[in]pDevThe device for which to set the extension slot should be a ID3D11Device+ device
[in]uavSlotthe uav slot to use

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Return values
:NVAPI_OK : success, the uavSlot was set sucessfully

◆ NvAPI_D3D12_BuildRaytracingAccelerationStructureEx()

NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingAccelerationStructureEx ( __in ID3D12GraphicsCommandList4 *  pCommandList,
__in const NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS pParams 
)

DESCRIPTION: Perform an acceleration structure build on the GPU. Also optionally output postbuild information immediately after the build. This function is an extension of ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure() with additional serialized data types.

Note
Only supported on GPUs capable of DXR. Some of the flags and fields have further restrictions, in which case their description will include a note with more details.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pCommandListCommand list on which the command will execute.
[in]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_INVALID_COMBINATIONpParams->pPostbuildInfoDescs was set to NULL while pParams->numPostbuildInfoDescs is non zero.

◆ NvAPI_D3D12_BuildRaytracingDisplacementMicromapArray()

NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingDisplacementMicromapArray ( __in ID3D12GraphicsCommandList4 *  pCommandList,
__in NVAPI_BUILD_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS pParams 
)

DESCRIPTION: Construct DMM Array for a collection of DMMs on the GPU. The CPU-side input buffers are not referenced after this call. The GPU-side input resources are not referenced after the build has concluded after ExecuteCommandList(). Additionally, the application may optionally output postbuild information immediately after the build.

SUPPORTED OS: Windows 10 and higher

Since
Release: 525
Parameters
[in]pCommandListCommand list on which the command will execute.
[in]pParamsWrapper around the inputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_INVALID_COMBINATIONpParams->pPostbuildInfoDescs was set to NULL while pParams->numPostbuildInfoDescs is non zero.

◆ NvAPI_D3D12_BuildRaytracingOpacityMicromapArray()

NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingOpacityMicromapArray ( __in ID3D12GraphicsCommandList4 *  pCommandList,
__in NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS pParams 
)

DESCRIPTION: Construct OMM Array for a collection of OMMs on the GPU. The CPU-side input buffers are not referenced after this call. The GPU-side input resources are not referenced after the build has concluded after ExecuteCommandList(). Additionally, the application may optionally output postbuild information immediately after the build.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pCommandListCommand list on which the command will execute.
[in]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_INVALID_COMBINATIONpParams->pPostbuildInfoDescs was set to NULL while pParams->numPostbuildInfoDescs is non zero.

◆ NvAPI_D3D12_CheckDriverMatchingIdentifierEx()

NVAPI_INTERFACE NvAPI_D3D12_CheckDriverMatchingIdentifierEx ( __in ID3D12Device5 *  pDevice,
__inout NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS pParams 
)

DESCRIPTION: This function is an extension of ID3D12Device5::CheckDriverMatchingIdentifier() with additional serialized data types.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pDeviceDevice on which the data will be deserialized.
[in,out]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_CopyTextureRegion()

NVAPI_INTERFACE NvAPI_D3D12_CopyTextureRegion ( __in ID3D12GraphicsCommandList *  pCommandList,
__in const D3D12_TEXTURE_COPY_LOCATION *  pDst,
__in UINT  DstX,
__in UINT  DstY,
__in UINT  DstZ,
__in const D3D12_TEXTURE_COPY_LOCATION *  pSrc,
__in_opt const D3D12_BOX *  pSrcBox 
)
Since
Release: 384
DESCRIPTION: Wrapper around ID3D12GraphicsCommandList::CopyTextureRegion for allowing copying to/from HTEX resources
created using NvAPI_D3D12_CreatePlacedResource with NV_D3D12_RESOURCE_FLAG_HTEX flag.
\param [in] pCommandList A pointer to D3D12 graphics command list.
\param [in] pDst Specifies the destination D3D12_TEXTURE_COPY_LOCATION. The subresource referred to must be in the D3D12_RESOURCE_STATE_COPY_DEST state.
\param [in] DstX The x-coordinate of the upper left corner of the destination region.
\param [in] DstY The y-coordinate of the upper left corner of the destination region.
\param [in] DstZ The z-coordinate of the upper left corner of the destination region.
\param [in] pSrc Specifies the source D3D12_TEXTURE_COPY_LOCATION. The subresource referred to must be in the D3D12_RESOURCE_STATE_COPY_SOURCE state.
\param [in] pSrcBox Specifies an optional D3D12_BOX that sets the size of the source texture to copy.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_CopyTileMappings()

NVAPI_INTERFACE NvAPI_D3D12_CopyTileMappings ( __in ID3D12CommandQueue *  pCommandQueue,
__in ID3D12Resource *  pDstResource,
__in const D3D12_TILED_RESOURCE_COORDINATE *  pDstRegionStartCoordinate,
__in ID3D12Resource *  pSrcResource,
__in const D3D12_TILED_RESOURCE_COORDINATE *  pSrcRegionStartCoordinate,
__in const D3D12_TILE_REGION_SIZE *  pRegionSize,
__in D3D12_TILE_MAPPING_FLAGS  Flags 
)
Since
Release: 375
DESCRIPTION: NvAPI_D3D12_CopyTileMappings is an extension of ID3D12CommandQueue::CopyTileMappings
pDstResource and pSrcResource must be created by NvAPI_D3D12_CreateReservedResource.
\param [in] pCommandQueue A pointer to ID3D12CommandQueue.
\param [in] pDstResource Tiled resource created by NvAPI_D3D12_CreateReservedResource to copy tile mappings into.
\param [in] pDstRegionStartCoordinate A pointer to a D3D12_TILED_RESOURCE_COORDINATE structure that describes the starting coordinates of the destination reserved resource.
\param [in] pSrcResource Tiled resource created by NvAPI_D3D12_CreateReservedResource to copy tile mappings from.
\param [in] pSourceRegionStartCoordinate A pointer to a D3D12_TILED_RESOURCE_COORDINATE structure that describes the starting coordinates of the source reserved resource.
\param [in] pTileRegionSize A pointer to a D3D12_TILE_REGION_SIZE structure that describes the size of the reserved region.
\param [in] Flags One member of D3D12_TILE_MAPPING_FLAGS.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
NVAPI_INTERFACE NvAPI_D3D12_CopyTileMappings(__in ID3D12CommandQueue *pCommandQueue, __in ID3D12Resource *pDstResource, __in const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, __in ID3D12Resource *pSrcResource, __in const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, __in const D3D12_TILE_REGION_SIZE *pRegionSize, __in D3D12_TILE_MAPPING_FLAGS Flags)
NVAPI_INTERFACE NvAPI_D3D12_CreateReservedResource(__in ID3D12Device *pDevice, __in const D3D12_RESOURCE_DESC *pDesc, __in D3D12_RESOURCE_STATES InitialState, __in const D3D12_CLEAR_VALUE *pOptimizedClearValue, __in REFIID riid, __out void **ppvResource, __in bool bTexture2DArrayMipPack, __in ID3D12Heap *pHeap)

◆ NvAPI_D3D12_CreateCommittedImplicitMSAATexture2D()

NVAPI_INTERFACE NvAPI_D3D12_CreateCommittedImplicitMSAATexture2D ( __in ID3D12Device *  pDevice,
__in const D3D12_HEAP_PROPERTIES *  pHeapProperties,
D3D12_HEAP_FLAGS  HeapFlags,
__in const D3D12_RESOURCE_DESC *  pDesc,
D3D12_RESOURCE_STATES  InitialResourceState,
__in_opt const D3D12_CLEAR_VALUE *  pOptimizedClearValue,
REFIID  riidResource,
__out void **  ppvResource 
)

SUPPORTED OS: Windows 10 and higher

Since
Release: 410
DESCRIPTION: NvAPI_D3D12_CreateCommittedImplicitMSAATexture2D is a simple wrapper of ID3D12Device::CreateCommittedResource
which allows to create multisampled 2D texture that is exposed to DX runtime as non-multisampled texture.
\param [in] pDevice Current d3d device
\param [in] pDesc A pointer to a D3D12_RESOURCE_DESC structure that describes a 2D texture resource.
To create a typeless resource that can be interpreted at runtime into different,
compatible formats, specify a typeless format in the texture description.
To generatemipmap levels automatically, set the number of mipmap levels to 0.
SampleDesc.SampleCount specifies actual resource sample count, while D3D runtime object
sees resource as non-multisampled.
\param [in] pHeapProperties, HeapFlags, InitialResourceState, pOptimizedClearValue, riidResource See D3D12 docs
\param [out] ppResource Same ID3D12Device::CreateCommittedResource
\return This API can return any of the error codes enumerated in
#NvAPI_Status. See MSDN for the API specific error codes.
NVAPI_INTERFACE NvAPI_D3D12_CreateCommittedImplicitMSAATexture2D(__in ID3D12Device *pDevice, __in const D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, __in const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialResourceState, __in_opt const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riidResource, __out void **ppvResource)

◆ NvAPI_D3D12_CreateCommittedRDMABuffer()

NVAPI_INTERFACE NvAPI_D3D12_CreateCommittedRDMABuffer ( __in ID3D12Device *  pDevice,
__in NvU64  size,
__in NvU32  heapCreationNodeMask,
__in NvU32  heapVisibleNodeMask,
__in REFIID  riidResource,
__out void **  ppvResource,
__out void **  ppRDMAAddress 
)
Since
Release: 530
DESCRIPTION: NvAPI_D3D12_CreateCommittedRDMABuffer is a wrapper of ID3D12Device::CreateCommittedResource
which allows to allocate linear memory which can be used for remote direct memory access (RDMA) from other devices.
It creates an implicit D3D12 heap of the requested size, allocates the resource and returns an RDMA address for remote direct memory access.
The created memory will reside on the specified device local memory and won't be cpu accessible.
\param [in] pDevice A pointer to a D3D12 device.
\param [in] size Size in bytes of the linear buffer to be allocated for the resource.
\param [in] heapCreationNodeMask This mask indicates the node where the resource should be created.
\param [in] heapVisibleNodeMask This mask indicates on which nodes the resource is accessible.
\param [in] riidResource The globally unique identifier (GUID) for the resource interface.
\param [out] ppvResource A pointer to memory that receives the requested interface pointer to the created resource object.
\param [out] ppRDMAAddress A pointer to memory that receives the Bar1 memory region for remote direct memory access.
SUPPORTED OS: Windows 10 and higher
\return This API can return any of the error codes enumerated in
#NvAPI_Status.
NVAPI_INTERFACE NvAPI_D3D12_CreateCommittedRDMABuffer(__in ID3D12Device *pDevice, __in NvU64 size, __in NvU32 heapCreationNodeMask, __in NvU32 heapVisibleNodeMask, __in REFIID riidResource, __out void **ppvResource, __out void **ppRDMAAddress)

◆ NvAPI_D3D12_CreateComputePipelineState()

NVAPI_INTERFACE NvAPI_D3D12_CreateComputePipelineState ( __in ID3D12Device *  pDevice,
__in const D3D12_COMPUTE_PIPELINE_STATE_DESC *  pPSODesc,
NvU32  numExtensions,
__in const NVAPI_D3D12_PSO_EXTENSION_DESC **  ppExtensions,
__out ID3D12PipelineState **  ppPSO 
)
DESCRIPTION: This function will create PSO with provided extensions
\param [in] pDevice Current d3d device
\param [in] pPSODesc PSO description of type D3D12_COMPUTE_PIPELINE_STATE_DESC
\param [in] numExtensions Number of extensions
\param [in] ppExtensions Array of PSO extensions (see NV_PSO_EXTENSION for possible extensions)
\param [out] ppPSO Output PSO object of type ID3D12PipelineState
\since Release: 364
SUPPORTED OS: Windows 10
\return ::NVAPI_OK if the call succeeds.
enum _NV_PSO_EXTENSION NV_PSO_EXTENSION

◆ NvAPI_D3D12_CreateDDisplayPresentBarrierClient()

NVAPI_INTERFACE NvAPI_D3D12_CreateDDisplayPresentBarrierClient ( __in ID3D12Device *  pDevice,
__in NvU32  sourceId,
__out NvPresentBarrierClientHandle *  pPresentBarrierClient 
)

SUPPORTED OS: Windows 10 and higher DESCRIPTION: This API returns an NvPresentBarrierClientHandle handle.

Since
Release: 510
Parameters
[in]pDeviceThe ID3D12Device device which executes the rendering commands of this PresentBarrier client. It must be created on the same adapter as DisplayDevice.
[in]sourceIdThe adapter-relative identifier for the DisplaySource obtained from DisplaySource.SourceId().
[OUT]pPresentBarrierClient Pointer to an NvPresentBarrierClientHandle handle created by the driver on success.
Returns
NVAPI_OK the call succeeded
NVAPI_ERROR the call failed
NVAPI_INVALID_POINTER an invalid pointer was passed as an argument
NVAPI_INVALID_HANDLE the input displaySource handle is not owned by the process
NVAPI_NOT_SUPPORTED PresentBarrier featue is not supported on this configuration
NVAPI_NO_IMPLEMENTATION the API is not implemented
Return values
NVAPI_API_NOT_INITIALIZEDNvAPI not initialized

◆ NvAPI_D3D12_CreateGraphicsPipelineState()

NVAPI_INTERFACE NvAPI_D3D12_CreateGraphicsPipelineState ( __in ID3D12Device *  pDevice,
__in const D3D12_GRAPHICS_PIPELINE_STATE_DESC *  pPSODesc,
NvU32  numExtensions,
__in const NVAPI_D3D12_PSO_EXTENSION_DESC **  ppExtensions,
__out ID3D12PipelineState **  ppPSO 
)
DESCRIPTION: This function will create PSO with provided extensions
\note Note that "Cached PSO" functionality is not supported with the Pipeline State Object created using
this NvAPI. GetCachedBlob() should not be called with such a PSO.
\param [in] pDevice Current d3d device
\param [in] pPSODesc PSO description of type D3D12_GRAPHICS_PIPELINE_STATE_DESC
\param [in] numExtensions Number of extensions
\param [in] ppExtensions Array of PSO extensions (see NV_PSO_EXTENSION for possible extensions)
\param [out] ppPSO Output PSO object of type ID3D12PipelineState
SUPPORTED OS: Windows 10
\return ::NVAPI_OK if the call succeeds.
@ NVAPI_OK
Success. Request is completed.
Definition nvapi_lite_common.h:258

◆ NvAPI_D3D12_CreateHeap()

NVAPI_INTERFACE NvAPI_D3D12_CreateHeap ( __in ID3D12Device *  pDevice,
__in const D3D12_HEAP_DESC *  pDesc,
__in REFIID  riid,
__out void **  ppvHeap 
)
Since
Release: 375
DESCRIPTION: NvAPI_D3D12_CreateHeap is a safe replacement of ID3D12Device::CreateHeap with no functionality change and overhead.
In NvAPI_D3D12_UpdateTileMappings, pTilePool must be created with NvAPI_D3D12_CreateHeap and otherwise NvAPI_D3D12_UpdateTileMappings will fail.
In other word, any tile pool used in NvAPI_D3D12_UpdateTileMappings must be created by NvAPI_D3D12_CreateHeap.
\param [in] pDevice A pointer to D3D12 device.
\param [in] pDesc A pointer to a D3D12_HEAP_DESC structure that describes the heap.
\param [in] riid The globally unique identifier (GUID) for the resource interface.
\param [out] ppvHeap A pointer to a memory block that receives a pointer to the heap. Cannot be NULL.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
NVAPI_INTERFACE NvAPI_D3D12_UpdateTileMappings(__in ID3D12CommandQueue *pCommandQueue, __in ID3D12Resource *pResource, __in UINT NumResourceRegions, __in const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, __in const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, __in ID3D12Heap *pHeap, __in UINT NumRanges, __in const D3D12_TILE_RANGE_FLAGS *pRangeFlags, __in const UINT *pHeapRangeStartOffsets, __in const UINT *pRangeTileCounts, __in D3D12_TILE_MAPPING_FLAGS Flags)
NVAPI_INTERFACE NvAPI_D3D12_CreateHeap(__in ID3D12Device *pDevice, __in const D3D12_HEAP_DESC *pDesc, __in REFIID riid, __out void **ppvHeap)

◆ NvAPI_D3D12_CreatePresentBarrierClient()

NVAPI_INTERFACE NvAPI_D3D12_CreatePresentBarrierClient ( __in ID3D12Device *  pDevice,
__in IDXGISwapChain *  pSwapChain,
__out NvPresentBarrierClientHandle *  pPresentBarrierClient 
)

SUPPORTED OS: Windows 10 and higher DESCRIPTION: This API returns an NvPresentBarrierClientHandle handle, which owns the swapchain to be synchronized through PresentBarrier. This handle is used in other PresentBarrier functions.

Since
Release: 470
Parameters
[in]pDeviceThe ID3D12Device device which owns the SwapChain as a PresentBarrier client.
[in]pSwapChainThe IDXGISwapChain interface that presentBarrier is operated on.
[OUT]pPresentBarrierClient Pointer to an NvPresentBarrierClientHandle handle created by the driver on success.
Returns
NVAPI_OK the call succeeded
NVAPI_ERROR the call failed
NVAPI_INVALID_POINTER an invalid pointer was passed as an argument
NVAPI_NO_IMPLEMENTATION the API is not implemented
Return values
NVAPI_API_NOT_INITIALIZEDNvAPI not initialized

◆ NvAPI_D3D12_CreateReservedResource()

NVAPI_INTERFACE NvAPI_D3D12_CreateReservedResource ( __in ID3D12Device *  pDevice,
__in const D3D12_RESOURCE_DESC *  pDesc,
__in D3D12_RESOURCE_STATES  InitialState,
__in const D3D12_CLEAR_VALUE *  pOptimizedClearValue,
__in REFIID  riid,
__out void **  ppvResource,
__in bool  bTexture2DArrayMipPack,
__in ID3D12Heap *  pHeap 
)
Since
Release: 375
DESCRIPTION: Tiled resource is supported for Texture2D Array, however, but only when mip packing is not triggered.
So any mip level cannot be smaller than a single tile size(64KB).
This set of API is an extension of D3D12 support for tiled resource to allow a tiled texture2D array with mip packing.
If any of API from this set is used, using all of them is highly recommended.
Reminder: all API in this set other than NvAPI_D3D12_CreateReservedResource won't has D3D Debug Layer information.
NvAPI_D3D12_CreateReservedResource is an extension of ID3D12Device::CreateReservedResource.
Use this function to create a tiled Texture2D array with mip packing.
Runtime doesn't know the created resource is actually a tiled resource.
Any other D3D12 API where runtime will check whether resource is tiled or not, has a corresponding NVAPI version and they should be used.
Different from DX11 implementation, we highly recommend replace all ID3D12Device::CreateReservedResource with NvAPI_D3D12_CreateReservedResource,
and use bTexture2DArrayMipPack to control which creation to use.
Otherwise, NvAPI_D3D12_ResourceAliasingBarrier will fail if any resource is not created by NvAPI_D3D12_CreateReservedResource.
DX11 implementation doesn't have this restriction and resource created by NVAPI and D3D API can be used together.
pHeap is necessary when bTexture2DArrayMipPack is true. pHeap can be any heap and this API doens't change anything to it.
\param [in] pDevice A pointer to D3D12 device.
\param [in] pDesc A pointer to a D3D12_RESOURCE_DESC structure that describes the resource.
\param [in] InitialState The initial state of the resource, as a bitwise-OR'd combination of D3D12_RESOURCE_STATES enumeration constants.
\param [in] pOptimizedClearValue Specifies a D3D12_CLEAR_VALUE that describes the default value for a clear color.
\param [in] riid The globally unique identifier (GUID) for the resource interface.
\param [out] ppvResource A pointer to a memory block that receives a pointer to the resource. Cannot be NULL.
\param [in] bTexture2DArrayMipPack Whether pDesc indicates it's a texture2D array resource with mip packing.
TRUE: Use NVAPI to create. Will check pHeap to be not NULL.
FALSE: Standard D3D12 API will be used, use DebugDevice to check any runtime ERROR. Won't check pHeap
\param [in] pHeap A pointer to ID3D12Heap. Cannot be NULL when bTexture2DArrayMipPack is true.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
NVAPI_INTERFACE NvAPI_D3D12_ReservedResourceGetDesc(__in ID3D12Resource *pReservedResource, __out D3D12_RESOURCE_DESC *pDesc)
NVAPI_INTERFACE NvAPI_D3D12_ResourceAliasingBarrier(__in ID3D12GraphicsCommandList *pCommandList, __in UINT NumBarriers, __in const D3D12_RESOURCE_BARRIER *pBarriers)

◆ NvAPI_D3D12_EmitRaytracingDisplacementMicromapArrayPostbuildInfo()

NVAPI_INTERFACE NvAPI_D3D12_EmitRaytracingDisplacementMicromapArrayPostbuildInfo ( __in ID3D12GraphicsCommandList4 *  pCommandList,
__in const NVAPI_EMIT_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS pParams 
)

DESCRIPTION: Emits information about one or more DMM Arrays, only available after the DMM Array constructions have finished.

SUPPORTED OS: Windows 10 and higher

Since
Release: 525
Parameters
[in]pCommandListCommand list on which the command will execute.
[in]pParamsWrapper around the inputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo()

NVAPI_INTERFACE NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo ( __in ID3D12GraphicsCommandList4 *  pCommandList,
__in const NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS pParams 
)

DESCRIPTION: Emits information about one or more OMM Arrays, only available after the OMM Array constructions have finished.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pCommandListCommand list on which the command will execute.
[in]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_EnableRaytracingValidation()

NVAPI_INTERFACE NvAPI_D3D12_EnableRaytracingValidation ( __in ID3D12Device5 *  pDevice,
__in NVAPI_D3D12_RAYTRACING_VALIDATION_FLAGS  flags 
)

DESCRIPTION: Enable raytracing validation for a device. This function must be called before any other raytracing-related function is invoked on the device. Raytracing validation can only be enabled when the NV_ALLOW_RAYTRACING_VALIDATION envvar is set to 1.

SUPPORTED OS: Windows 10 and higher

Since
Release: 545
Parameters
[in]pDevicePointer to the device on which raytracing validation should be enabled.
[in]flagsRaytracing validation flags.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_OKCompleted request
NVAPI_INVALID_POINTERA null pointer was passed as device argument
NVAPI_INVALID_ARGUMENTAn unsupported flag was specified
NVAPI_INVALID_CALLThe call was made too late (other raytracing-related calls have already been made)
NVAPI_ACCESS_DENIEDValidation is not allowed by envvar

◆ NvAPI_D3D12_EnumerateMetaCommands()

NVAPI_INTERFACE NvAPI_D3D12_EnumerateMetaCommands ( __in ID3D12Device *  pDevice,
__inout NvU32 pNumMetaCommands,
__out_ecount_opt *pNumMetaCommands NVAPI_META_COMMAND_DESC pDescs 
)
Since
Release: 400
DESCRIPTION: Enumerates MetaCommands supported on the system
\param [in] pDevice A pointer to D3D12 device.
\param [in/out] pNumMetaCommands Should be non-null. When the value pointed by pNumMetaCommands is 0 or when pDescs is NULL, the function returns number of metacommands supported.
When the value pointed is non-zero, the value indicates number of Metacommand descriptions to be populated in pDescs array.
\param [out] pDescs Pointer to array where Metacommand descriptions will be returned. Can be null to indicate that the app is querying the number of supported metacommands.
Otherwise should have enough space to hold *pNumMetaCommands descriptors
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_ExecuteMetaCommand()

NVAPI_INTERFACE NvAPI_D3D12_ExecuteMetaCommand ( __in ID3D12GraphicsCommandList *  pCommandlist,
__in ID3D12NvMetaCommand pMetaCommand,
__in_bcount(ExecutionParametersDataSize) const void *  pExecutionParametersData,
__in NvU32  ExecutionParametersDataSize 
)
Since
Release: 400
DESCRIPTION: Executes the given MetaCommand with the parameters passed in
\param [in] pCommandList A pointer to D3D12 command list.
\param [in] pMetaCommand the MetaCommand to execute
\param [in] pExecutionParametersData Structure containing parameters
\param [in] ExecutionParametersDataSize Size of the parameter structure in bytes
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_FlushRaytracingValidationMessages()

NVAPI_INTERFACE NvAPI_D3D12_FlushRaytracingValidationMessages ( __in ID3D12Device5 *  pDevice)

DESCRIPTION: Flush any validation messages that have not yet been reported. This guarantees that any validation messages for work which is known to be complete on the GPU at the time of the call are reported to registered callbacks. This operation is lightweight if the flushed device does not have raytracing validation enabled.

SUPPORTED OS: Windows 10 and higher

Since
Release: 545
Parameters
[in]pDevicePointer to the device on which raytracing validation messages should be flushed.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_OKCompleted request
NVAPI_INVALID_POINTERA null pointer was passed as device argument

◆ NvAPI_D3D12_GetCopyableFootprints()

NVAPI_INTERFACE NvAPI_D3D12_GetCopyableFootprints ( __in ID3D12Device *  pDevice,
__in const D3D12_RESOURCE_DESC *  pResourceDesc,
__in const NV_RESOURCE_PARAMS pNVResourceParams,
__in UINT  FirstSubresource,
__in UINT  NumSubresources,
__in UINT64  BaseOffset,
__out_ecount_opt(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *  pLayouts,
__out_ecount_opt(NumSubresources) UINT *  pNumRows,
__out_ecount_opt(NumSubresources) UINT64 *  pRowSizeInBytes,
__out_opt UINT64 *  pTotalBytes 
)
Since
Release: 384
DESCRIPTION: Wrapper around ID3D12Device::GetCopyableFootprints for getting correct staging resource footprint for HTEX resources
created using NvAPI_D3D12_CreateCommittedResource / NvAPI_D3D12_CreatePlacedResource with NV_D3D12_RESOURCE_FLAG_HTEX flag
\param [in] pDevice A pointer to D3D12 device.
\param [in] pResourceDesc A description of the resource, as a pointer to a D3D12_RESOURCE_DESC structure.
\param [in] pNVResourceParams A pointer to a structure containing additional NV specific resource information
\param [in] FirstSubresource Index of the first subresource in the resource. The range of valid values is 0 to D3D12_REQ_SUBRESOURCES
\param [in] NumSubresources The number of subresources in the resource. The range of valid values is 0 to (D3D12_REQ_SUBRESOURCES - FirstSubresource).
\param [in] BaseOffset The offset, in bytes, to the resource.
\param [out] pLayouts A pointer to an array (of length NumSubresources) of D3D12_PLACED_SUBRESOURCE_FOOTPRINT structures, to be filled with the
description and placement of each subresource.
\param [out] pRowSizeInBytes A pointer to an array (of length NumSubresources) of integer variables, each entry to be
filled with the unpadded size in bytes of a row, of each subresource.
\param [out] pTotalBytes A pointer to an integer variable, to be filled with the total size, in bytes.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
NVAPI_INTERFACE NvAPI_D3D12_CreateCommittedResource(__in ID3D12Device *pDevice, __in const D3D12_HEAP_PROPERTIES *pHeapProperties, __in D3D12_HEAP_FLAGS HeapFlags, __in const D3D12_RESOURCE_DESC *pDesc, __in D3D12_RESOURCE_STATES InitialState, __in const D3D12_CLEAR_VALUE *pOptimizedClearValue, __in const NV_RESOURCE_PARAMS *pNVResourceParams, __in REFIID riid, __out_opt void **ppvResource, __out_opt bool *pSupported)

◆ NvAPI_D3D12_GetGraphicsCapabilities()

NVAPI_INTERFACE NvAPI_D3D12_GetGraphicsCapabilities ( __in IUnknown *  pDevice,
__in NvU32  structVersion,
__inout NV_D3D12_GRAPHICS_CAPS pGraphicsCaps 
)

DESCRIPTION: Get the graphics capabilities for current hardware/software setup

SUPPORTED OS: Windows 10 and higher

Since
Release: 410
Parameters
[in]pDeviceThe ID3D12Device device to be used for getting the graphics capabilities.
[in]structVersionVersion of the caps struct. Should be set to NV_D3D12_GRAPHICS_CAPS_VER.
[in,out]pGraphicsCapsPointer to a NV_D3D12_GRAPHICS_CAPS_CAPS struct created by app. Graphics capabilities will be filled in this struct by the driver.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D12_GetNeedsAppFPBlendClamping()

NVAPI_INTERFACE NvAPI_D3D12_GetNeedsAppFPBlendClamping ( __in ID3D12Device *  pDevice,
__out bool *  pAppClampNeeded 
)
DESCRIPTION: This function returns whether the application needs to do FP blend clamping itself
\param [in] pDevice Current d3d device
\param [out] pAppClampNeeded If true, app needs to clamp. If false, HW does the clamping
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
\since Release: 375
SUPPORTED OS: Windows 10

◆ NvAPI_D3D12_GetOptimalThreadCountForMesh()

NVAPI_INTERFACE NvAPI_D3D12_GetOptimalThreadCountForMesh ( __in ID3D12Device *  pDevice,
__out NvU32 pThreadCount 
)

DESCRIPTION: This function returns optimal thread count for mesh and task aka amplification shaders if Meshlets supported Otherwise returns 0.

Since
Release: 510 SUPPORTED OS: Windows 10 and higher
Parameters
[in]pDeviceThe device on which to query thread count
[out]pThreadCountoptimal thread count if Meshlets supported, 0 otherwise

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status.

Return values
:NVAPI_OK if the call succeeded

◆ NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx()

NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx ( __in ID3D12Device5 *  pDevice,
__inout NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS pParams 
)

DESCRIPTION: This function is an extension of ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo() with additional input types.

Note
Only supported on GPUs capable of DXR. Some of the flags and fields have further restrictions, in which case their description will include a note with more details.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pDeviceDevice on which the acceleration structure will be built.
[in,out]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_GetRaytracingCaps()

NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingCaps ( __in ID3D12Device *  pDevice,
__in NVAPI_D3D12_RAYTRACING_CAPS_TYPE  type,
__out void *  pData,
__in size_t  dataSize 
)

DESCRIPTION: Query raytracing capabilities of a device.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pDevicePointer to the device on which raytracing caps should be queried from.
[in]typeRaytracing caps type requested. (ex: NVAPI_D3D12_RAYTRACING_CAPS_TYPE_THREAD_REORDERING)
[out]pDataPointer to memory that receives caps. (ex: NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS*)
[in]dataSizeSize in bytes to return to pData. Must match the size of the caps data requested. (ex: sizeof(NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS))
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_OKCompleted request
NVAPI_INVALID_POINTERA null pointer was passed as an argument
NVAPI_INVALID_ARGUMENTAt least one of the arguments are invalid
NVAPI_ERRORError occurred

◆ NvAPI_D3D12_GetRaytracingDisplacementMicromapArrayPrebuildInfo()

NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingDisplacementMicromapArrayPrebuildInfo ( __in ID3D12Device5 *  pDevice,
__inout NVAPI_GET_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS pParams 
)

DESCRIPTION: Query conservative memory requirements for building a DMM (Displacement Micromap) Array. The returned size is conservative for DMM Array builds containing a lower or equal number of entries for each resolution and format combination.

SUPPORTED OS: Windows 10 and higher

Since
Release: 525
Parameters
[in]pDeviceDevice on which the DMM Array will be built.
[in,out]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo()

NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo ( __in ID3D12Device5 *  pDevice,
__inout NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS pParams 
)

DESCRIPTION: Query conservative memory requirements for building an OMM (Opacity Micromap) Array. The returned size is conservative for OMM Array builds containing a lower or equal number of entries for each resolution and format combination.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pDeviceDevice on which the OMM Array will be built.
[in,out]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_InitializeMetaCommand()

NVAPI_INTERFACE NvAPI_D3D12_InitializeMetaCommand ( __in ID3D12GraphicsCommandList *  pCommandlist,
__in ID3D12NvMetaCommand pMetaCommand,
__in_bcount(InitializationParametersDataSize) const void *  pInitializationParametersData,
__in NvU32  InitializationParametersDataSize 
)
Since
Release: 400
DESCRIPTION: Initializes the given MetaCommand with the parameters passed in
\param [in] pCommandList A pointer to D3D12 command list.
\param [in] pMetaCommand the MetaCommand to initialize
\param [in] pInitializationParametersData Structure containing parameters
\param [in] InitializationParametersDataSize Size of the parameter structure in bytes
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_IsNvShaderExtnOpCodeSupported()

NVAPI_INTERFACE NvAPI_D3D12_IsNvShaderExtnOpCodeSupported ( __in ID3D12Device *  pDevice,
__in NvU32  opCode,
__out bool *  pSupported 
)

DESCRIPTION: This function checks if a nv HLSL shader extension opcode is supported on current hardware. List of opcodes is in nvShaderExtnEnums.h To use Nvidia HLSL extensions the application must include nvHLSLExtns.h in the hlsl shader code. See nvHLSLExtns.h for more details on supported opcodes.

Since
Release: 364

SUPPORTED OS: Windows 10

Parameters
[in]pDevThe device on which to query for support
[in]opCodethe opcode to check
[out]pSupportedtrue if supported, false otherwise

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status.

Return values
:NVAPI_OK if the call succeeded

◆ NvAPI_D3D12_Mosaic_GetCompanionAllocations()

NVAPI_INTERFACE NvAPI_D3D12_Mosaic_GetCompanionAllocations ( __inout NV_D3D12_MOSAIC_GETCOMPANIONALLOCATIONS params)

DESCRIPTION: Queries the driver for internally created allocations that accompany a swap chain buffer for present-related operations. Surfaces returned by this interface must be destroied at the same time that the original swap chain buffer is destroyed. In general this occurs prior to a ResizeBuffers call, or when the swap chain is released. Note that this function only works in Landscape orientation due to Windows behavior, and attempts to utilize it with any type of display rotation will result in failure.

Parameters
[in,out]companionBufferCountThe parameters for this function.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.
NVAPI_INVALID_CALLSystem configuration does not support this interface (eg, display is rotated, mosaic not enabled, etc)

<>

◆ NvAPI_D3D12_Mosaic_GetViewportAndGpuPartitions()

NVAPI_INTERFACE NvAPI_D3D12_Mosaic_GetViewportAndGpuPartitions ( __inout NV_D3D12_MOSAIC_GETVIEWPORTANDGPUPARTITIONS params)

DESCRIPTION: Queries the driver for how a swap chain display surface is subdivided across devices in relation to display connectivity. Call this interface with NULL pPartitions in order to know how many subdivisions exist and allocate the proper size to hold all data. Call it a second time with a properly sized partitions array to receive all subdivisions along with GPU node masks of each rectangle. Note that this function only works in Landscape orientation due to Windows behavior, and attempts to utilize it with any type of display rotation will result in failure.

Parameters
[in,out]paramsThe parameters for this function.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.
NVAPI_INVALID_CALLSystem configuration does not support this interface (eg, display is rotated, mosaic not enabled, etc)

<>

◆ NvAPI_D3D12_NotifyOutOfBandCommandQueue()

NVAPI_INTERFACE NvAPI_D3D12_NotifyOutOfBandCommandQueue ( __in ID3D12CommandQueue *  pCommandQueue,
__in NV_OUT_OF_BAND_CQ_TYPE  cqType 
)

DESCRIPTION: Notifies the driver that this command queue runs out of band from the application's frame cadence.

Since
Release: 520
Parameters
[in]pCommandQueueThe D3D12CommandQueue
[in]cqTypeThe type of out of band command queue SUPPORTED OS: Windows 10 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_QueryCpuVisibleVidmem()

NVAPI_INTERFACE NvAPI_D3D12_QueryCpuVisibleVidmem ( __in ID3D12Device *  pDevice,
__out NvU64 pTotalBytes,
__out NvU64 pFreeBytes 
)
Since
Release: 465
DESCRIPTION: NvAPI_D3D12_QueryCpuVisibleVidmem queries total bytes and unused bytes in
cpu visible vdmem
\param [in] pDevice A pointer to D3D12 device.
\param [out] pTotalBytes Total bytes in cpu visible vidmem
\param [out] pFreeBytes Unused bytes in cpu visible vidmem
SUPPORTED OS: Windows 10 and higher
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_QueryModifiedWSupport()

NVAPI_INTERFACE NvAPI_D3D12_QueryModifiedWSupport ( __in ID3D12Device *  pDevice,
__inout NV_QUERY_MODIFIED_W_SUPPORT_PARAMS pQueryModifiedWSupportedParams 
)

DESCRIPTION: Queries the support of Modified-W feature on current setup and returns appropriate boolean value.

SUPPORTED OS: Windows 10

Parameters
[in]pDeviceThe ID3D12Device Device created by application
[in,out]pQueryModifiedWSupportedParamsStores value of whether Modified-W is supported on current setup or not.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

<>

◆ NvAPI_D3D12_QueryPresentBarrierSupport()

NVAPI_INTERFACE NvAPI_D3D12_QueryPresentBarrierSupport ( __in ID3D12Device *  pDevice,
__out bool *  pSupported 
)

SUPPORTED OS: Windows 10 and higher DESCRIPTION: This API returns if presentBarrier feature is supported on the specified device.

Since
Release: 470
Parameters
[in]pDeviceThe ID3D12Device device which owns the SwapChain as a PresentBarrier client.
[out]pSupportedPointer to a boolean returning true if supported, false otherwise.
Returns
NVAPI_OK the call succeeded
NVAPI_ERROR the call failed
NVAPI_NO_IMPLEMENTATION the API is not implemented
NVAPI_INVALID_POINTER an invalid pointer was passed as an argument
Return values
NVAPI_API_NOT_INITIALIZEDNvAPI not initialized

◆ NvAPI_D3D12_QuerySinglePassStereoSupport()

NVAPI_INTERFACE NvAPI_D3D12_QuerySinglePassStereoSupport ( __in ID3D12Device *  pDevice,
__inout NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS pQuerySinglePassStereoSupportedParams 
)

DESCRIPTION: Queries the support of Single Pass Stereo feature on current setup and returns appropriate boolean value.

SUPPORTED OS: Windows 10

Parameters
[in]pDeviceThe IDirect3DDevice12 to use.
[in,out]pQuerySinglePassStereoSupportedParamsStores value of whether Single Pass Stereo is supported on current setup or not.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

<>

◆ NvAPI_D3D12_QueryWorkstationFeatureProperties()

NVAPI_INTERFACE NvAPI_D3D12_QueryWorkstationFeatureProperties ( __in ID3D12Device *  pDevice,
__inout NVAPI_D3D12_WORKSTATION_FEATURE_PROPERTIES_PARAMS pWorkstationFeatureProperties 
)

DESCRIPTION: This API returns information about the properties of specific workstation features on the specified device.

Since
Release: 530
Parameters
[in]pDeviceThe ID3D12Device device which is queried for feature properties
[in,out]pWorkstationFeaturePropertiesPointer to a structure containing workstation feature query information.
Returns
NVAPI_OK the call succeeded
NVAPI_ERROR the call failed
NVAPI_NO_IMPLEMENTATION the API is not implemented
NVAPI_INVALID_POINTER an invalid pointer was passed as an argument
Return values
NVAPI_API_NOT_INITIALIZEDNvAPI not initialized

SUPPORTED OS: Windows 10 and higher

◆ NvAPI_D3D12_RegisterPresentBarrierResources()

NVAPI_INTERFACE NvAPI_D3D12_RegisterPresentBarrierResources ( __in NvPresentBarrierClientHandle  presentBarrierClient,
__in ID3D12Fence *  pFence,
__in ID3D12Resource **  ppResources,
__in NvU32  numResources 
)

SUPPORTED OS: Windows 10 and higher DESCRIPTION: This API registers scanout resources of a presentBarrier client to the presentBarrier, and a fence object which is used for presentBarrier synchronization. Once the registration has completed successfully, it is not allowed to add additional resources, i.e. the number of back buffers and fence object are not allowed to be changed. However, application must call this function whenever the back buffers are changed, e.g. ResizeBuffers() is called.

Since
Release: 470
Parameters
[in]presentBarrierClientThe NvPresentBarrierClientHandle client handle that owns the resources.
[in]pFenceAn ID3D12Fence object created by the application and used for present synchronization through presentBarrier. Application must wait on this fence to ensure the scanout resources are ready for use in the next rendering loop. The fence is only signaled by the driver and must not be signaled through any other queue command. The fence value must be monotonically increasing on every present call, and tracked by the application.
[in]ppResourcesAn array of ID3D12Resource to be synchronized through presentBarrier, and the size is specified by numResources.
[in]numResourcesThe number of ID3D12Resource elements in ppResources.
Returns
NVAPI_OK the call succeeded
NVAPI_ERROR the call failed
NVAPI_NO_IMPLEMENTATION the API is not implemented
NVAPI_INVALID_POINTER an invalid pointer was passed as an argument
NVAPI_INVALID_HANDLE an invalid NvPresentBarrierClientHandle was passed as an argument
NVAPI_INVALID_ARGUMENT an invalid number of resources was passed as an argument
Return values
NVAPI_API_NOT_INITIALIZEDNvAPI not initialized

◆ NvAPI_D3D12_RegisterRaytracingValidationMessageCallback()

NVAPI_INTERFACE NvAPI_D3D12_RegisterRaytracingValidationMessageCallback ( __in ID3D12Device5 *  pDevice,
__in NVAPI_D3D12_RAYTRACING_VALIDATION_MESSAGE_CALLBACK  pfnMessageCallback,
__in_opt void *  pUserData,
__out void **  pHandle 
)

DESCRIPTION: Register a message callback for raytracing validation messages. The provided callback may be invoked by the driver using any thread at any time until the callback is unregistered. It is invalid to register/unregister callbacks from within the callback. It is invalid to create or destroy objects for the device or record commands onto command lists from within the callback.

SUPPORTED OS: Windows 10 and higher

Since
Release: 545
Parameters
[in]pDevicePointer to the device from which to obtain raytracing validation messages.
[in]pfnMessageCallbackCallback used to report validation messages.
[in]pUserData[optional] User data to pass as argument to message callback.
[out]pHandleHandle that may be used to unregister the callback.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_OKCompleted request
NVAPI_INVALID_POINTERA null pointer was passed as an argument

◆ NvAPI_D3D12_RelocateRaytracingDisplacementMicromapArray()

NVAPI_INTERFACE NvAPI_D3D12_RelocateRaytracingDisplacementMicromapArray ( __in ID3D12GraphicsCommandList4 *  pCommandList,
__in const NVAPI_RELOCATE_RAYTRACING_DISPLACEMENT_MICROMAP_ARRAY_PARAMS pParams 
)

DESCRIPTION: Makes the DMM Array usable at its current location in memory. A DMM Array that has been copied to a new location must be relocated using this function before it may be attached to any BLAS.

SUPPORTED OS: Windows 10 and higher

Since
Release: 525
Parameters
[in]pCommandListCommand list on which the command will execute.
[in]pParamsWrapper around the inputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray()

NVAPI_INTERFACE NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray ( __in ID3D12GraphicsCommandList4 *  pCommandList,
__in const NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS pParams 
)

DESCRIPTION: Makes the OMM Array usable at its current location in memory. An OMM Array that has been copied to a new location must be relocated using this function before it may be attached to any BLAS.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pCommandListCommand list on which the command will execute.
[in]pParamsWrapper around the inputs and outputs of the function.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_ReservedResourceGetDesc()

NVAPI_INTERFACE NvAPI_D3D12_ReservedResourceGetDesc ( __in ID3D12Resource *  pReservedResource,
__out D3D12_RESOURCE_DESC *  pDesc 
)
Since
Release: 375
DESCRIPTION: NvAPI_D3D12_ReservedResourceGetDesc is an simple wrapper of ID3D12Resource::GetDesc when pReservedResource is created by NvAPI_D3D12_CreateReservedResource.
Runtime doesn't know the created resource is actually a tiled resource if bTexture2DArrayMipPack = true in NvAPI_D3D12_CreateReservedResource.
So calling ID3D12Resource::GetDesc on such resource will get a desc with D3D12_TEXTURE_LAYOUT_UNKNOWN in Layout instead of D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE.
This wrapper API just set Layout to D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE if Layout is D3D12_TEXTURE_LAYOUT_UNKNOWN.
\param [in] pReservedResource Pointer of reserved resource to get resource desc from.
\param [out] pDesc Pointer to a resource description.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_ResolveSubresourceRegion()

NVAPI_INTERFACE NvAPI_D3D12_ResolveSubresourceRegion ( __in ID3D12GraphicsCommandList1 *  pCommandList,
__in ID3D12Resource *  pDstResource,
__in UINT  DstSubresource,
__in UINT  DstX,
__in UINT  DstY,
__in ID3D12Resource *  pSrcResource,
__in UINT  SrcSubresource,
__in_opt RECT *  pSrcRect,
__in DXGI_FORMAT  Format,
__in NV_RESOLVE_MODE  ResolveMode 
)

SUPPORTED OS: Windows 10 and higher

Since
Release: 410
DESCRIPTION: NvAPI_D3D12_ResolveSubresourceRegion is D3D11 an analog of D3D12 ResolveSubresourceRegion.
\param [in] pDstResource Destination resource. Must be a created with the D3D11_USAGE_DEFAULT flag and be single-sampled.
\param [in] DstSubresource A zero-based index, that identifies the destination subresource. Use D3D11CalcSubresource to calculate the index.
\param [in] DstX The X coordinate of the left-most edge of the destination region.
The width of the destination region is the same as the width of the source rect.
\param [in] DstY The Y coordinate of the top-most edge of the destination region.
The height of the destination region is the same as the height of the source rect.
\param [in] pSrcResource Source resource. Must be multisampled.
\param [in] SrcSubresource The source subresource of the source resource.
\param [in] pSrcRect Specifies the rectangular region of the source resource to be resolved.
Passing NULL for pSrcRect specifies that the entire subresource is to be resolved.
\param [in] Format A DXGI_FORMAT that indicates how the multisampled resource will be resolved to a single-sampled resource.
\param [in] ResolveMode Specifies the operation used to resolve the source samples. NV_RESOLVE_MODE_SAMPLE_0 is the only supported mode.
NV_RESOLVE_MODE_SAMPLE_0 outputs sample 0 and discards all other samples.
\return This API can return any of the error codes enumerated in
#NvAPI_Status. See MSDN for the API specific error codes.
NVAPI_INTERFACE NvAPI_D3D12_ResolveSubresourceRegion(__in ID3D12GraphicsCommandList1 *pCommandList, __in ID3D12Resource *pDstResource, __in UINT DstSubresource, __in UINT DstX, __in UINT DstY, __in ID3D12Resource *pSrcResource, __in UINT SrcSubresource, __in_opt RECT *pSrcRect, __in DXGI_FORMAT Format, __in NV_RESOLVE_MODE ResolveMode)

◆ NvAPI_D3D12_ResourceAliasingBarrier()

NVAPI_INTERFACE NvAPI_D3D12_ResourceAliasingBarrier ( __in ID3D12GraphicsCommandList *  pCommandList,
__in UINT  NumBarriers,
__in const D3D12_RESOURCE_BARRIER *  pBarriers 
)
Since
Release: 375
DESCRIPTION: NvAPI_D3D12_ResourceAliasingBarrier is an extension of ID3D12GraphicsCommandList::ResourceBarrier, but only for D3D12_RESOURCE_ALIASING_BARRIER.
Both resource in pBarriers must be created by NvAPI_D3D12_CreateReservedTexture2DArray.
\param [in] pCommandList A pointer to ID3D12GraphicsCommandList.
\param [in] NumBarriers The number of submitted barrier descriptions.
\param [in] pBarriers Pointer to an array of barrier descriptions with D3D12_RESOURCE_ALIASING_BARRIER type only.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_SetAsyncFrameMarker()

NVAPI_INTERFACE NvAPI_D3D12_SetAsyncFrameMarker ( __in ID3D12CommandQueue *  pCommandQueue,
__in NV_ASYNC_FRAME_MARKER_PARAMS pSetAsyncFrameMarkerParams 
)

DESCRIPTION: Set an async frame marker for present and out-of-band render tracking.

Since
Release: 520
Parameters
[in]pCommandQueueThe D3D12CommandQueue
[in]pSetAsyncFrameMarkerParamsThe async frame marker structure SUPPORTED OS: Windows 10 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_SetCreateCommandQueueLowLatencyHint()

NVAPI_INTERFACE NvAPI_D3D12_SetCreateCommandQueueLowLatencyHint ( __in ID3D12Device *  pDevice)

DESCRIPTION: Reserved call.

Since
Release: 530
Parameters
[in]pDeviceThe creating device SUPPORTED OS: Windows 10 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_SetCreatePipelineStateOptions()

NVAPI_INTERFACE NvAPI_D3D12_SetCreatePipelineStateOptions ( __in ID3D12Device5 *  pDevice,
__in const NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS pState 
)

DESCRIPTION: Globally change the state affecting pipeline creations. This affects all pipelines created after this call, and until this function is called again.

Note
Only supported on GPUs capable of DXR. Some of the flags and fields have further restrictions, in which case their description will include a note with more details.

SUPPORTED OS: Windows 10 and higher

Since
Release: 520
Parameters
[in]pDeviceDevice on which the pipelines will be created.
[in]pStateState to be applied to all future pipeline creations.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D12_SetDepthBoundsTestValues()

NVAPI_INTERFACE NvAPI_D3D12_SetDepthBoundsTestValues ( __in ID3D12GraphicsCommandList *  pCommandList,
__in const float  minDepth,
__in const float  maxDepth 
)
DESCRIPTION: This function will set the minDepth and maxDepth values for depth bounds test
To enable/ disable depth bounds test use PSO extension NV_PSO_ENABLE_DEPTH_BOUND_TEST_EXTENSION
in the nvapi NvAPI_D3D12_CreateGraphicsPipelineState
\param [in] pCommandList Command List to set depth bounds test
\param [in] minDepth min value for depth bound test
\param [in] maxDepth max value for depth bound test
The valid values for minDepth and maxDepth are such that 0 <= minDepth <= maxDepth <= 1
SUPPORTED OS: Windows 10
\return ::NVAPI_OK if the call succeeds.
@ NV_PSO_ENABLE_DEPTH_BOUND_TEST_EXTENSION
Definition nvapi.h:13444

◆ NvAPI_D3D12_SetModifiedWMode()

NVAPI_INTERFACE NvAPI_D3D12_SetModifiedWMode ( __in ID3D12GraphicsCommandList *  pCommandList,
__in NV_MODIFIED_W_PARAMS pModifiedWParams 
)

DESCRIPTION: Set the Modified-W state and A, B coefficients for HW support

Note
Note that Modified-W state persists on a particular CommandList till it is closed. The state is reset to default (disabled) for every newly created CommandList. One must call NvAPI_D3D12_QueryModifiedWSupport() to confirm that the current setup supports Modified-W before calling this set-function.

SUPPORTED OS: Windows 10

Parameters
[in]pCommandListThe command list in which we will add push buffer commmands for enabling Modified-W feature Note: Command list of type D3D12_COMMAND_LIST_TYPE_BUNDLE is not allowed for setting the state of this feature.
[in]pModifiedWParamsModified-W parameters.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

<>

◆ NvAPI_D3D12_SetNvShaderExtnSlotSpace()

NVAPI_INTERFACE NvAPI_D3D12_SetNvShaderExtnSlotSpace ( __in IUnknown *  pDev,
__in NvU32  uavSlot,
__in NvU32  uavSpace 
)

DESCRIPTION: This function is specifically created for ray tracing since we do not currently support PSOs with DXR. This function sets the device's fake UAV slot and space that is used by Nvidia HLSL shader extensions globally. All state objects created by the driver after setting this slot would treat writes/reads to this UAV in a different way. Applications are expected to bind null UAV to this slot. The same slot is used for all shader stages. To disable shader extensions the app need to set this uav slot to 0xFFFFFFFF. To use Nvidia HLSL extensions the application must include nvHLSLExtns.h in the hlsl shader code. See nvHLSLExtns.h for more details.

This function can be called from a different thread than the one calling immediate device setstate functions.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevThe device for which to set the extension slot should be a ID3D12Device+ device
[in]uavSlotThe uav slot to use
[in]uavSpaceThe uav space to use

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Return values
:NVAPI_OK : success, the uavSlot and uavSpace were set sucessfully

◆ NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread()

NVAPI_INTERFACE NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread ( __in IUnknown *  pDev,
__in NvU32  uavSlot,
__in NvU32  uavSpace 
)

DESCRIPTION: This function is specifically created for ray tracing shaders since we do not currently support PSOs with DXR. This function sets the device's fake UAV slot that is used by Nvidia HLSL shader extensions on local thread. All state objects created by the driver on the same thread that call this function after setting this slot would treat writes/reads to this UAV in a different way. Applications are expected to bind null UAV to this slot. The same slot is used for all shader stages for the device. To disable shader extensions the app may set this uav slot to 0xFFFFFFFF. To use Nvidia HLSL extensions the application must include nvHLSLExtns.h in the hlsl shader code. See nvHLSLExtns.h for more details.

This function can be called from a different thread than the one calling immediate device setstate functions.

SUPPORTED OS: Windows 7 and higher

Since
Release: 387
Parameters
[in]pDevThe device for which to set the extension slot should be a ID3D12Device+ device
[in]uavSlotthe uav slot to use
[in]uavSpacethe uav space to use

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

Return values
:NVAPI_OK : success, the uavSlot and uavSpace were set sucessfully

◆ NvAPI_D3D12_SetSinglePassStereoMode()

NVAPI_INTERFACE NvAPI_D3D12_SetSinglePassStereoMode ( __in ID3D12GraphicsCommandList *  pCommandList,
__in NvU32  numViews,
__in NvU32  renderTargetIndexOffset,
__in NvU8  independentViewportMaskEnable 
)

DESCRIPTION: Set the Single Pass Stereo state.

Note
Note that Single Pass Stereo state persists on a particular CommandList till it is closed. The state is reset to default (disabled) for every newly created CommandList. One must call NvAPI_D3D12_QuerySinglePassStereoSupport() to confirm that the current setup supports Single Pass Stereo before calling this set-function.

SUPPORTED OS: Windows 10

Parameters
[in]pCommandListThe command list in which we will add push buffer commmands for enabling Single Pass Stereo feature Note: Command list of type D3D12_COMMAND_LIST_TYPE_BUNDLE is not allowed for setting the state of this feature.
[in]numViewsNumber of views to render.
[in]RenderTargetIndexOffsetOffset between render targets of the different views.
[in]IndependentViewportMaskEnableIs the independent viewport mask enabled.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

◆ NvAPI_D3D12_UnregisterRaytracingValidationMessageCallback()

NVAPI_INTERFACE NvAPI_D3D12_UnregisterRaytracingValidationMessageCallback ( __in ID3D12Device5 *  pDevice,
__in void *  handle 
)

DESCRIPTION: Unregister a previously registered message callback for raytracing validation messages. The provided callback will not be invoked once the unregister call has returned.

SUPPORTED OS: Windows 10 and higher

Since
Release: 545
Parameters
[in]pDevicePointer to the device from which to stop obtaining raytracing validation messages.
[in]handleHandle to which callback should be unregistered, obtained at registration.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_OKCompleted request
NVAPI_INVALID_POINTERA null pointer was passed as device argument
NVAPI_INVALID_ARGUMENTCallback handle not recognized

◆ NvAPI_D3D12_UpdateTileMappings()

NVAPI_INTERFACE NvAPI_D3D12_UpdateTileMappings ( __in ID3D12CommandQueue *  pCommandQueue,
__in ID3D12Resource *  pResource,
__in UINT  NumResourceRegions,
__in const D3D12_TILED_RESOURCE_COORDINATE *  pResourceRegionStartCoordinates,
__in const D3D12_TILE_REGION_SIZE *  pResourceRegionSizes,
__in ID3D12Heap *  pHeap,
__in UINT  NumRanges,
__in const D3D12_TILE_RANGE_FLAGS *  pRangeFlags,
__in const UINT *  pHeapRangeStartOffsets,
__in const UINT *  pRangeTileCounts,
__in D3D12_TILE_MAPPING_FLAGS  Flags 
)
Since
Release: 375
DESCRIPTION: NvAPI_D3D12_UpdateTileMappings is an extension of ID3D12CommandQueue::UpdateTileMappings.
pTiledResource must be created by NvAPI_D3D12_CreateReservedResource.
pTilePool must be created by NvAPI_D3D12_CreateHeap.
\param [in] pCommandQueue A pointer to ID3D12CommandQueue.
\param [in] pTiledResource A pointer to the tiled resource created by NvAPI_D3D12_CreateReservedResource.
\param [in] NumTiledResourceRegions The number of tiled resource regions.
\param [in] pTiledResourceRegionStartCoordinates An array of D3D12_TILED_RESOURCE_COORDINATE structures that describe the starting coordinates of the tiled resource regions. Cannot be NULL.
\param [in] pTiledResourceRegionSizes An array of D3D12_TILE_REGION_SIZE structures that describe the sizes of the tiled resource regions. Cannot be NULL.
\param [in] pTilePool A pointer to the resource heap created by NvAPI_D3D12_CreateHeap.
\param [in] NumRanges The number of tile-pool ranges.
\param [in] pRangeFlags A pointer to an array of D3D12_TILE_RANGE_FLAGS values that describes each tile range.
\param [in] pTilePoolStartOffsets An array of offsets into the tile pool. These are 0-based tile offsets, counting in tiles (not bytes).
\param [in] pRangeTileCounts An array of values that specify the number of tiles in each tile-pool range.
\param [in] Flags A combination of D3D12_TILE_MAPPING_FLAGS values that are combined by using a bitwise OR operation.
SUPPORTED OS: Windows 10
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.

◆ NvAPI_D3D12_UseDriverHeapPriorities()

NVAPI_INTERFACE NvAPI_D3D12_UseDriverHeapPriorities ( __in ID3D12Device *  pDevice)

SUPPORTED OS: Windows 10

DESCRIPTION: Sets the driver to override Microsoft's heap allocation priority values with Nvidia driver priority values. Use this once per process before allocating resources.
\param [in] pDevice The IDirect3DDevice12 to use.
\return This API can return any of the error codes enumerated in
#NvAPI_Status. If there are return error codes with specific
meaning for this API, they are listed below.
\since Release: 381

◆ NvAPI_D3D1x_BindSwapBarrier()

NVAPI_INTERFACE NvAPI_D3D1x_BindSwapBarrier ( IUnknown *  pDevice,
NvU32  group,
NvU32  barrier 
)

DESCRIPTION: This API causes a SwapGroup to be bound to or released from the specified SwapBarrier.

Parameters
[in]pDeviceThe caller provides the D3D device that owns the SwapChain used as a SwapGroup client. pDevice can be either ID3D10Device or ID3D10Device1 or ID3D11Device or ID3D12Device.
[in]groupThe caller specifies the SwapGroup to be bound to the SwapBarrier.
[in]barrierThe caller specifies the SwapBarrier that the SwapGroup should be bound to.
  • If the value of barrier is zero, the SwapGroup releases the SwapBarrier.
  • The SwapGroup will be bound to the SwapBarrier if the value of barrier is a positive integer less than or equal to the maximum number of SwapBarriers queried by NvAPI_D3D1x_QueryMaxSwapGroup. SUPPORTED OS: Windows 7 and higher
Return values
NVAPI_OKthe SwapGroup is bound to the specified SwapBarrier
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D1x_DisableShaderDiskCache()

NVAPI_INTERFACE NvAPI_D3D1x_DisableShaderDiskCache ( IUnknown *  pDevice)

SUPPORTED OS: Windows 7 and higher DESCRIPTION: Disables driver managed caching of shader compilations to disk

Parameters
[in]pDeviceDevice to disabled the shader disk cache on
Return values
NVAPI_OKShader disk cache was disabled
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTArgument passed in is invalid.

◆ NvAPI_D3D1x_GetGraphicsCapabilities()

NVAPI_INTERFACE NvAPI_D3D1x_GetGraphicsCapabilities ( __in IUnknown *  pDevice,
__in NvU32  structVersion,
__inout NV_D3D1x_GRAPHICS_CAPS pGraphicsCaps 
)

DESCRIPTION: Get the graphics capabilities for current hardware/software setup

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pDeviceThe ID3D11Device device to be used for getting the graphics capabilities.
[in]structVersionVersion of the caps struct. Should be set to NV_D3D1x_GRAPHICS_CAPS_VER.
[in,out]pGraphicsCapsPointer to a NV_D3D1x_GRAPHICS_CAPS_CAPS struct created by app. Graphics capabilities will be filled in this struct by the driver.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D1x_JoinSwapGroup()

NVAPI_INTERFACE NvAPI_D3D1x_JoinSwapGroup ( IUnknown *  pDevice,
IDXGISwapChain *  pSwapChain,
NvU32  group,
BOOL  blocking 
)

DESCRIPTION: This API causes the SwapChain of a SwapGroup client to join or leave the specified SwapGroup.

Parameters
[in]pDeviceThe caller provides the D3D device that owns the SwapChain used as a SwapGroup client. pDevice can be either ID3D10Device or ID3D10Device1 or ID3D11Device or ID3D12Device.
[in]pSwapChainThe IDXGISwapChain interface that is used as the SwapGroup client.
[in]groupThe caller specifies the SwapGroup which the SwapChain should join.
  • If the value of group is zero, the SwapChain leaves the SwapGroup.
  • The SwapChain joins a SwapGroup if the SwapGroup number is a positive integer less than or equal to the maximum number of SwapGroups queried by NvAPI_SwapGroup_QueryMaxSwapGroup.
[in]blockingThe caller specifies that a presentation of this SwapChain should return immediately or block until all members of the SwapGroup are ready and the presentation was actually executed. A boolean value of false means the Present operation returns immediately and a value of true means the Present operation is blocking.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKthe SwapChain joined/left the SwapGroup accordingly
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D1x_Present()

NVAPI_INTERFACE NvAPI_D3D1x_Present ( IUnknown *  pDevice,
IDXGISwapChain *  pSwapChain,
UINT  SyncInterval,
UINT  Flags 
)

DESCRIPTION: Presents the contents of the next buffer in the sequence of back buffers owned by a D3D device. This Present operation supports using a SwapGroup and SwapBarrier on the SwapChain that owns the back buffer to be presented.

NOTE: NvAPI_D3D1x_Present is a wrapper of the method IDXGISwapChain::Present which additionally notifies the D3D driver of the SwapChain used by the runtime for presentation, thus allowing the D3D driver to apply SwapGroup and SwapBarrier functionality to that SwapChain.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDeviceThe D3D device interface that is used to issue the Present operation, using the following IDirect3DDevice9::Present input parameters. pDevice can be either ID3D10Device or ID3D10Device1 or ID3D11Device or ID3D12Device.
[in]pSwapChainThe IDXGISwapChain interface that is intended to present
[in]SyncIntervalAn integer that specifies the how to synchronize presentation of a frame with the vertical blank. Values are:
  • 0: The presentation occurs immediately, there is no synchronization.
  • 1,2,3,4 : Synchronize presentation after the n'th vertical blank.
[in]FlagsAn integer value that contains swap-chain presentation options as defined in DXGI_PRESENT.
Return values
NVAPI_OKthe Present operation was successfully executed
NVAPI_DEVICE_BUSYthe Present operation failed with an error DXGI_ERROR_DEVICE_RESET or DXGI_ERROR_DEVICE_REMOVED,
NVAPI_ERRORthe communication with the D3D driver failed, SwapGroup/SwapBarrier may not be possible.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D1x_QueryFrameCount()

NVAPI_INTERFACE NvAPI_D3D1x_QueryFrameCount ( IUnknown *  pDevice,
NvU32 pFrameCount 
)

DESCRIPTION: This API queries the universal framecounter of the Quadro-Sync master device.

Parameters
[in]pDeviceThe caller provides the D3D device that has access to the Quadro-Sync device, pDevice can be either ID3D10Device or ID3D10Device1 or ID3D11Device or ID3D12Device.
[out]pFrameCountThe caller provides the storage space where the framecount is stored.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OK*pFrameCount populated with framecount value.
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D1x_QueryMaxSwapGroup()

NVAPI_INTERFACE NvAPI_D3D1x_QueryMaxSwapGroup ( IUnknown *  pDevice,
NvU32 pMaxGroups,
NvU32 pMaxBarriers 
)

DESCRIPTION: This API queries the number of supported SwapGroups and SwapBarriers in the graphics system.

Parameters
[in]pDeviceThe caller provides the D3D device that is intended to use SwapGroup functionality. pDevice can be either ID3D10Device or ID3D10Device1 or ID3D11Device or ID3D12Device.
[out]pMaxGroupsThe caller provides the storage space where the number of available SwapGroups is stored.
[out]pMaxBarriersThe caller provides the storage space where the number of available SwapBarriers is stored.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKthe number of SwapGroups and SwapBarriers has been stored
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D1x_QuerySwapGroup()

NVAPI_INTERFACE NvAPI_D3D1x_QuerySwapGroup ( IUnknown *  pDevice,
IDXGISwapChain *  pSwapChain,
NvU32 pSwapGroup,
NvU32 pSwapBarrier 
)

DESCRIPTION: This API queries the current SwapGroup and SwapBarrier that a SwapChain of a specific client device is bound to.

Parameters
[in]pDeviceThe caller provides the D3D device that owns the SwapChain used as a SwapGroup client. pDevice can be either ID3D10Device or ID3D10Device1 or ID3D11Device or ID3D12Device.
[in]pSwapChainThe IDXGISwapChain interface that is used as the SwapGroup client.
[out]pSwapGroupThe caller provides the storage space where the current SwapGroup is stored.
[out]pSwapBarrierThe caller provides the storage space where the current SwapBarrier is stored.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKthe current SwapGroup and SwapBarrier has been stored
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D1x_ResetFrameCount()

NVAPI_INTERFACE NvAPI_D3D1x_ResetFrameCount ( IUnknown *  pDevice)

DESCRIPTION: This API resets the universal framecounter on the Quadro-Sync master device.

Parameters
[in]pDeviceThe caller provides the D3D device that has access to the Quadro-Sync device, pDevice can be either ID3D10Device or ID3D10Device1 or ID3D11Device or ID3D12Device.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKframecounter has been reset
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTpDevice arg passed in is invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_AliasSurfaceAsTexture()

NvAPI_D3D9_AliasSurfaceAsTexture ( IDirect3DDevice9 *  pDev,
IDirect3DSurface9 *  pSurface,
IDirect3DTexture9 **  ppTexture,
DWORD  dwFlag 
)

DESCRIPTION: Create a texture that is an alias of a surface registered with NvAPI. The new texture can be bound with IDirect3DDevice9::SetTexture(). Note that the texture must be unbound before drawing to the surface again. Unless the USE_SUPER flag is passed, MSAA surfaces will be resolved before being used as a texture. MSAA depth buffers are resolved with a point filter, and non-depth MSAA surfaces are resolved with a linear filter.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevThe D3D device that owns the objects
[in]pSurfacePointer to a surface that has been registered with NvAPI to which a texture alias is to be provided
[out]ppTextureFill with the texture created
[in]dwFlagNVAPI_ALIAS_SURFACE_FLAG to describe how to handle the texture
Return values
NVAPI_OKcompleted request
NVAPI_INVALID_POINTERA null pointer was passed as an argument
NVAPI_INVALID_ARGUMENTOne of the arguments was invalid, probably dwFlag.
NVAPI_UNREGISTERED_RESOURCEpSurface has not been registered with NvAPI
NVAPI_ERRORerror occurred

◆ NvAPI_D3D9_BindSwapBarrier()

NVAPI_INTERFACE NvAPI_D3D9_BindSwapBarrier ( IDirect3DDevice9 *  pDevice,
NvU32  group,
NvU32  barrier 
)

DESCRIPTION: This API causes a SwapGroup to be bound to or released from the specified SwapBarrier.

Parameters
[in]pDeviceThe caller provides the DirectX 9 device that is used as a swapgroup client
[in]groupThe caller specifies the SwapGroup to be bound to the SwapBarrier.
[in]barrierThe caller specifies the SwapBarrier that the SwapGroup should be bound to.
  • If the value of barrier is zero, the SwapGroup will be released from the SwapBarrier.
  • The SwapGroup will be bound to the SwapBarrier if the value of barrier is a positive integer less than or equal to the maximum number of SwapBarriers queried by NvAPI_SwapGroup_QueryMaxSwapGroup.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKthe SwapGroup is bound to or released from the specified SwapBarrier
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_ClearRT()

NVAPI_INTERFACE NvAPI_D3D9_ClearRT ( IDirect3DDevice9 *  pDevice,
NvU32  dwNumRects,
CONST RECT *  pRects,
float  r,
float  g,
float  b,
float  a 
)

DESCRIPTION: This API Clears the currently bound render target(s) with the given color

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDeviceThe D3D device that owns the objects.
[in]dwNumRectsThe no of rectangles to clear. If 0, clear the entire surface (clipped to viewport)
[in]pRectsDefines the rectangles to clear. Should be NULL if dwNumRects == 0
[in]rred component of the clear color
[in]ggreen component of the clear color
[in]bblue component of the clear color
[in]aalpha component of the clear color
Returns
This API can return any of the error codes enumerated in NvAPI_Status.

◆ NvAPI_D3D9_GetSurfaceHandle()

NVAPI_INTERFACE NvAPI_D3D9_GetSurfaceHandle ( IDirect3DSurface9 *  pSurface,
NVDX_ObjectHandle *  pHandle 
)

SUPPORTED OS: Windows 7 and higher This function gets the handle of a given surface. This handle uniquely identifies the surface through all NvAPI entries.

Since
Release: 313
Parameters
[in]pSurfaceSurface to be identified
[out]pHandleWill be filled by the return handle
Returns
An int which could be an NvAPI status or DX HRESULT code

◆ NvAPI_D3D9_JoinSwapGroup()

NVAPI_INTERFACE NvAPI_D3D9_JoinSwapGroup ( IDirect3DDevice9 *  pDevice,
IDirect3DSwapChain9 *  pSwapChain,
NvU32  group,
BOOL  blocking 
)

DESCRIPTION: This API causes the SwapChain of a SwapGroup client to join or leave the specified SwapGroup.

Parameters
[in]pDeviceThe caller provides the DirectX 9 device that is used as a swapgroup client
[in]pSwapChainThe caller provides the IDirect3DSwapChain9 interface as a handle to the SwapChain
that belongs to the swapgroup client device
[in]groupThe caller specifies the SwapGroup which the SwapChain should join.
  • If the value of group is zero, the SwapChain leaves the SwapGroup.
  • The SwapChain joins a SwapGroup if the SwapGroup number is a positive integer less than or equal to the maximum number of SwapGroups queried by NvAPI_SwapGroup_QueryMaxSwapGroup.
[in]blockingThe caller specifies that a presentation of this SwapChain should return immediately or block until all members of the SwapGroup are ready and the presentation was actually executed. A boolean value of false means the Present operation returns immediately and a value of true means the Present operation is blocking.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKthe SwapChain joined/left the SwapGroup accordingly
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_Present()

NVAPI_INTERFACE NvAPI_D3D9_Present ( IDirect3DDevice9 *  pDevice,
IDirect3DSwapChain9 *  pSwapChain,
const RECT *  pSourceRect,
const RECT *  pDestRect,
HWND  hDestWindowOverride,
const RGNDATA *  pDirtyRegion 
)

DESCRIPTION: This API presents the contents of the next buffer in the sequence of back buffers owned by a IDirect3DDevice9 device. This Present operation supports using a SwapGroup and SwapBarrier on the SwapChain that owns the back buffer to be presented.

NOTE: NvAPI_D3D9_Present is a wrapper of the method IDirect3DDevice9::Present which additionally notifies the D3D driver of the SwapChain used by the runtime for presentation, thus allowing the D3D driver to apply SwapGroup and SwapBarrier functionality to that SwapChain.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDeviceThe IDirect3DDevice9 interface that is used to issue the Present, using the following IDirect3DDevice9::Present input parameters
[in]pSwapChainOptional pointer to a IDirect3DSwapChain9 interface. If provided, the presentation is executed using this interface (i.e. pSwapChain->Present()) for the given swapchain only. If NULL, the presentation is executed on the device for all swapchains as in pDevice->Present()
[in]pSourceRectA pointer to a RECT structure containing the source rectangle. If NULL, the entire source surface is presented.
[in]pDestRectA pointer to a RECT structure containing the destination rectangle, in window client coordinates. If NULL, the entire client area is filled.
[in]hDestWindowOverrideA pointer to a destination window whose client area is taken as the target for this presentation. If this value is NULL, then the hWndDeviceWindow member of D3DPRESENT_PARAMTERS is taken.
[in]pDirtyRegion(IN) A pointer to a region to be presented. It must be NULL unless the swap chain was reated with D3DSWAPEFFECT_COPY. If this value is non-NULL, the contained region is expressed in back buffer coordinates.
Return values
NVAPI_OKthe Present operation was successfully executed
NVAPI_D3D_DEVICE_LOSTD3D device status is D3DERR_DEVICELOST or D3DERR_DEVICENOTRESET, the caller has to reset device
NVAPI_DEVICE_BUSYthe Present operation failed with an error other than D3DERR_DEVICELOST or D3DERR_DEVICENOTRESET
NVAPI_ERRORthe communication with the D3D driver failed, SwapGroup/SwapBarrier may not be possible.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_QueryFrameCount()

NVAPI_INTERFACE NvAPI_D3D9_QueryFrameCount ( IDirect3DDevice9 *  pDevice,
NvU32 pFrameCount 
)

DESCRIPTION: This API queries the universal framecounter of the Quadro-Sync master device.

Parameters
[in]pDeviceThe caller provides the DX9 device that has access to the Quadro-Sync device
[out]pFrameCountThe caller provides the storage space where the framecount is stored.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OK*pFrameCount populated with framecount value.
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_QueryMaxSwapGroup()

NVAPI_INTERFACE NvAPI_D3D9_QueryMaxSwapGroup ( IDirect3DDevice9 *  pDevice,
NvU32 pMaxGroups,
NvU32 pMaxBarriers 
)

DESCRIPTION: This API queries the number of supported SwapGroups and SwapBarriers in the graphics system.

Parameters
[in]pDeviceThe caller provides the DirectX 9 device that is used as a swapgroup client
[out]pMaxGroupsThe caller provides the storage space where the number of available SwapGroups is stored.
[out]pMaxBarriersThe caller provides the storage space where the number of available SwapBarriers is stored.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKthe number of SwapGroups and SwapBarriers has been stored
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_QuerySwapGroup()

NVAPI_INTERFACE NvAPI_D3D9_QuerySwapGroup ( IDirect3DDevice9 *  pDevice,
IDirect3DSwapChain9 *  pSwapChain,
NvU32 pSwapGroup,
NvU32 pSwapBarrier 
)

DESCRIPTION: This API queries the current SwapGroup and SwapBarrier that a SwapChain of a specific client device is bound to.

Parameters
[in]pDeviceThe caller provides the DirectX 9 device that is used as a swapgroup client
[in]pSwapChainThe caller provides the IDirect3DSwapChain9 interface as a handle to the SwapChain
that belongs to the swapgroup client device
[out]pSwapGroupThe caller provides the storage space where the current SwapGroup is stored.
[out]pSwapBarrierThe caller provides the storage space where the current SwapBarrier is stored.

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKthe current SwapGroup and SwapBarrier has been stored
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_RegisterResource()

NVAPI_INTERFACE NvAPI_D3D9_RegisterResource ( IDirect3DResource9 *  pResource)

DESCRIPTION: This API binds a resource (surface/texture) so that it can be retrieved internally by NVAPI.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pResourcesurface/texture
Returns
NVAPI_OK, NVAPI_ERROR

◆ NvAPI_D3D9_ResetFrameCount()

NVAPI_INTERFACE NvAPI_D3D9_ResetFrameCount ( IDirect3DDevice9 *  pDevice)

DESCRIPTION: This API resets the universal framecounter on the Quadro-Sync master device.

Parameters
[in]pDeviceThe caller provides the DX9 device that has access to the Quadro-Sync device

SUPPORTED OS: Windows 7 and higher

Return values
NVAPI_OKframecounter has been reset
NVAPI_ERRORThe operation failed.
NVAPI_INVALID_ARGUMENTOne or more args passed in are invalid.
NVAPI_API_NOT_INITIALIZEDNvAPI was not yet initialized.

◆ NvAPI_D3D9_StretchRectEx()

NVAPI_INTERFACE NvAPI_D3D9_StretchRectEx ( IDirect3DDevice9 *  pDevice,
IDirect3DResource9 *  pSourceResource,
CONST RECT *  pSourceRect,
IDirect3DResource9 *  pDestResource,
CONST RECT *  pDestRect,
D3DTEXTUREFILTERTYPE  Filter 
)

DESCRIPTION: This API copies the contents of the source resource to the destination resource. This function can convert between a wider range of surfaces than IDirect3DDevice9::StretchRect. For example, it can copy from a depth/stencil surface to a texture.

The source and destination resources must be registered with NvAPI before being used with NvAPI_D3D9_StretchRectEx().

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDeviceThe D3D device that owns the objects.
[in]pSourceResourcePointer to the source resource.
[in]pSrcRectDefines the rectangle on the source to copy from. If NULL, copy from the entire resource.
[in]pDestResourcePointer to the destination resource.
[in]pDstRectDefines the rectangle on the destination to copy to. If NULL, copy to the entire resource.
[in]FilterChoose a filtering method: D3DTEXF_NONE, D3DTEXF_POINT, D3DTEXF_LINEAR.
Return values
NVAPI_OKcompleted request
NVAPI_INVALID_POINTERAn invalid pointer was passed as an argument (probably NULL)
NVAPI_INVALID_ARGUMENTOne of the arguments was invalid
NVAPI_UNREGISTERED_RESOURCEa resource was passed in without being registered
NVAPI_ERRORerror occurred

◆ NvAPI_D3D9_UnregisterResource()

NVAPI_INTERFACE NvAPI_D3D9_UnregisterResource ( IDirect3DResource9 *  pResource)

DESCRIPTION: This API unbinds a resource (surface/texture) after use.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pResourcesurface/texture
Returns
NVAPI_OK, NVAPI_ERROR

◆ NvAPI_D3D_BeginResourceRendering()

NvAPI_D3D_BeginResourceRendering ( IUnknown *  pDeviceOrContext,
NVDX_ObjectHandle  obj,
NvU32  Flags 
)

DESCRIPTION: This function tells the driver that the resource will begin to receive updates. It must be used in combination with NvAPI_D3D_EndResourceRendering(). The primary use of this function is allow the driver to initiate early inter-frame synchronization of resources while running in AFR SLI mode.

SUPPORTED OS: Windows 7 and higher

Since
Release: 185
Parameters
[in]pDevIDirect3DDevice9, ID3D10Device, ID3D11Device or ID3D11DeviceContext that is using the resource
[in]objPreviously obtained HV resource handle
[in]FlagsThe flags for functionality applied to resource while being used.
Return values
NVAPI_OKFunction succeeded, if used properly and driver can initiate proper sync'ing of the resources.
NVAPI_INVALID_ARGUMENTBad argument(s) or invalid flag values
NVAPI_INVALID_CALLMismatched begin/end calls

◆ NvAPI_D3D_CreateLateLatchObject()

NVAPI_INTERFACE NvAPI_D3D_CreateLateLatchObject ( __in IUnknown *  pDevice,
__inout NV_D3D_LATELATCH_OBJECT_DESC pLateLatchObjectDesc 
)

DESCRIPTION: Creates a Late Latch Object interface

SUPPORTED OS: Windows 7 and higher

Since
Release: 384
Parameters
[in]pDeviceCurrent ID3D11Device.
[in,out]pLateLatchObjectDescPointer to in/out structure for late latch object creation

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_EndResourceRendering()

NVAPI_INTERFACE NvAPI_D3D_EndResourceRendering ( IUnknown *  pDeviceOrContext,
NVDX_ObjectHandle  obj,
NvU32  Flags 
)

DESCRIPTION: This function tells the driver that the resource is done receiving updates. It must be used in combination with NvAPI_D3D_BeginResourceRendering(). The primary use of this function is allow the driver to initiate early inter-frame syncs of resources while running in AFR SLI mode.

SUPPORTED OS: Windows 7 and higher

Since
Release: 185
Parameters
[in]pDevIDirect3DDevice9, ID3D10Device, ID3D11Device or ID3D11DeviceContext that is using the resource
[in]objPreviously obtained HV resource handle
[in]FlagsReserved, must be zero
Return values
NVAPI_OKFunction succeeded, if used properly and driver can initiate proper sync'ing of the resources.
NVAPI_INVALID_ARGUMENTBad argument(s) or invalid flag values
NVAPI_INVALID_CALLMismatched begin/end calls

◆ NvAPI_D3D_GetCurrentSLIState()

NVAPI_INTERFACE NvAPI_D3D_GetCurrentSLIState ( IUnknown *  pDevice,
NV_GET_CURRENT_SLI_STATE pSliState 
)

DESCRIPTION: This function returns the current SLI state for the specified device. The structure contains the number of AFR groups, the current AFR group index, and what the AFR group index will be for the next frame. pDevice can be either a IDirect3DDevice9 or ID3D10Device pointer.

SUPPORTED OS: Windows 7 and higher

Since
Release: 173
Return values
NVAPI_OKCompleted request
NVAPI_ERRORError occurred

◆ NvAPI_D3D_GetLatency()

NVAPI_INTERFACE NvAPI_D3D_GetLatency ( __in IUnknown *  pDev,
__out NV_LATENCY_RESULT_PARAMS pGetLatencyParams 
)

DESCRIPTION: Get a latency report including the timestamps of the application latency markers set with NvAPI_D3D_SetLatencyMarker as well as driver, OS queue and graphics hardware times. Requires calling NvAPI_D3D_SetLatencyMarker with incrementing frameID for valid results. Rendering for at least 90 frames is recommended to properly fill out the structure. The newest completed frame is at the end (element 63) and is preceeded by older frames. If not enough frames are valid then all frames are returned with all zeroes.

Since
Release: 455
Parameters
[in]pDevThe target device
[in]pGetLatencyParamsThe latency result structure. SUPPORTED OS: Windows 7 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_GetObjectHandleForResource()

NVAPI_INTERFACE NvAPI_D3D_GetObjectHandleForResource ( IUnknown *  pDevice,
IUnknown *  pResource,
NVDX_ObjectHandle *  pHandle 
)

DESCRIPTION: This API gets a handle to a resource.

Parameters
[in]pDevThe ID3D11Device, ID3D10Device or IDirect3DDevice9 or ID3D11DeviceContext to use
[in]pResourceThe ID3D11Resource, ID3D10Resource or IDirect3DResource9 from which we want the NvAPI handle
[out]pHandleA handle to the resource

SUPPORTED OS: Windows 7 and higher

Since
Release: 185
Returns
NVAPI_OK if the handle was populated.

◆ NvAPI_D3D_GetSleepStatus()

NVAPI_INTERFACE NvAPI_D3D_GetSleepStatus ( __in IUnknown *  pDev,
__in NV_GET_SLEEP_STATUS_PARAMS pGetSleepStatusParams 
)

DESCRIPTION: This function can be used to get the latest sleep status: bLowLatencyMode indicates whether low latency mode is currently enabled in the driver. Note that it may not always reflect the previously requested sleep mode, as the feature may not be available on the platform, or the setting has been overridden by the control panel, for example. bFsVrr indicates fullscreen GSYNC or GSYNC Compatible mode. It is valid only when the application is in the foreground. bCplVsyncOn indicates Control Panel VSYNC ON override.

Since
Release: 455
Parameters
[in]pDevThe target device.
[in]pGetSleepStatusParamsSleep status params. SUPPORTED OS: Windows 7 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_ImplicitSLIControl()

NVAPI_INTERFACE NvAPI_D3D_ImplicitSLIControl ( __in IMPLICIT_SLI_CONTROL  implicitSLIControl)

◆ NvAPI_D3D_InitializeNvGazeHandler()

NVAPI_INTERFACE NvAPI_D3D_InitializeNvGazeHandler ( __in IUnknown *  pDevice,
__inout NV_GAZE_HANDLER_INIT_PARAMS pInitializeNvGazeHandlerParams 
)

SUPPORTED OS: Windows 7 and higher DESCRIPTION: Creates an interface for updating and managing gaze data

SUPPORTED OS: Windows 7 and higher

Since
Release: 430
Parameters
[in]pDeviceThe device to be used for creating the Gaze Handler interface
Note
This should be same as the device used with VRS Handler. See also: NvAPI_D3D_InitializeVRSHelper.
Parameters
[in]pInitializeNvGazeHandlerParamsDescriptor for Gaze Data Handler initialization
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D_InitializeSMPAssist()

NVAPI_INTERFACE NvAPI_D3D_InitializeSMPAssist ( __in IUnknown *  pDevice,
__inout NV_SMP_ASSIST_INITIALIZE_PARAMS pSMPAssistInitParams 
)

DESCRIPTION: Initialize SMP Assist extension. Take the SMPAssist(MRS/LMS) params from the application. Provide the application with a interface pointer for future use.

Since
Release: 396
Parameters
[in]pDevicePointer to IUnknown (Currently supports ID3D11Device)
[in,out]pSMPAssistInitParamsSMP Assist initialization params
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne of the required input arguments was NULL

◆ NvAPI_D3D_InitializeVRSHelper()

NVAPI_INTERFACE NvAPI_D3D_InitializeVRSHelper ( __in IUnknown *  pDevice,
__inout NV_VRS_HELPER_INIT_PARAMS pInitializeVRSHelperParams 
)

SUPPORTED OS: Windows 7 and higher DESCRIPTION: Creates an interface for updating, enabling and disabling internally tracked shading rate pattern for Variable Rate Shading

SUPPORTED OS: Windows 7 and higher

Since
Release: 430
Parameters
[in]pDeviceThe device to be used for creating the VRS Handler interface
Note
This should be same the device used for Gaze Handler. See also: NvAPI_D3D_InitializeNvGazeHandler.
Parameters
[in]pInitializeVRSHelperParamsDescriptor for VRS Helper initialization
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

◆ NvAPI_D3D_IsGSyncActive()

NVAPI_INTERFACE NvAPI_D3D_IsGSyncActive ( __in IUnknown *  pDeviceOrContext,
__in NVDX_ObjectHandle  primarySurface,
__out BOOL *  pIsGsyncActive 
)

FUNCTION NAME: NvAPI_D3D_IsGSyncActive DESCRIPTION: This API get the G-Sync state for the given device context. This is only reliable after the first present call has completed. As it is a bit time consuming, It should not be called per frame.

Parameters
[in]pDeviceOrContextThe D3D9, D3D10, D3D11 device, or D3D11 device context
[in]NVDX_ObjectHandleThe handle of primary surface
[out]pIsGsyncActiveif G-Sync is active, *pisGsyncActive is true.

SUPPORTED OS: Windows 7 and higher

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_IsGSyncCapable()

NVAPI_INTERFACE NvAPI_D3D_IsGSyncCapable ( __in IUnknown *  pDeviceOrContext,
__in NVDX_ObjectHandle  primarySurface,
__out BOOL *  pIsGsyncCapable 
)

FUNCTION NAME: NvAPI_D3D_IsGSyncCapable DESCRIPTION: This API gets G-Sync capability for the given device context. This is only reliable after the first present call has completed.

Parameters
[in]pDeviceOrContextThe D3D9, D3D10, D3D11 device, or D3D11 device context
[in]NVDX_ObjectHandleThe handle of primary surface
[out]pIsGsyncCapableif G-Sync can be enabled, *pIsGsyncCapable is true.

SUPPORTED OS: Windows 7 and higher

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_QueryLateLatchSupport()

NVAPI_INTERFACE NvAPI_D3D_QueryLateLatchSupport ( __in IUnknown *  pDevice,
__inout NV_QUERY_LATELATCH_SUPPORT_PARAMS pQueryLateLatchSupportParams 
)

DESCRIPTION: Queries the support of DX11 Late Latch feature on current setup.

SUPPORTED OS: Windows 7 and higher

Since
Release: 384
Parameters
[in]pDeviceCurrent ID3D11Device.
[in,out]pQueryLateLatchSupportParamsStores value of whether Late Latch is supported on current setup or not.

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

<>

◆ NvAPI_D3D_QueryModifiedWSupport()

NVAPI_INTERFACE NvAPI_D3D_QueryModifiedWSupport ( __in IUnknown *  pDev,
__inout NV_QUERY_MODIFIED_W_SUPPORT_PARAMS pQueryModifiedWSupportedParams 
)

DESCRIPTION: Queries the support of Modified W feature on current setup and returns appropriate boolean value.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDeviceThe ID3D11Device to use.
[in,out]pQueryModifiedWSupportedParamsStores value of whether Modified W is supported on current setup or not.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

<>

◆ NvAPI_D3D_QueryMultiViewSupport()

NVAPI_INTERFACE NvAPI_D3D_QueryMultiViewSupport ( __in IUnknown *  pDevice,
__inout NV_QUERY_MULTIVIEW_SUPPORT_PARAMS pQueryMultiViewSupportedParams 
)

DESCRIPTION: Queries the support of MultiView feature on current setup and returns appropriate boolean value.

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pDeviceThe ID3D11Device to use.
[in,out]pMultiViewSupportedParamsStores value of whether MultiView is supported on current setup or not.
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

<>

◆ NvAPI_D3D_QuerySinglePassStereoSupport()

NVAPI_INTERFACE NvAPI_D3D_QuerySinglePassStereoSupport ( __in IUnknown *  pDevice,
__inout NV_QUERY_SINGLE_PASS_STEREO_SUPPORT_PARAMS pQuerySinglePassStereoSupportedParams 
)

DESCRIPTION: Queries the support of Single Pass Stereo feature on current setup and returns appropriate boolean value.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDeviceThe ID3D11Device to use.
[in,out]pSinglePassStereoSupportedParamsStores value of whether Single Pass Stereo is supported on current setup or not.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

<>

◆ NvAPI_D3D_QuerySMPAssistSupport()

NVAPI_INTERFACE NvAPI_D3D_QuerySMPAssistSupport ( __in IUnknown *  pDev,
__inout NV_QUERY_SMP_ASSIST_SUPPORT_PARAMS pQuerySMPAssistSupportParams 
)

SUPPORTED OS: Windows 7 and higher DESCRIPTION: Query SMP assist extension support.

Since
Release: 396
Parameters
[in]pDevPointer to IUnknown (Currently supports ID3D11Device)
[out]pQuerySMPAssistSupportParamsPointer to a structure returning requested SMP assist support
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.
Return values
NVAPI_NOT_SUPPORTEDRequested SMP assist is not supported.
NVAPI_OKCall succeeded. Check value of pQuerySMPAssistSupportParams->bSMPAssistSupported
NVAPI_INVALID_POINTERpDev or pQuerySMPAssistSupportParams was a NULL pointer

◆ NvAPI_D3D_RegisterDevice()

NVAPI_INTERFACE NvAPI_D3D_RegisterDevice ( __in IUnknown *  pDev)

DESCRIPTION: Tells NvAPI about a D3D device. This must be called prior to using any DX1x deferred-context calls.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevThe ID3D10Device or ID3D11Device to use.

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

<>

◆ NvAPI_D3D_SetFPSIndicatorState()

NVAPI_INTERFACE NvAPI_D3D_SetFPSIndicatorState ( IUnknown *  pDev,
NvU8  doEnable 
)

DESCRIPTION: Display an overlay that tracks the number of times the app presents per second, or,
the number of frames-per-second (FPS)

SUPPORTED OS: Windows 7 and higher

Parameters
[in]boolWhether or not to enable the fps indicator.
Returns
NVAPI_OK, NVAPI_ERROR

<>

◆ NvAPI_D3D_SetLatencyMarker()

NVAPI_INTERFACE NvAPI_D3D_SetLatencyMarker ( __in IUnknown *  pDev,
__in NV_LATENCY_MARKER_PARAMS pSetLatencyMarkerParams 
)

DESCRIPTION: Set a latency marker to be tracked by the NvAPI_D3D_GetLatency function. SIMULATION_START must be the first marker sent in a frame, after the previous frame's Sleep call (if used). INPUT_SAMPLE may be sent to record the moment user input was sampled and should come between SIMULATION_START and SIMULATION_END. RENDERSUBMIT_START should come before any Direct3D calls are made for the given frame and RENDERSUBMIT_END should come before calling Present. PRESENT_START and END should wrap the Present call to inform the driver of a present block done by the OS before the driver receives the Present. TRIGGER_FLASH tells the driver to render its flash indicator for latency testing, typically driven by a mouse click. The frameID can start at an abitrary moment in the application lifetime but must strictly increment from that point forward for consistent results.

Since
Release: 455
Parameters
[in]pDevThe target device
[in]pSetLatencyMarkerParamsThe latency marker structure SUPPORTED OS: Windows 7 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_SetModifiedWMode()

NVAPI_INTERFACE NvAPI_D3D_SetModifiedWMode ( __in IUnknown *  pDevOrContext,
__in NV_MODIFIED_W_PARAMS psModifiedWParams 
)

DESCRIPTION: Set the Modified W state and A,B coefficients for HW support

Note
Note that this is an asynchronous function and returns NVAPI_OK if all arguments are valid. Returned value NVAPI_OK does not reflect that Modified-W is supported or is set in hardware. One must call NvAPI_D3D_QueryModifiedWSupport() to confirm that the current setup supports Modified-W before calling this set-function.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevOrContextThe ID3D11Device or ID3D11DeviceContext to use.
[in]psModifiedWParamsModified W parameters.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

<>

◆ NvAPI_D3D_SetMultiViewMode()

NVAPI_INTERFACE NvAPI_D3D_SetMultiViewMode ( __in IUnknown *  pDevOrContext,
__in NV_MULTIVIEW_PARAMS pMultiViewParams 
)

DESCRIPTION: Set the MultiView state

Note
Note that this is an asynchronous function and returns NVAPI_OK if all arguments are valid. Returned value NVAPI_OK does not reflect that MultiView is supported or is set in hardware. One must call NvAPI_D3D_QueryMultiViewSupport() to confirm that the current setup supports MultiView before calling this set-function.

SUPPORTED OS: Windows 7 and higher

Since
Release: 410
Parameters
[in]pDevOrContextThe ID3D11Device or ID3D11DeviceContext to use.
[in]pMultiViewParamsMultiView Params
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below. (none)

<>

◆ NvAPI_D3D_SetReflexSync()

NVAPI_INTERFACE NvAPI_D3D_SetReflexSync ( __in IUnknown *  pDev,
__in NV_SET_REFLEX_SYNC_PARAMS pSetReflexSyncParams 
)

DESCRIPTION: This function can be used to enable/disable Reflex Sync, and to pass in essential data for the Reflex Sync operation.

Since
Release: 530
Parameters
[in]pDevThe target device.
[in]pSetReflexSyncParamsReflex Sync params. SUPPORTED OS: Windows 10 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status.

◆ NvAPI_D3D_SetResourceHint()

NvAPI_D3D_SetResourceHint ( IUnknown *  pDev,
NVDX_ObjectHandle  obj,
NVAPI_D3D_SETRESOURCEHINT_CATEGORY  dwHintCategory,
NvU32  dwHintName,
NvU32 pdwHintValue 
)

DESCRIPTION: This is a general purpose function for passing down various resource related hints to the driver. Hints are divided into categories and types within each category. For DX11 devices this function is free-threaded. An application is responsible to complete this call before making use of the resource in a rendering context (therefore applying inter-thread synchronization as appropriate). As a debug help to an application the driver enforces that a resource in this call was never bound.

SUPPORTED OS: Windows 7 and higher

Since
Release: 185
Parameters
[in]pDevThe ID3D10Device or IDirect3DDevice9 that is a using the resource
[in]objPreviously obtained HV resource handle
[in]dwHintCategoryCategory of the hints
[in]dwHintNameA hint within this category
[in/out]*pdwHintValue Pointer to location containing hint value, function returns previous hint value in this slot
Returns
an int which could be an NvAPI status or DX HRESULT code
Return values
NVAPI_OK
NVAPI_INVALID_ARGUMENT
NVAPI_INVALID_CALLIt is illegal to change a hint dynamically when the resource is already bound.

◆ NvAPI_D3D_SetSinglePassStereoMode()

NVAPI_INTERFACE NvAPI_D3D_SetSinglePassStereoMode ( __in IUnknown *  pDevOrContext,
__in NvU32  numViews,
__in NvU32  renderTargetIndexOffset,
__in NvU8  independentViewportMaskEnable 
)

DESCRIPTION: Set the Single Pass Stereo state

Note
Note that this is an asynchronous function and returns NVAPI_OK if all arguments are valid. Returned value NVAPI_OK does not reflect that Single Pass Stereo is supported or is set in hardware. One must call NvAPI_D3D_QuerySinglePassStereoSupport() to confirm that the current setup supports Single Pass Stereo before calling this set-function.

SUPPORTED OS: Windows 7 and higher

Parameters
[in]pDevOrContextThe ID3D11Device or ID3D11DeviceContext to use.
[in]numViewsNumber of views to render.
[in]renderTargetIndexOffsetOffset between render targets of the different views.
[in]independentViewportMaskEnableIs the independent viewport mask enabled.
Return values
NVAPI_OKCall succeeded.
NVAPI_ERRORCall failed.
NVAPI_INVALID_ARGUMENTOne or more arguments are invalid.

<>

◆ NvAPI_D3D_SetSleepMode()

NVAPI_INTERFACE NvAPI_D3D_SetSleepMode ( __in IUnknown *  pDev,
__in NV_SET_SLEEP_MODE_PARAMS pSetSleepModeParams 
)

DESCRIPTION: This function can be used to update sleep mode dynamically. The settings are not dependent to each other, meaning low latency mode can be enabled/disabled regardless of whether minimum interval is set or not. The former is to intelligently lower latency without impacting frame rate. The later is to limit frame rate (e.g. minimumIntervalUs = 10000 limits frame rate to 100 FPS). They work well separately and/or together. Note that minimumIntervalUs usage is not limited to lowering latency, so feel free to use it to limit frame rate for menu, cut scenes, etc. Note that low latency mode can be enabled, and/or minimum interval can be set, even without using NvAPI_D3D_Sleep(). However, without it, the sleep to achieve these features would happen at a less optimal point, resulting in higher overall latency. The bLowLatencyBoost will request the GPU run at max clocks even in scenarios where it is idle most of the frame and would normally try to save power. This can decrease latency in CPU-limited scenarios. While this function can be called as often as needed, it is not necessary nor recommended to call this too frequently (e.g. every frame), as the settings persist for the target device.

Since
Release: 455
Parameters
[in]pDevThe target device.
[in]pSetSleepModeParamsSleep mode params. SUPPORTED OS: Windows 7 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_SetVerticalSyncMode()

NVAPI_INTERFACE NvAPI_D3D_SetVerticalSyncMode ( __in IUnknown *  pDevice,
__in NVAPI_VSYNC_MODE  vsyncMode 
)

DESCRIPTION: This API set the vertical sync mode for the given device context.

Parameters
[in]pDeviceThe caller provides the device and can be either IDirect3DDevice9 or ID3D10Device or ID3D10Device1 or ID3D11Device.
[in]vsyncModeThe caller specifies the NVAPI_VSYNC_MODE to be set.

SUPPORTED OS: Windows Vista

RETURN STATUS: This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_D3D_Sleep()

NVAPI_INTERFACE NvAPI_D3D_Sleep ( __in IUnknown *  pDev)

DESCRIPTION: It is recommended to call this function at the very start of each frame (e.g. before input sampling). If there is a need to sleep, due to frame rate limit and/or low latency features, for example, this call provides an entry point for the driver to sleep at the most optimal spot to achieve the lowest latency. It is recommended to call this function even when low latency mode is disabled and minimum interval is 0. Other features, such as Maximum Frame Rate setting, could be enabled in the control panel to benefit from this. It is OK to start (or stop) using this function at any time. However, when using this function, it must be called exactly once on each frame. If this function is not called, after several frames, the driver would fallback to sleep at its less optimal spot.

Since
Release: 455
Parameters
[in]pDevThe target device. SUPPORTED OS: Windows 7 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status. If there are return error codes with specific meaning for this API, they are listed below.

◆ NvAPI_DirectD3D12GraphicsCommandList_Create()

NVAPI_INTERFACE NvAPI_DirectD3D12GraphicsCommandList_Create ( __in ID3D12GraphicsCommandList *  pDXD3D12GraphicsCommandList,
__out INvAPI_DirectD3D12GraphicsCommandList **  ppReturnD3D12GraphicsCommandList 
)

DESCRIPTION: Create the NvAPI_DirectD3D12GraphicsCommandList handle. This function must be called after ID3D12Device::CreateCommandList.

Parameters
[in]pDXD3D12GraphicsCommandListThe ID3D12GraphicsCommandList
[out]ppReturnD3D12GraphicsCommandListThe corresponding NvAPI_DirectD3D12GraphicsCommandList handle SUPPORTED OS: Windows 10 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status.

◆ NvAPI_DirectD3D12GraphicsCommandList_Release()

NVAPI_INTERFACE NvAPI_DirectD3D12GraphicsCommandList_Release ( __in INvAPI_DirectD3D12GraphicsCommandList pD3D12GraphicsCommandList)

DESCRIPTION: release the NvAPI_DirectD3D12GraphicsCommandList handle.

Parameters
[in]pD3D12GraphicsCommandListThe NvAPI_DirectD3D12GraphicsCommandList handle to release SUPPORTED OS: Windows 10 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status.

◆ NvAPI_DirectD3D12GraphicsCommandList_Reset()

NVAPI_INTERFACE NvAPI_DirectD3D12GraphicsCommandList_Reset ( __in INvAPI_DirectD3D12GraphicsCommandList pD3D12GraphicsCommandList)

DESCRIPTION: reset the NvAPI_DirectD3D12GraphicsCommandList handle. This function must be called after ID3D12GraphicsCommandList::Reset() and before any other NvAPI_Direct function calls such as dispatchGraphics() etc.

Parameters
[in]pD3D12GraphicsCommandListThe NvAPI_DirectD3D12GraphicsCommandList handle to reset SUPPORTED OS: Windows 10 and higher
Returns
This API can return any of the error codes enumerated in NvAPI_Status.