ID3D12Debug3::SetEnableSynchronizedCommandQueueValidation method (d3d12sdklayers.h)

Enables or disables dependent command queue synchronization when using a Direct3D 12 device with the debug layer enabled.

Syntax

void SetEnableSynchronizedCommandQueueValidation(
  BOOL Enable
);

Parameters

Enable

Type: BOOL

TRUE to enable Dependent Command Queue Synchronization, otherwise FALSE.

Return value

None

Remarks

Dependent Command Queue Synchronization is a D3D12 Debug Layer feature that gives the debug layer the ability to track resource states more accurately when enabled. Dependent Command Queue Synchronization is enabled by default.

When Dependent Command Queue Synchronization is enabled, the debug layer holds back actual submission of GPU work until all outstanding fence Wait conditions are met. This gives the debug layer the ability to make reasonable assumptions about GPU state (such as resource states) on the CPU-timeline when multiple command queues are potentially doing concurrent work.

With Dependent Command Queue Synchronization disabled, all resource states tracked by the debug layer are cleared each time ID3D12CommandQueue::Signal is called. This results in significantly less useful resource state validation.

Disabling Dependent Command Queue Synchronization may reduce some debug layer performance overhead when using multiple command queues. However, it is suggested to leave it enabled unless this overhead is problematic. Note that applications that use only a single command queue will see no performance changes with Dependent Command Queue Synchronization disabled.

Requirements

Requirement Value
Minimum supported client Windows 10 Build 20348
Minimum supported server Windows 10 Build 20348
Target Platform Windows
Header d3d12sdklayers.h

See also

ID3D12Debug3