DXGK_PRESENTATIONCAPS 구조체(d3dkmddi.h)

DXGK_PRESENTATIONCAPS 구조는 드라이버가 DxgkDdiQueryAdapterInfo 함수를 호출하여 제공하는 디스플레이 미니포트 드라이버의 프레젠테이션 기능을 식별합니다.

구문

typedef struct _DXGK_PRESENTATIONCAPS {
  union {
    struct {
      UINT NoScreenToScreenBlt : 1;
      UINT NoOverlapScreenBlt : 1;
      UINT SupportKernelModeCommandBuffer : 1;
      UINT NoSameBitmapAlphaBlend : 1;
      UINT NoSameBitmapStretchBlt : 1;
      UINT NoSameBitmapTransparentBlt : 1;
      UINT NoSameBitmapOverlappedAlphaBlend : 1;
      UINT NoSameBitmapOverlappedStretchBlt : 1;
      UINT DriverSupportsCddDwmInterop : 1;
      UINT Reserved0 : 1;
      UINT AlignmentShift : 4;
      UINT MaxTextureWidthShift : 3;
      UINT MaxTextureHeightShift : 3;
      UINT SupportAllBltRops : 1;
      UINT SupportMirrorStretchBlt : 1;
      UINT SupportMonoStretchBltModes : 1;
      UINT StagingRectStartPitchAligned : 1;
      UINT NoSameBitmapBitBlt : 1;
      UINT NoSameBitmapOverlappedBitBlt : 1;
      UINT Reserved1 : 1;
      UINT NoTempSurfaceForClearTypeBlend : 1;
      UINT SupportSoftwareDeviceBitmaps : 1;
      UINT NoCacheCoherentApertureMemory : 1;
      UINT SupportLinearHeap : 1;
#if ...
      UINT Reserved : 1;
#else
      UINT Reserved : 4;
#endif
    };
         UINT Value;
  };
} DXGK_PRESENTATIONCAPS;

멤버

[in] NoScreenToScreenBlt

디스플레이 미니포트 드라이버가 기본 표면에서 동일한 기본 표면으로 비트 블록 전송(비트블렛)을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoScreenToScreenBlt가 설정된 경우 드라이버는 화면 대 화면 비트 블록 전송을 수행할 수 없습니다. 따라서 Microsoft DirectX 그래픽 커널 하위 시스템(Dxgkrnl.sys)은 드라이버에 이러한 비트 블록 전송을 수행하도록 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.

[in] NoOverlapScreenBlt

디스플레이 미니포트 드라이버가 겹치는 비트 블록 전송을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoOverlapScreenBlt가 설정된 경우 드라이버는 겹치는 비트 블록 전송을 수행할 수 없습니다. 따라서 DirectX 그래픽 커널 하위 시스템은 드라이버에 이러한 비트 블록 전송을 수행하도록 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000002)의 두 번째 비트를 설정하는 것과 같습니다.

SupportKernelModeCommandBuffer

[in] 디스플레이 미니포트 드라이버가 GDI 하드웨어 가속 명령 버퍼 처리를 지원하는지 여부를 지정하는 UINT 값입니다. SupportKernelModeCommandBuffer가 설정된 경우 DirectX 그래픽 커널 하위 시스템이 디스플레이 미니포트 드라이버의 DxgkDdiRenderKm 함수를 호출할 때 드라이버는 다양한 하드웨어 가속 비트 블록 전송(비트블렛) 및 채우기 작업을 수행할 수 있습니다.

참고 디스플레이 미니포트 드라이버는 캐시 일관성 GPU 조리개 세그먼트가 존재하고 CPU가 메모리에 액세스할 때 상당한 성능 저하가 없는 경우에만 GDI 하드웨어 가속을 지원한다고 보고해야 합니다.
 
이 멤버를 설정하는 것은 32비트 멤버(0x00000004)의 세 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoSameBitmapAlphaBlend

원본 및 대상 할당이 동일한 경우 디스플레이 미니포트 드라이버가 알파 혼합 작업을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoSameBitmapAlphaBlend가 설정된 경우 드라이버는 이러한 작업을 수행할 수 없으며 DirectX 그래픽 커널 하위 시스템은 이를 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000008)의 네 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoSameBitmapStretchBlt

