DXGK_DRIVERCAPS 구조체(d3dkmddi.h)

DXGK_DRIVERCAPS 구조는 드라이버가 DxgkDdiQueryAdapterInfo 함수 호출을 통해 제공하는 디스플레이 미니포트 드라이버의 기능을 설명합니다.

구문

typedef struct _DXGK_DRIVERCAPS {
  [out] PHYSICAL_ADDRESS                   HighestAcceptableAddress;
  [out] UINT                               MaxAllocationListSlotId;
  [out] SIZE_T                             ApertureSegmentCommitLimit;
  [out] UINT                               MaxPointerWidth;
  [out] UINT                               MaxPointerHeight;
  [out] DXGK_POINTERFLAGS                  PointerCaps;
  [out] UINT                               InterruptMessageNumber;
  [out] UINT                               NumberOfSwizzlingRanges;
  [out] UINT                               MaxOverlays;
  union {
    [out] DXGK_GAMMARAMPCAPS      GammaRampCaps;
    [out] DXGK_COLORTRANSFORMCAPS ColorTransformCaps;
  };
  [out] DXGK_PRESENTATIONCAPS              PresentationCaps;
  [out] UINT                               MaxQueuedFlipOnVSync;
  [out] DXGK_FLIPCAPS                      FlipCaps;
  [out] DXGK_VIDSCHCAPS                    SchedulingCaps;
  [out] DXGK_VIDMMCAPS                     MemoryManagementCaps;
  [out] DXGK_GPUENGINETOPOLOGY             GpuEngineTopology;
  [out] DXGK_WDDMVERSION                   WDDMVersion;
        DXGK_VIRTUALADDRESSCAPS_DEPRECATED Reserved;
        DXGK_DMABUFFERCAPS_DEPRECATED      Reserved1;
  [out] D3DKMDT_PREEMPTION_CAPS            PreemptionCaps;
  [out] BOOLEAN                            SupportNonVGA;
  [out] BOOLEAN                            SupportSmoothRotation;
  [out] BOOLEAN                            SupportPerEngineTDR;
  [out] BOOLEAN                            SupportDirectFlip;
  [out] BOOLEAN                            SupportMultiPlaneOverlay;
  [out] BOOLEAN                            SupportRuntimePowerManagement;
  [out] BOOLEAN                            SupportSurpriseRemovalInHibernation;
  [out] BOOLEAN                            HybridDiscrete;
  [out] UINT                               MaxOverlayPlanes;
        BOOLEAN                            HybridIntegrated;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeStart;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeEnd;
        BOOLEAN                            SupportSurpriseRemoval;
  [out] BOOLEAN                            SupportMultiPlaneOverlayImmediateFlip;
  [out] BOOLEAN                            CursorScaledWithMultiPlaneOverlayPlane0;
        BOOLEAN                            HybridAcpiChainingRequired;
  [out] UINT                               MaxQueuedMultiPlaneOverlayFlipVSync;
  union {
    struct {
      UINT SupportContextlessPresent : 1;
      UINT Detachable : 1;
      UINT VirtualGpuOnly : 1;
      UINT ComputeOnly : 1;
      UINT IndependentVidPnVSyncControl : 1;
      UINT NoHybridDiscreteDListDllSupport : 1;
      UINT DisplayableSupport : 1;
#if ...
      UINT Reserved : 25;
#elif
      UINT Reserved : 26;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 30;
#endif
    };
          UINT Value;
  } MiscCaps;
        UINT                               MaxHwQueuedFlips;
        DXGK_HWQUEUEDFLIP_CAPS             HwQueuedFlipCaps;
} DXGK_DRIVERCAPS;

멤버

[out] HighestAcceptableAddress

사용할 PHYSICAL_ADDRESS 데이터 형식(LARGE_INTEGER로 정의됨)은 사용할 시스템 메모리(RAM)의 가장 높은 실제 주소를 나타냅니다.

[out] MaxAllocationListSlotId

할당 목록 슬롯 식별자의 최대 수입니다. 할당 목록 슬롯은 DMA(직접 메모리 액세스) 버퍼링에서 할당이 전달되는 위치를 나타냅니다.

[out] ApertureSegmentCommitLimit

디스플레이 미니포트 드라이버가 조리개 세그먼트에 매핑하기 위해 지원하는 실제 메모리의 최대 바이트 수입니다. 비디오 메모리 관리자는 ApertureSegmentCommitLimit 가 지정하는 제한보다 더 많은 실제 메모리를 조리개 세그먼트에 매핑하지 않습니다.

[out] MaxPointerWidth

마우스 포인터의 최대 너비(픽셀)입니다.

[out] MaxPointerHeight

스캔 줄에 있는 마우스 포인터의 최대 높이입니다.

[out] PointerCaps

드라이버가 지원할 수 있는 마우스 포인터 기능을 비트 필드 플래그로 식별하는 DXGK_POINTERFLAGS 구조체입니다.

[out] InterruptMessageNumber

메시지 신호 인터럽트가 사용되고 드라이버가 고정된 메시지 번호에 해당하는 인터럽트 처리기에서 DxgkCbNotifyInterrupt 함수를 호출하는 경우 사용되는 메시지 번호입니다.

[out] NumberOfSwizzlingRanges

드라이버가 지원할 수 있는 스위즐링 범위의 수입니다.

[out] MaxOverlays

드라이버에서 지원할 수 있는 최대 오버레이 수입니다.

[out] GammaRampCaps

드라이버가 지원할 수 있는 감마 램프 기능을 비트 필드 플래그로 식별하는 DXGK_GAMMARAMPCAPS 구조체입니다.

[out] ColorTransformCaps

표시 파이프라인의 감마 및 색 공간 변환 기능을 설명하는 플래그입니다. 참고: 이 필드는 이 구조체의 이전 WDDM 2.2 버전에서 GammaRampCaps를 대체합니다.

[out] PresentationCaps

드라이버에서 지원할 수 있는 프레젠테이션 기능을 비트 필드 플래그로 식별하는 DXGK_PRESENTATIONCAPS 구조체입니다.

[out] MaxQueuedFlipOnVSync

그래픽 하드웨어에서 대기하고 보류할 수 있는 대칭 이동 수입니다. 각 대칭 이동은 그래픽 하드웨어가 대칭 이동 대기를 대기할 때마다 VSync 인터럽트마다 DAC(디지털-아날로그 변환기)로 래치됩니다.

[out] FlipCaps

드라이버가 지원할 수 있는 비트 필드 플래그의 대칭 이동 기능을 식별하는 DXGK_FLIPCAPS 구조체입니다.

[out] SchedulingCaps

드라이버가 지원할 수 있는 GPU(그래픽 처리 장치) 예약 기능을 비트 필드 플래그로 식별하는 DXGK_VIDSCHCAPS 구조체입니다.

[out] MemoryManagementCaps

드라이버에서 지원할 수 있는 비디오 메모리 관리 기능을 식별하는 DXGK_VIDMMCAPS 구조체입니다.

[out] GpuEngineTopology

드라이버에서 지원할 수 있는 GPU 엔진 토폴로지 설명 하는 DXGK_GPUENGINETOPOLOGY 구조체입니다.

[out] WDDMVersion

WDDM의 버전을 식별하는 DXGK_WDDMVERSION 값입니다. Windows 7부터 지원됩니다.

드라이버가 Windows 7 이상 기능(DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7)을 지원하는 경우 이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

Windows 7 이상 기능을 지원하지 않는 이전 드라이버의 경우(DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN7 < ):

  • Windows 7 WDK(버전 7600)를 사용하여 드라이버를 컴파일하려면 이 멤버를 DXGKDDI_WDDMv1 설정합니다.
  • Windows 8 WDK를 사용하여 드라이버를 컴파일하려면 이 멤버를 DXGKDDI_WDDMv1_2 설정합니다.

Reserved

예약되어 있습니다.

Reserved1

예약되어 있습니다.

[out] PreemptionCaps

드라이버가 지원하는 GPU 그래픽 요청의 선점 기능을 설명하는 D3DKMDT_PREEMPTION_CAPS 구조체입니다.

Windows 8 시작 지원.

[out] SupportNonVGA

TRUE이면 드라이버는 DxgkDdiStopDeviceAndReleasePostDisplayOwnership 함수를 사용하여 디스플레이 디바이스를 재설정하고 현재 POST(Power-On 자체 테스트) 디바이스의 소유권을 해제할 수 있습니다.

Windows 8 시작 지원.

[out] SupportSmoothRotation

TRUE이면 드라이버는 DxgkDdiUpdateActiveVidPnPresentPath 함수를 사용하여 어댑터의 경로 회전 업데이트를 지원하지만 새 VidPN을 만들고 설정할 필요가 없습니다.

