Driver Commands
Enums
- 
enum class Drv3dCommand
 Values:
- 
enumerator GETVISIBILITYBEGIN
 
- 
enumerator GETVISIBILITYEND
 
- 
enumerator GETVISIBILITYCOUNT
 
- 
enumerator RELEASE_QUERY
 
- 
enumerator ACQUIRE_OWNERSHIP
 acquire/release D3D lock (to perform rendering in non-primary thread)
- 
enumerator RELEASE_OWNERSHIP
 
- 
enumerator ACQUIRE_LOADING
 acquire/release a mutex to perform resource loading in non-primary thread and postpone GPU resets, the lock is nonexclusive.
- 
enumerator RELEASE_LOADING
 
- 
enumerator GET_GPU_FRAME_TIME
 
- 
enumerator GET_VSYNC_REFRESH_RATE
 
- 
enumerator ASYNC_PIPELINE_COMPILE_RANGE_BEGIN
 
- 
enumerator ASYNC_PIPELINE_COMPILE_RANGE_END
 
- 
enumerator GET_PIPELINE_COMPILATION_QUEUE_LENGTH
 
- 
enumerator ASYNC_PIPELINE_COMPILATION_FEEDBACK_BEGIN
 
- 
enumerator ASYNC_PIPELINE_COMPILATION_FEEDBACK_END
 
- 
enumerator TIMESTAMPFREQ
 
- 
enumerator TIMESTAMPISSUE
 
- 
enumerator TIMESTAMPGET
 
- 
enumerator TIMECLOCKCALIBRATION
 Gets CPU and GPU time nearly at the same moment.
- 
enumerator FLUSH_STATES
 
- 
enumerator D3D_FLUSH
 
- 
enumerator GPU_BARRIER_WAIT_ALL_COMMANDS
 
- 
enumerator COMPILE_PIPELINE
 flush pipeline states to compile pipeline
- 
enumerator GET_SECONDARY_BACKBUFFER
 
- 
enumerator GET_VENDOR
 
- 
enumerator OVERRIDE_MAX_ANISOTROPY_LEVEL
 
- 
enumerator MAKE_TEXTURE
 
- 
enumerator GET_TEXTURE_HANDLE
 
- 
enumerator BEGIN_EXTERNAL_ACCESS
 
- 
enumerator END_EXTERNAL_ACCESS
 
- 
enumerator SET_VS_DEBUG_INFO
 
- 
enumerator SET_PS_DEBUG_INFO
 
- 
enumerator BEGIN_MRT_CLEAR_SEQUENCE
 
- 
enumerator END_MRT_CLEAR_SEQUENCE
 
- 
enumerator GET_SHADER_CACHE_UUID
 
- 
enumerator AFTERMATH_MARKER
 
- 
enumerator START_CAPTURE_FRAME
 
- 
enumerator IS_HDR_AVAILABLE
 
- 
enumerator IS_HDR_ENABLED
 
- 
enumerator INT10_HDR_BUFFER
 
- 
enumerator HDR_OUTPUT_MODE
 
- 
enumerator GET_LUMINANCE
 
- 
enumerator MEM_STAT
 
- 
enumerator REGISTER_SHADER_DUMP
 
- 
enumerator GET_SHADER
 
- 
enumerator PIX_GPU_BEGIN_CAPTURE
 
- 
enumerator PIX_GPU_END_CAPTURE
 
- 
enumerator PIX_GPU_CAPTURE_NEXT_FRAMES
 
- 
enumerator PIX_GPU_CAPTURE_AFTER_LONG_FRAMES
 
- 
enumerator GET_FRAMERATE_LIMITING_FACTOR
 
- 
enumerator LOAD_PIPELINE_CACHE
 
- 
enumerator SAVE_PIPELINE_CACHE
 
- 
enumerator GET_STREAMLINE
 
- 
enumerator GET_DLSS
 
- 
enumerator GET_XESS_STATE
 
- 
enumerator IS_XESS_QUALITY_AVAILABLE_AT_RESOLUTION
 
- 
enumerator GET_XESS_RESOLUTION
 
- 
enumerator GET_XESS_VERSION
 
- 
enumerator EXECUTE_DLSS_NO_STREAMLINE
 
- 
enumerator EXECUTE_DLSS
 
- 
enumerator EXECUTE_DLSS_G
 
- 
enumerator EXECUTE_XESS
 
- 
enumerator SET_XESS_VELOCITY_SCALE
 
- 
enumerator GET_XESS_SUPPORTED_GEN_FRAMES
 
- 
enumerator GET_XESS_PRESENTED_FRAME_COUNT
 
- 
enumerator GET_XESS_FG_ENABLED
 
- 
enumerator XESS_ENABLE_FG
 
- 
enumerator XESS_SUPPRESS_FG
 
- 
enumerator XESS_SCHEDULE_GEN_FRAME
 
- 
enumerator EXECUTE_FSR
 
- 
enumerator EXECUTE_FSR_FG
 
- 
enumerator EXECUTE_FSR2
 
- 
enumerator GET_FSR2_STATE
 
- 
enumerator GET_FSR2_RESOLUTION
 
- 
enumerator EXECUTE_PSSR
 
- 
enumerator GET_METALFX_UPSCALE_STATE
 
- 
enumerator EXECUTE_METALFX_UPSCALE
 
- 
enumerator GET_TIMINGS
 
- 
enumerator GET_RAYTRACE_ACCELERATION_STRUCTURES_MEMORY_USAGE
 
- 
enumerator DEBUG_MESSAGE
 
- 
enumerator GET_MONITORS
 
- 
enumerator GET_MONITOR_INFO
 
- 
enumerator GET_RESOLUTIONS_FROM_MONITOR
 
- 
enumerator GET_VIDEO_MEMORY_BUDGET
 Returns video memory budget in KiByte values par1: pointer to uint32_t: Total memory budget on the device, possibly less than physical memory of the device par2: pointer to uint32_t: Free memory budget on the device, this is *par1 minus used memory par3: pointer to uint32_t: Used memory, this is *par1 minus *par2 Return: uint32_t: Physical memory of the device
- 
enumerator GET_RENDERING_COMMAND_QUEUE
 
- 
enumerator GET_INSTANCE
 
- 
enumerator GET_PHYSICAL_DEVICE
 
- 
enumerator GET_QUEUE_FAMILY_INDEX
 
- 
enumerator GET_QUEUE_INDEX
 
- 
enumerator PROCESS_APP_INACTIVE_UPDATE
 
- 
enumerator BEGIN_GENERIC_RENDER_PASS_CHECKS
 
- 
enumerator END_GENERIC_RENDER_PASS_CHECKS
 
- 
enumerator REGISTER_FRAME_COMPLETION_EVENT
 
- 
enumerator REGISTER_ONE_TIME_FRAME_EXECUTION_EVENT_CALLBACKS
 
- 
enumerator REPORT_RESOURCE_STATE_TRANSITIONS
 
- 
enumerator REGISTER_DEVICE_RESET_EVENT_HANDLER
 
- 
enumerator UNREGISTER_DEVICE_RESET_EVENT_HANDLER
 
- 
enumerator PREPARE_TEXTURES_FOR_VR_CONSUMPTION
 
- 
enumerator SET_APP_INFO
 
- 
enumerator SEND_GPU_CRASH_DUMP
 
- 
enumerator PROCESS_PENDING_RESOURCE_UPDATED
 
- 
enumerator GET_PS5_PSSR_STATUS
 
- 
enumerator SET_FREQ_LEVEL
 
- 
enumerator ENABLE_IMMEDIATE_FLUSH
 
- 
enumerator DISABLE_IMMEDIATE_FLUSH
 
- 
enumerator GET_WORKER_CPU_CORE
 
- 
enumerator SET_PS5_FSR_VIEW
 
- 
enumerator SET_HDR
 
- 
enumerator DEBUG_BREAK
 
- 
enumerator ADD_DEBUG_BREAK_STRING_SEARCH
 
- 
enumerator REMOVE_DEBUG_BREAK_STRING_SEARCH
 
