DXGK_VIDMMCAPS 구조체(d3dkmddi.h)

DXGK_VIDMMCAPS 구조는 디스플레이 미니포트 드라이버가 지원하는 비디오 메모리 관리 기능을 식별합니다.

구문

typedef struct _DXGK_VIDMMCAPS {
  union {
    struct {
      UINT OutOfOrderLock : 1;
      UINT DedicatedPagingEngine : 1;
      UINT PagingEngineCanSwizzle : 1;
      UINT SectionBackedPrimary : 1;
      UINT CrossAdapterResource : 1;
      UINT VirtualAddressingSupported : 1;
      UINT GpuMmuSupported : 1;
      UINT IoMmuSupported : 1;
      UINT ReplicateGdiContent : 1;
      UINT NonCpuVisiblePrimary : 1;
      UINT ParavirtualizationSupported : 1;
      UINT IoMmuSecureModeSupported : 1;
      UINT DisableSelfRefreshVRAMInS3 : 1;
      UINT IoMmuSecureModeRequired : 1;
      UINT MapAperture2Supported : 1;
      UINT CrossAdapterResourceTexture : 1;
      UINT CrossAdapterResourceScanout : 1;
      UINT AlwaysPoweredVRAM : 1;
#if ...
      UINT Reserved : 14;
#elif
      UINT Reserved : 15;
#elif
      UINT Reserved : 18;
#elif
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 22;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
  UINT  PagingNode;
} DXGK_VIDMMCAPS;

멤버

OutOfOrderLock

드라이버가 최신 instance 이외의 할당 인스턴스를 잠글 수 있는지 여부를 지정합니다. DDI 스레드가 애플리케이션 스레드가 이전에 잠기고 삭제한 꼭짓점 버퍼를 잠가야 하는 경우 드라이버는 일반적으로 DDI 스레딩 및 부하 분산에 대해 이 값을 설정합니다. 이 멤버를 설정하는 것은 32비트 멤버(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.

DedicatedPagingEngine

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

PagingEngineCanSwizzle

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

SectionBackedPrimary

드라이버가 섹션 지원 기본 할당을 지원하는지 여부를 지정합니다. Windows 8 부터 지원합니다.

CrossAdapterResource

드라이버가 하이브리드 시스템의< 어댑터 간 리소스 간 복사에 대한 계층 1 지원을 제공하는지 여부를 지정합니다. Windows 8.1 부터 지원합니다.

WDDM 2.4부터 DXGI를 사용하면 렌더링이 한 GPU에 있고 다른 GPU의 모니터에서 프레젠테이션하는 모든 광범위한 시나리오에 대한 현재 하이브리드 프레젠테이션 최적화가 가능합니다. 이는 두 GPU가 어댑터 간 리소스를 지원하는 경우에만 가능합니다.

어댑터 간 리소스 속성은 다음과 같습니다.

  • 리소스는 조리개 GPU 메모리 세그먼트에만 페이징할 수 있습니다.
  • 리소스는 공유로 할당됩니다.
  • 리소스는 CPU 표시로 표시되어야 합니다.
  • 할당은 OS에서 쓰기 결합으로 만들어집니다.
  • 리소스에는 할당이 하나뿐이며 선형 형식이 있습니다.
  • 리소스에는 표준 피치 맞춤(128바이트)이 있습니다. 피치 맞춤에 대한 D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 정의가 추가됩니다. 리소스 콘텐츠를 포함할 이 맞춤의 가장 작은 배수로 리소스를 만들어야 합니다.
  • 리소스에는 표준 높이 맞춤(4개 행)이 있습니다. D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 추가됩니다. 리소스 콘텐츠를 포함할 이 맞춤의 가장 작은 배수로 리소스를 만들어야 합니다.
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128

#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
  • 리소스 메모리의 시작 주소가 한 페이지 경계에 맞춰집니다.
  • 리소스는 커널 모드에서 표준 할당으로 만들어지고 나중에 UMD에서 열 수 있습니다.
  • 리소스는 UMD에서 만들 수 있습니다.

크로스 어댑터 할당을 기본으로 사용할 수 있지만 드라이버는 일반적으로 주 데이터베이스를 만들 때 제공되는 정보를 얻지 않습니다.

VirtualAddressingSupported

드라이버가 가상 메모리 주소 지정을 지원하는지 여부를 지정합니다. GPU 가상 메모리 주소 지정에 대한 지원을 표현하려면 드라이버가 VirtualAddressingSupported 상한 및 GpuMmuSupported 또는 IoMmuSupported 캡을 설정해야 합니다. GpuMmuSupportedIoMmuSupported는 동시에 설정할 수 없습니다. Windows 10 부터 지원합니다.

GpuMmuSupported

어댑터가 GpuMmu 모델을 지원하는지 여부를 지정합니다. 어댑터는 다른 엔진의 GpuMmuIoMmu 모델을 동시에 지원할 수 없습니다. 자세한 내용은 GpuMmu 모델을 참조하세요. Windows 10 부터 지원합니다.

IoMmuSupported

어댑터가 IoMmu 모델을 지원하는지 여부를 지정합니다. 어댑터는 다른 엔진의 GpuMmuIoMmu 모델을 동시에 지원할 수 없습니다. 자세한 내용은 IoMmu 모델을 참조하세요. Windows 10(WDDM 2.0)부터 지원됩니다.

ReplicateGdiContent

어댑터가 GDI 콘텐츠 복제를 지원하는지 여부를 지정합니다. Windows 10 부터 지원합니다.

NonCpuVisiblePrimary

GDI 할당이 CPU를 표시할 필요가 없음을 나타냅니다. Windows 10 부터 지원합니다.

ParavirtualizationSupported

호스트 KMD는 모든 DDI가 구현된 경우 한도를 설정해야 합니다. Windows 10 버전 1703(WDDM 2.2)부터 지원됩니다.

IoMmuSecureModeSupported

드라이버가 IOMMU 기반 GPU 격리를 지원한다는 것을 나타냅니다. Windows 10 버전 1803(WDDM 2.4)부터 지원됩니다.

DisableSelfRefreshVRAMInS3

S3에서 VRAM 자체 새로 고침에 대한 지원을 사용하지 않도록 설정합니다. Windows 10 버전 1803부터 지원됩니다.

IoMmuSecureModeRequired

IOMMU 하드웨어 및 격리 지원( IommuSecureModeSupported 플래그로 참조됨)이 필요하거나 OS가 어댑터를 시작하지 않음을 나타냅니다. Windows 10 버전 2004(WDDM 2.7)부터 지원됩니다.

MapAperture2Supported

드라이버가 IOMMU DMA 다시 매핑에 필요한 DXGK_OPERATION_MAP_APERTURE_SEGMENT2 페이징 버퍼 작업을 지원한다는 것을 나타냅니다. WDDM 버전 2.9부터 지원됩니다.

CrossAdapterResourceTexture

드라이버가 어댑터 간 리소스에서 텍스처링의 계층 2 지원을 제공하는지 여부를 지정합니다. CrossAdapterResourceTexture에 대한 지원을 나타내는 드라이버도 CrossAdapterResource에 대한 지원을 나타내야 합니다. WDDM 버전 2.9부터 지원됩니다.

CrossAdapterResourceScanout

드라이버가 어댑터 간 리소스를 검사하는 계층 3 지원을 제공하는지 여부를 지정합니다. CrossAdapterResourceScanout에 대한 지원을 나타내는 드라이버는 CrossAdapterResourceCrossAdapterResourceTexture에 대한 지원도 나타내야 합니다. WDDM 버전 2.9부터 지원됩니다.

계층 3 지원을 사용하려면 드라이버가 다음 최소 사양의 어댑터 간 리소스에 대해 DXGK_FLIPCAPS 드라이버에서 선언한 지원되는 대칭 이동 기능을 수행할 수 있어야 합니다.

  • 1920 x 1080 이하의 교차 어댑터 기본 버퍼 크기
  • 지원되는 다음과 같은 DisplayScanOut 형식의 버퍼 픽셀 형식:
    • DXGI_FORMAT_R16G16B16A16_FLOAT
    • DXGI_FORMAT_R10G10B10A2_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
    • DXGI_FORMAT_B8G8R8A8_UNORM
    • DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

DXGI 런타임은 드라이버의 CrossAdapterResourceScanout 지원을 쿼리하고 지원되는 경우 프레젠테이션 스택은 1개의 복사 경로로 내려갑니다. 따라서 CrossAdapterResourceScanout 에 대한 지원을 선언하는 드라이버도 다음을 수행해야 합니다.

  • DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 지원합니다.
  • 위의 최소 사양의 교차 어댑터 기본 버전에 대해 모든 관련 프레젠테이션 관련 DPI를 지원합니다. 몇 가지 예로 pfnCreateResource, pfnCheckMultiplaneOverlaySupport 및 pfnPresentMultiplaneOverlay/pfnPresent1이 있습니다. MPO 사양 및 하이브리드 사양과 같은 필요한 세부 정보는 기존 사양을 참조하세요. CASO에서 제외되는 방법에 대한 자세한 내용은 아래 섹션을 참조하세요.

AlwaysPoweredVRAM

Reserved

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 Value 멤버의 나머지 31비트(OutOfOrderLock 설정 후)를 0으로 설정하는 것과 같습니다. 예약은 DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN7 < 경우에만 사용할 수 있습니다.

Value

이 값은 멤버에 대해 전체적으로 작동하는 데 사용됩니다.

PagingNode

페이징 작업에 사용할 노드의 인덱스(0부터 시작)입니다. 드라이버가 DXGK_DRIVERCAPS 구조체의 SchedulingCaps 멤버에 대한 MultiEngineAware 비트 필드 멤버를 설정하지 않으면 DirectX 그래픽 커널 하위 시스템은 PagingNode 설정을 무시합니다. 이 멤버는 WDDM 1.x에만 적용됩니다. WDDM 2.x에서 PagingNodeDXGK_PHYSICALADAPTERCAPS 이동되었습니다.

요구 사항

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

추가 정보

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS