DXGK_PRESENTFLAGS structure (d3dkmddi.h)

The DXGK_PRESENTFLAGS structure identifies, in bit-field flags, the type of present operation to perform.

Syntax

typedef struct _DXGK_PRESENTFLAGS {
  union {
    struct {
      UINT Blt : 1;
      UINT ColorFill : 1;
      UINT Flip : 1;
      UINT FlipWithNoWait : 1;
      UINT SrcColorKey : 1;
      UINT DstColorKey : 1;
      UINT LinearToSrgb : 1;
      UINT Rotate : 1;
      UINT FlipStereo : 1;
      UINT FlipStereoTemporaryMono : 1;
      UINT FlipStereoPreferRight : 1;
      UINT BltStereoUseRight : 1;
      UINT FlipWithMultiPlaneOverlay : 1;
      UINT RedirectedFlip : 1;
#if ...
      UINT Reserved : 18;
#elif
      UINT Reserved : 19;
#else
      UINT Reserved : 24;
#endif
    };
    [in] UINT Value;
  };
} DXGK_PRESENTFLAGS;

Members

[in] Blt

A UINT value that specifies whether a copy operation, instead of a flip operation, occurs between source and destination surfaces.

Setting this member is equivalent to setting the first bit of the 32-bit Value member (0x00000001).

[in] ColorFill

A UINT value that specifies whether a source exists to present from. If this member is set, no source exists, and the driver should fill the destination rectangle on the destination surface with the A8R8G8B8 color that the Color member of the DXGKARG_PRESENT structure specifies.

Setting this member is equivalent to setting the second bit of the 32-bit Value member (0x00000002).

[in] Flip

A UINT value that specifies whether a flip operation occurs between back and primary surfaces. If this member is set, the driver should perform the present operation by pointing the video scan output to the source rather than copying from the source to the destination. This type of present operation is tear-free.

Setting this member is equivalent to setting the third bit of the 32-bit Value member (0x00000004).

[in] FlipWithNoWait

A UINT value that specifies whether tear-free flip operations should not stall the graphics pipeline. If a tear-free flip stalls the graphics pipeline, the graphics processing unit (GPU) must wait for the tear-free flip to take effect before it runs the subsequent command.

FlipWithNoWait can be set to TRUE (that is, 1) only if the display miniport driver set the FlipOnVSyncWithNoWait bit-field flag in the FlipCaps member of the DXGK_DRIVERCAPS structure when the DXGKQAITYPE_DRIVERCAPS value was specified in the Type member of the DXGKARG_QUERYADAPTERINFO structure in a call to the driver's DxgkDdiQueryAdapterInfo function.

Setting this member is equivalent to setting the fourth bit of the 32-bit Value member (0x00000008).

[in] SrcColorKey

A UINT value that specifies whether to perform source color-keying by using the value in the Color member of the DXGKARG_PRESENT structure. That is, any pixel in the source surface that matches the color key should not be copied to the destination surface, and all of the source pixels that do not match the color key should be copied.

Setting this member is equivalent to setting the fifth bit of the 32-bit Value member (0x00000010).

[in] DstColorKey

A UINT value that specifies whether to perform destination color-keying by using the value in the Color member of the DXGKARG_PRESENT structure. That is, any pixel in the destination surface that matches the color key should be replaced with the corresponding pixel from the source surface, and all destination pixels that do not match the color key should not be replaced.

Setting this member is equivalent to setting the sixth bit of the 32-bit Value member (0x00000020).

[in] LinearToSrgb

A UINT value that specifies whether to convert the linear-formatted source to sRGB format during the copy operation. sRGB format is gamma corrected. For more information about the sRGB format, visit the sRGB website.

Setting this member is equivalent to setting the seventh bit of the 32-bit Value member (0x00000040).

[in] Rotate

A UINT value that specifies whether to rotate the presentation data to match the current orientation of the screen during the presentation bit-block transfer (bitblt). The current orientation of the screen is set in the Rotation member of a D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION structure, which is set in the ContentTransformation member of the D3DKMDT_VIDPN_PRESENT_PATH structure for the video present path.

