D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE enumeration (d3d12sdklayers.h)

Specifies the type of shader patching used by GPU-Based Validation at either the device or command list level.

Syntax

typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
  D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0,
  D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY,
  D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION,
  D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION,
  NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES
} ;

Constants

 
D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE
Value: 0
No shader patching is to be done. This will retain the original shader bytecode. Can lead to errors in some of the GPU-Based Validation state tracking as the unpatched shader may still change resource state (see Common state promotion) but the promotion will be untracked without patching the shader. This can improve performance but no validation will be performed and may also lead to misleading GPU-Based Validation errors. Use this mode very carefully.
D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY
Shaders can be patched with resource state tracking code but no validation. This may improve performance but no validation will be performed.
D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION
The default. Shaders are patched with validation code but erroneous instructions will still be executed.
D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION
Shaders are patched with validation code and erroneous instructions are skipped in execution. This can help avoid crashes or device removal.
NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES
Unused, simply the count of the number of modes.

Remarks

This enum is used by the D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS structure.

Requirements

Requirement Value
Header d3d12sdklayers.h

See also

Debug Layer Enumerations

Using D3D12 Debug Layer GPU-Based Validation