Windows 8 시작 지원.

[out] SupportPerEngineTDR

TRUE이면 드라이버는 개별 GPU 엔진 재설정을 지원합니다.

이 멤버가 설정된 경우 디스플레이 미니포트 드라이버는 DxgkDdiQueryDependentEngineGroup, DxgkDdiQueryEngineStatusDxgkDdiResetEngine 함수를 구현해야 합니다.

Windows 8 시작 지원.

[out] SupportDirectFlip

TRUE이면 드라이버는 공유 관리되는 기본 할당의 생성 및 열기를 지원합니다. TRUE 값은 다음을 나타냅니다.

  • 디스플레이 미니포트 드라이버는 DxgkDdiSetVidPnSourceAddress 함수가 호출될 때 드라이버가 비디오 메모리를 호환되지 않는 할당으로 대칭 이동하도록 허용하지 않도록 보장합니다.
  • 사용자 모드 드라이버는 DWM(데스크톱 Windows 관리자)에서 리소스를 사용하기 전에 직접 대칭 이동 리소스의 유효성을 검사합니다.

DWM만 비디오 메모리를 Direct Flip 리소스로 대칭 전환할 수 있습니다. DWM은 사용자 모드 CheckDirectFlipSupport 함수를 사용하여 이러한 리소스의 유효성을 검사합니다.

Windows 8 시작 지원.

[out] SupportMultiPlaneOverlay

TRUE이면 디스플레이 미니포트 드라이버가 다중 평면 오버레이를 지원하며, 드라이버도 MaxOverlayPlanes 멤버에 대한 값을 설정해야 합니다. FALSE이면 DirectX 그래픽 커널 하위 시스템은 다중 평면 오버레이 함수를 호출하지 않습니다.

Windows 8.1 시작 지원.

[out] SupportRuntimePowerManagement

TRUE이면 디스플레이 미니포트 드라이버가 런타임 전원 관리를 지원합니다.

이 멤버가 설정된 경우 디스플레이 미니포트 드라이버는 DxgkDdiSetPowerComponentFStateDxgkDdiPowerRuntimeControlRequest 함수를 구현해야 합니다.

Windows 8 시작 지원.

[out] SupportSurpriseRemovalInHibernation

TRUE이면 디스플레이 미니포트 드라이버는 최대 절전 모드의 외부 디스플레이 디바이스가 시스템에서 연결이 끊어진 후 소프트웨어 리소스 정리를 지원합니다.

이 멤버가 설정된 경우 디스플레이 미니포트 드라이버는 RemoveType 매개 변수가 DxgkRemovalHibernation으로 설정된 DxgkDdiNotifySurpriseRemoval 함수를 구현해야 합니다.

자세한 내용은 하이브리드 시스템에서 어댑터 간 리소스 사용을 참조하세요.

Windows 8 시작 지원.

[out] HybridDiscrete

TRUE이면 디스플레이 미니포트 드라이버는 하이브리드 시스템의 불연속 GPU입니다.

이 멤버가 설정된 경우 디스플레이 미니포트 드라이버는 다음을 수행해야 합니다.

  • WDDM 1.3 지원
  • 어댑터 간 리소스 지원
  • 표시 출력이 없음

자세한 내용은 하이브리드 시스템에서 어댑터 간 리소스 사용을 참조하세요.

Windows 8.1 시작 지원.

[out] MaxOverlayPlanes

SupportRuntimePowerManagementTRUE인 경우 디스플레이 미니포트 드라이버는 MaxOverlayPlanes를 지원할 수 있는 기본 표면을 포함하여 단일 출력에 동시에 표시할 수 있는 최대 오버레이 평면 수로 설정해야 합니다. 작동 모드가 변경될 때 사용 가능한 평면 수가 변경되는 경우 드라이버는 최상의 시나리오를 반영하는 숫자를 사용해야 합니다.

Windows 8.1 시작 지원.

HybridIntegrated

현재 GPU가 하이브리드인지 여부를 나타냅니다.

InternalGpuVirtualAddressRangeStart

내부 GPU 가상 주소 범위가 시작됩니다.

InternalGpuVirtualAddressRangeEnd

내부 GPU 가상 주소 범위 끝입니다.

SupportSurpriseRemoval

TRUE이면 디스플레이 미니포트 드라이버가 깜짝 제거를 지원합니다.

[out] SupportMultiPlaneOverlayImmediateFlip