The display miniport driver should rotate the data only if the Rotate bit-field flag is set. Even if the driver determines that the current orientation of the screen is rotated from the presentation data and Rotate is not set, the driver should not rotate the data.

Setting this member is equivalent to setting the eighth bit of the 32-bit Value member (0x00000080).

[in] FlipStereo

Specifies whether the driver should flip both left and right images of a stereo allocation.

If the FlipOnNextVSync member of the DXGK_SETVIDPNSOURCEADDRESS_FLAGS structure is set, the driver should complete the flip to the left image on the next VSync and then complete the flip to the right image on the following VSync.

If the FlipImmediate member of the DXGK_SETVIDPNSOURCEADDRESS_FLAGS structure is set, the driver should immediately start to scan out from the new allocation. For example, if the driver was scanning a right image, it should start the new scan from the same relative offset in the right image of the new allocation.

The FlipStereo and FlipStereoTemporaryMono members cannot both be set at the same time.

For more requirements, see the Remarks section.

Setting this member is equivalent to setting the ninth bit of the 32-bit Value member (0x00000100).

Supported starting with Windows 8.

[in] FlipStereoTemporaryMono

Specifies whether the driver should use the left image of a stereo allocation for the right and left portions of a stereo frame. The driver performs the same present operation as with FlipStereo, except that it should scan out only from the left image to produce both images of a stereo frame.

This member should be set only if the driver reports support for this option in the current display mode by setting the Type member of the D3DKMDT_VIDPN_SOURCE_MODE structure to D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN.

The FlipStereo and FlipStereoTemporaryMono members cannot both be set at the same time.

The FlipStereoTemporaryMono and FlipStereoPreferRight members cannot both be set at the same time.

For more requirements, see the Remarks section.

Setting this member is equivalent to setting the tenth bit of the 32-bit Value member (0x00000200).

Supported starting with Windows 8.

[in] FlipStereoPreferRight

Specifies that when the driver clones a stereo primary allocation to a mono monitor, it should use the right image.

The FlipStereoTemporaryMono and FlipStereoPreferRight members cannot both be set at the same time.

For more requirements, see the Remarks section.

Setting this member is equivalent to setting the eleventh bit of the 32-bit Value member (0x00000400).

Supported starting with Windows 8.

[in] BltStereoUseRight

Specifies that when the driver presents from a stereo allocation to a mono allocation, it should use the right image. If not set, the driver should use the left image.

Setting this member is equivalent to setting the twelfth bit of the 32-bit Value member (0x00000800).

Supported starting with Windows 8.

[in] FlipWithMultiPlaneOverlay

Specifies whether a flip operation occurs between an overlay plane and the primary surface. If this member is set, the driver should perform the present operation by pointing the video scan output to the source plane rather than copying from the source plane to the destination.

Setting this member is equivalent to setting the thirteenth bit of the 32-bit Value member (0x00001000).

Supported starting with Windows 8.1.

RedirectedFlip

[in] Reserved

This member is reserved and should be set to zero.

Setting this member to zero is equivalent to setting the remaining 19 bits (0xFFFFE000) of the 32-bit Value member to zeros.

Supported starting with Windows 8.

[in] This member is reserved and should be set to zero.

Setting this member to zero is equivalent to setting the remaining 24 bits (0xFFFFFF00) of the 32-bit Value member to zeros.

[in] Value

A member in the union that DXGK_PRESENTFLAGS contains that can hold a 32-bit value that identifies the type of present operation to perform.

Remarks

The ColorFill, SrcColorKey, and DstColorKey bit-field flags are mutually exclusive.

If any of the FlipStereo, FlipStereoTemporaryMono, or FlipStereoPreferRight members are set, these conditions apply:

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmddi.h (include D3dkmddi.h)

See also

D3DKMDT_VIDPN_PRESENT_PATH

D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION

D3DKMT_DISPLAYMODE

DXGKARG_PRESENT

DXGKARG_QUERYADAPTERINFO

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_DRIVERCAPS

DXGK_SETVIDPNSOURCEADDRESS_FLAGS

DxgkDdiPresent

DxgkDdiQueryAdapterInfo