원본 및 대상 할당이 동일한 경우 디스플레이 미니포트 드라이버가 스트레치 비트 블록 전송 작업을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoSameBitmapStretchBlt가 설정된 경우 드라이버는 이러한 작업을 수행할 수 없으며 DirectX 그래픽 커널 하위 시스템은 이를 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000010)의 다섯 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoSameBitmapTransparentBlt

원본 및 대상 할당이 동일한 경우 디스플레이 미니포트 드라이버가 투명한 비트 블록 전송 작업을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoSameBitmapStretchBlt가 설정된 경우 드라이버는 이러한 작업을 수행할 수 없으며 DirectX 그래픽 커널 하위 시스템은 이를 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000020)의 여섯 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoSameBitmapOverlappedAlphaBlend

원본 및 대상 할당이 동일하고 원본 및 대상 사각형이 겹칠 때 디스플레이 미니포트 드라이버가 알파 혼합 작업을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoSameBitmapOverlappedAlphaBlend가 설정된 경우 드라이버는 이러한 작업을 수행할 수 없으며 DirectX 그래픽 커널 하위 시스템은 이를 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000040)의 일곱 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoSameBitmapOverlappedStretchBlt

원본 및 대상 할당이 동일하고 원본 및 대상 사각형이 겹칠 때 디스플레이 미니포트 드라이버가 스트레치 비트 블록 전송 작업을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoSameBitmapOverlappedStretchBlt가 설정된 경우 드라이버는 이러한 작업을 수행할 수 없으며 DirectX 그래픽 커널 하위 시스템은 이를 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000080)의 8비트 설정과 동일합니다.

Windows 7부터 지원됩니다.

[in] DriverSupportsCddDwmInterop

디스플레이 미니포트 드라이버가 사용할 DWM(데스크톱 Windows 관리자)에 대한 사용자 모드 드라이버에서 만든 텍스처 할당에 대한 CDD(정식 디스플레이 드라이버) 제공 작업을 지원하는지 여부를 지정하는 UINT 값입니다. DriverSupportsCddDwmInterop이 설정된 경우 디스플레이 미니포트 드라이버는 이러한 현재 작업을 지원합니다.

디스플레이 미니포트 드라이버가 GDI 하드웨어 가속을 지원하는 경우 DriverSupportsCddDwmInterop 은 무시됩니다. 이 경우 드라이버는 사용자 모드 드라이버에서 만든 DWM 텍스처 할당에 대한 현재 CDD 작업을 지원해야 합니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000100)의 아홉 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] Reserved0

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000200)의 10번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] AlignmentShift

DXGK_GDIARG_XXX 구조체의 XxxPitch 멤버에 필요한 최소 맞춤 값(바이트)을 지정하는 UINT 값입니다. AlignmentShift 는 이진 지수로 제공됩니다. 예를 들어 필요한 맞춤 값을 16바이트로 지정하려면 디스플레이 미니포트 드라이버에서 AlignmentShift = 4를 설정해야 합니다. 최소값은 4 바이트 맞춤을 지정하는 AlignmentShift = 2입니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00000400)의 11번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] MaxTextureWidthShift

디스플레이 미니포트 드라이버에서 지원하는 최대 텍스처 너비를 지정하는 UINT 값으로, 다음과 같이 계산됩니다.

지원되는 최대 텍스처 너비 = 2 ^ (MaxTextureWidthShift + 11) 텍셀.

예를 들어 MaxTextureWidthShift = 0인 경우 지원되는 최대 텍스처 너비는 2 ^ 11 = 2048입니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00000800)의 12번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] MaxTextureHeightShift

디스플레이 미니포트 드라이버에서 지원하는 최대 텍스처 높이를 지정하는 UINT 값으로, 다음과 같이 계산됩니다.

지원되는 최대 텍스처 높이 = 2 ^ (MaxTextureHeightShift + 11) 텍셀.

예를 들어 MaxTextureHeightShift = 0인 경우 지원되는 최대 텍스처 높이는 2 ^ 11 = 2048입니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00001000)의 13번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] SupportAllBltRops

디스플레이 미니포트 드라이버가 BitBlt 및 ColorFill 명령의 패턴으로 단색으로 모든 GDI ROP3 래스터 작업을 지원하는지 여부를 지정하는 UINT 값입니다. SupportAllBltRops가 설정된 경우 드라이버는 이러한 래스터 작업을 지원합니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00002000)의 14번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] SupportMirrorStretchBlt