TRUE이면 표시 미니포트 드라이버는 표시할 실제 주소만 변경하면 멀티플레인 오버레이 평면으로 즉시 대칭 이동이 지원됩니다.

[out] CursorScaledWithMultiPlaneOverlayPlane0

TRUE이면 평면당 다중 평면 오버레이 스트레치를 적용할 때 디스플레이 하드웨어는 항상 평면 0에 적용되는 것과 동일한 배율 인수를 하드웨어 커서에 적용합니다.

HybridAcpiChainingRequired

이 하이브리드 불연속 드라이버에는 통합 어댑터에서 트리거된 ACPI 이벤트의 체인이 필요했음을 나타냅니다.

[out] MaxQueuedMultiPlaneOverlayFlipVSync

단일 VSYNC 기간 내에 단일 평면에 대한 최대 업데이트 수를 나타내며, 여기서 가장 최근의 업데이트는 이전 업데이트를 재정의합니다.

MiscCaps

기타 기능.

MiscCaps.SupportContextlessPresent

DDI 호출에서 null 컨텍스트를 지원합니다. 이 값을 설정하면 OS는 현재 관련 DDI에서 NULL 컨텍스트를 전달합니다. WDDM 2.4부터 지원됨

MiscCaps.Detachable

분리 가능, 즉 핫 플러그형입니다. 어댑터가 핫 플러그형인 경우 어댑터를 초기화하는 동안 드라이버가 이 비트를 설정합니다. WDDM 2.4부터 지원됨

MiscCaps.VirtualGpuOnly

어댑터는 호스트의 Direct3D 애플리케이션에서 사용하면 안 됩니다. WDDM 2.5부터 지원됨

MiscCaps.ComputeOnly

WDDM의 렌더링 전용 디바이스 기능을 렌더링하여 Compute-Only 디바이스를 지원합니다. Windows 10 버전 1901부터 지원됨(WDDM 2.6)

MiscCaps.IndependentVidPnVSyncControl

이 기능을 설정하는 드라이버는 DdiControlInterrupt3에서 지정된 VidPnSourceId를 읽고 언급된 VidPnSourceId에서 VSync를 제어해야 합니다. Windows 10 버전 2004(WDDM 2.7)부터 지원됩니다.

MiscCaps.NoHybridDiscreteDListDllSupport

드라이버가 d-List를 지원하는지 여부를 나타냅니다. Windows 10 버전 2004(WDDM 2.8)부터 지원됩니다.

MiscCaps.DisplayableSupport

드라이버가 표시 가능한 기능을 지원하는지 여부를 나타냅니다. Windows 11(WDDM 3.0)부터 지원됩니다.

MiscCaps.Reserved

예약되어 있습니다.

MiscCaps.Value

MiscCaps 비트에 액세스하는 다른 방법입니다.

MaxHwQueuedFlips

드라이버에서 지원하는 최대 하드웨어 대칭 이동 큐 수입니다. OS에서 하드웨어 대칭 이동 큐 지원을 허용하는 경우 드라이버는 MaxHwQueuedFlips 를 1보다 큰 값으로 설정할 수 있습니다. Windows Server 2022(WDDM 2.9)부터 사용할 수 있습니다.

HwQueuedFlipCaps

드라이버에서 하드웨어 대기 대칭 이동이 지원되는지 여부를 나타냅니다. Windows Server 2022(WDDM 2.9)부터 지원됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista
헤더 d3dkmddi.h(D3dkmddi.h 포함)

참고 항목

DxgkDdiUpdateActiveVidPnPresentPath

DXGK_VIDSCHCAPS

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

CheckDirectFlipSupport

DXGK_POINTERFLAGS

D3DKMDT_PREEMPTION_CAPS

DXGK_GAMMARAMPCAPS

DxgkDdiQueryAdapterInfo

DXGK_PRESENTATIONCAPS

DXGK_VIDMMCAPS

DXGK_GPUENGINETOPOLOGY

DxgkDdiQueryEngineStatus

DxgkDdiSetPowerComponentFState

DxgkDdiSetVidPnSourceAddress

DxgkDdiResetEngine

DxgkDdiPowerRuntimeControlRequest

DxgkCbNotifyInterrupt

DxgkDdiNotifySurpriseRemoval

DxgkDdiQueryDependentEngineGroup

DXGK_FLIPCAPS

DXGKARG_QUERYADAPTERINFO