D3DDEVINFO_D3D9INTERFACETIMINGS structure

Percent of time processing data in the driver. These statistics may help identify cases when the driver is waiting for other resources.

Syntax

typedef struct D3DDEVINFO_D3D9INTERFACETIMINGS {
  FLOAT WaitingForGPUToUseApplicationResourceTimePercent;
  FLOAT WaitingForGPUToAcceptMoreCommandsTimePercent;
  FLOAT WaitingForGPUToStayWithinLatencyTimePercent;
  FLOAT WaitingForGPUExclusiveResourceTimePercent;
  FLOAT WaitingForGPUOtherTimePercent;
} D3DDEVINFO_D3D9INTERFACETIMINGS, *LPD3DDEVINFO_D3D9INTERFACETIMINGS;

Members

WaitingForGPUToUseApplicationResourceTimePercent

Type: FLOAT

Percentage of time the driver spent waiting for the GPU to finish using a locked resource (and D3DLOCK_DONOTWAIT wasn't specified).

WaitingForGPUToAcceptMoreCommandsTimePercent

Type: FLOAT

Percentage of time the driver spent waiting for the GPU to finish processing some commands before the driver could send more. This indicates the driver has run out of room to send commands to the GPU.

WaitingForGPUToStayWithinLatencyTimePercent

Type: FLOAT

Percentage of time the driver spent waiting for the GPU latency to reduce to less than three rendering frames.

If an application is GPU-limited, the driver must stall the CPU until the GPU gets within three frames. This prevents an application from queuing up many seconds' worth of rendering calls which may dramatically increase the latency between when the user inputs new data and when the user sees the results of that input. In general, the driver can track the number of times Present is called to prevent queuing up more than three frames of rendering work.

WaitingForGPUExclusiveResourceTimePercent

Type: FLOAT

Percentage of time the driver spent waiting for a resource that cannot be pipelined (that is operated in parallel). An application may want to avoid using a non-pipelined resource for performance reasons.

WaitingForGPUOtherTimePercent

Type: FLOAT

Percentage of time the driver spent waiting for other GPU processing.

Remarks

These metrics help identify when a driver is waiting and what it is waiting for. High percentages are not necessarily a problem.

These system-global metrics may or may not be implemented. Depending on the specific hardware, these metrics may not support multiple queries simultaneously.

Requirements

Requirement Value
Header
D3D9Types.h

See also

Direct3D Structures

GetData