디스플레이 미니포트 드라이버가 미러 모드에서 스트레치 Blt 작업(DXGK_GDIARG_STRETCHBLT 구조 사용)을 지원하는지 여부를 지정하는 UINT 값입니다. SupportMirrorStretchBlt가 설정된 경우 드라이버는 이러한 작업을 지원합니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00004000)의 15번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] SupportMonoStretchBltModes

디스플레이 미니포트 드라이버가 BLACKONWHITE 또는 WHITEONBLACK 단색 렌더링 모드에서 스트레치 Blt 작업( DXGK_GDIARG_STRETCHBLT 구조 사용)을 지원하는지 여부를 지정하는 UINT 값입니다. SupportMonoStretchBltModes가 설정된 경우 드라이버는 이러한 작업을 지원합니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00008000)의 16번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] StagingRectStartPitchAligned

디스플레이 미니포트 드라이버에 CPU 표시 스테이징 표면의 사각형에 있는 시작점(왼쪽 위 점)이 피치 정렬되어야 하는지 여부를 지정하는 UINT 값입니다. 즉, 왼쪽 좌표가 0입니다. AlignmentShift가 설정되면 사각형의 왼쪽 위 점이 피치 정렬됩니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00010000)의 17번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoSameBitmapBitBlt

원본 및 대상 할당이 동일한 경우 디스플레이 미니포트 드라이버가 비트 블록 전송 작업을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoSameBitmapBitBlt가 설정된 경우 드라이버는 이러한 작업을 수행할 수 없습니다. 따라서 DirectX 그래픽 커널 하위 시스템은 드라이버가 이러한 작업을 수행하라는 요청을 하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00020000)의 18번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoSameBitmapOverlappedBitBlt

원본 및 대상 할당이 동일하고 원본 및 대상 사각형이 겹칠 때 디스플레이 미니포트 드라이버가 비트 블록 전송 작업을 수행할 수 있는지 여부를 지정하는 UINT 값입니다. NoSameBitmapOverlappedBitBlt가 설정된 경우 드라이버는 이러한 작업을 수행할 수 없으며 DirectX 그래픽 커널 하위 시스템은 이를 요청하지 않습니다.

이 멤버를 설정하는 것은 32비트 멤버(0x00040000)의 19번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] Reserved1

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 32비트 멤버(0x00080000)의 20번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원됩니다.

[in] NoTempSurfaceForClearTypeBlend

DXGK_RENDERKM_COMMAND 구조체ClearTypeBlend 멤버에 의해 지정된 명령을 처리하는 동안 드라이버에 임시 표면이 필요한지 여부를 지정하는 UINT 값입니다. NoTempSurfaceForClearTypeBlend가 설정된 경우 드라이버에 임시 표면이 필요하지 않습니다. 이 경우 드라이버는 비디오 메모리를 적게 사용합니다.

이 멤버를 0으로 설정하는 것은 32비트 멤버(0x00100000)의 21비트 설정과 동일합니다.

Windows 7부터 지원됩니다.

[in] SupportSoftwareDeviceBitmaps

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00200000)의 22초 비트를 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

[in] NoCacheCoherentApertureMemory

드라이버가 캐시 일관성 조리개 메모리를 지원하지 않도록 지정하는 UINT 값입니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00400000)의 23번째 비트를 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

[in] SupportLinearHeap

드라이버는 스테이징 화면에서 선형 힙 할당을 지원합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x00800000)의 24번째 비트를 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

[in] Reserved

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x01000000)의 25번째 비트를 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

[in] 이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버를 설정하는 것은 32비트 Value 멤버(0x02000000)의 25번째 비트를 설정하는 것과 같습니다.

Windows 8 부터 지원합니다.

Value

드라이버의 프레젠테이션 기능을 식별하는 32비트 값입니다.

설명

디스플레이 미니포트 드라이버는 32비트 Value 멤버에서 비트를 설정하거나 DXGK_PRESENTATIONCAPS 포함된 구조체의 개별 멤버를 설정하여 프레젠테이션 기능을 지정할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
머리글 d3dkmddi.h(D3dkmddi.h 포함)

추가 정보

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DxgkDdiQueryAdapterInfo

DxgkDdiRenderKm