- 
enumerator IS_DEFRAG_REQUESTED
 
- 
enumerator PROCESS_PENDING_DEFRAG_REQUESTS
 
- 
enumerator CONVERT_TLAS_INSTANCES
 
- 
enumerator COMPILE_PIPELINE_SET
 
- 
enumerator GET_BUFFER_GPU_ADDRESS
 
- 
enumerator ENABLE_WORKER_LOW_LATENCY_MODE
 
- 
enumerator LOGERR_ON_SYNC
 
- 
enumerator SET_DRIVER_NETWORD_MANAGER
 
- 
enumerator GET_CONSOLE_HFR_STATUS
 
- 
enumerator GET_CONSOLE_HFR_SUPPORTED
 
- 
enumerator GET_RESOURCE_STATISTICS
 
- 
enumerator GET_PS5_COMPACTED_BLAS_SIZE
 
- 
enumerator CREATE_GPU_LATENCY
 
- 
enumerator DELAY_SYNC
 
- 
enumerator CONTINUE_SYNC
 
- 
enumerator CHANGE_QUEUE
 
- 
enumerator IS_PIX_CAPTURE_LOADED
 
- 
enumerator SET_RT_VALIDATION_CALLBACK
 
- 
enumerator CAUSE_GPU_PAGE_FAULT
 
- 
enumerator USER
 
- 
enumerator GETVISIBILITYBEGIN
 
- 
struct FrameEvents
 - #include <dag_commands.h>
 
- 
struct DeviceResetEventHandler
 - #include <dag_commands.h>
 
- 
struct Drv3dTimings
 - #include <dag_commands.h>
Public Members
- 
long long frontendUpdateScreenInterval
 
- 
long long frontendToBackendUpdateScreenLatency
 
- 
long long frontendBackendWaitDuration
 
- 
long long backendFrontendWaitDuration
 
- 
long long gpuWaitDuration
 
- 
long long presentDuration
 
- 
long long backbufferAcquireDuration
 
- 
long long frontendWaitForSwapchainDuration
 
 - 
long long frontendUpdateScreenInterval
 
- 
struct CompilePipelineSet
 - #include <dag_commands.h>
All values are optional, but graphics and mesh pipelines can not be created without output and render state sets.
Public Members
- 
const char *defaultFormat
 V1 and V2 value. When not specified, the driver assumes its driver specific format (if supported) and otherwise engine.
- 
const DataBlock *featureSet
 V1 and V2 block. A block with a set of feature sets referenced by pipelines in the pipeline sets to indicate required features.
- 
const DataBlock *inputLayoutSet
 V1 and V2 block. A block with a set of blocks describing input layouts.
- 
const DataBlock *renderStateSet
 V1 and V2 block. A block with a set of blocks describing render states. The driver will ignore render states that are incompatible with the system.
- 
const DataBlock *outputFormatSet
 V1 and V2 block. A block with a set of blocks describing output format states. The driver will ignore output format states that are incompatible wit the system.
- 
const DataBlock *graphicsPipelineSet
 V1 block. A block with a set of blocks describing graphics pipelines. The driver will ignore pipelines using unsupported input layouts, render states or output formats.
- 
const DataBlock *meshPipelineSet
 V1 block. A block with a set of blocks describing mesh pipelines. The driver will ignore pipelines using unsupported render states or output formats.
- 
const DataBlock *computePipelineSet
 V1 block. A block with a set of blocks describing compute pipelines.
- 
const DataBlock *signature
 V2 block, this block stores shader class signatures, this ensures we try not to load incompatible shader class uses.
 - 
const char *defaultFormat
 
- 
struct Drv3dMakeTextureParams
 - #include <dag_commands.h>
 
- 
namespace d3d
 Functions
- 
int driver_command(Drv3dCommand command, void *par1 = nullptr, void *par2 = nullptr, void *par3 = nullptr)
 send specific command to driver
- 
int driver_command(Drv3dCommand command, void *par1 = nullptr, void *par2 = nullptr, void *par3 = nullptr)