DXGK_DIAG_DISPLAY_SAMPLED_GAMMA structure (dispmprt.h)

The DXGK_DIAG_DISPLAY_SAMPLED_GAMMA structure provides gamma samples during diagnostic data collection.

Syntax

typedef struct _DXGK_DIAG_DISPLAY_SAMPLED_GAMMA {
        float Red[MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS];
        float Green[MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS];
        float Blue[MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS];
        float ColorMatrix[3][3];
} DXGK_DIAG_DISPLAY_SAMPLED_GAMMA;

Members

[out] Red[MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS]

MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS gamma samples from the red channel, where the samples are equally spaced as much as is possible.

[out] Green[MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS]

MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS gamma samples from the green channel, where the samples are equally spaced as much as is possible.

[out] Blue[MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS]

MAX_NUM_OF_GAMMA_SAMPLES_FOR_DIAGNOSTICS gamma samples from the blue channel, where the samples are equally spaced as much as is possible.

[out] ColorMatrix[3]

A 3X3 matrix should contain any global scalar multiplier baked in if applicable. If the driver has 3X4 matrix then it is ok to just ignore the last column.

Remarks

The DXGK_DIAG_DISPLAY_SAMPLED_GAMMA structure is a member of the DXGK_DISPLAYSTATE_INTRUSIVE structure, which is passed in calls to DxgkDdiGetDisplayStateIntrusive during diagnostic data collection.

In Windows 10 version 2004 and later, the gamma and CSC matrix requested by the operating system is global and not per plane. For the sampled gamma values, drivers should return the gamma/LUT values from the re-gamma stage so that the OS can get as close to the final gamma curve being applied on the pixels going out of the wire. If internally the drivers have any per plane gamma/LUT then they should just return the values for plane 0. Drivers should not do any complex calculations for the sampled gamma values for the diagnostic interface.

Requirements

Requirement Value
Minimum supported client Windows 10, version 2004
Header dispmprt.h

See also

DXGK_DISPLAYSTATE_INTRUSIVE

DXGKARG_GETDISPLAYSTATEINTRUSIVE

DxgkDdiGetDisplayStateIntrusive