DXGK_CONTEXTINFO 구조체(d3dkmddi.h)

DXGK_CONTEXTINFO 구조는 디바이스 컨텍스트를 설명합니다.

구문

typedef struct _DXGK_CONTEXTINFO {
  UINT                  DmaBufferSize;
  UINT                  DmaBufferSegmentSet;
  UINT                  DmaBufferPrivateDataSize;
  UINT                  AllocationListSize;
  UINT                  PatchLocationListSize;
  UINT                  Reserved;
  DXGK_CONTEXTINFO_CAPS Caps;
  ULONG                 PagingCompanionNodeId;
} DXGK_CONTEXTINFO;

멤버

DmaBufferSize

DMA(직접 메모리 액세스)를 통해 GPU(그래픽 처리 장치)로 전송되는 하드웨어 명령 버퍼의 크기(바이트)입니다.

DMA 버퍼는 컨텍스트를 만든 후 증가하고 축소할 수 있습니다. 그러나 DMA 버퍼는 DmaBufferSize 가 지정하는 시작 크기보다 작게 축소할 수 없습니다.

DmaBufferSegmentSet

DMA 버퍼를 GPU에 액세스할 수 있도록 해야 하는 세그먼트의 식별자입니다.

DmaBufferPrivateDataSize

각 DMA 버퍼와 연결된 드라이버 상주 개인 데이터 구조의 크기(바이트)입니다. 이 프라이빗 데이터 구조에 대한 메모리는 페이지가 없는 풀에서 할당됩니다. 드라이버가 DmaBufferPrivateDataSize에서 0을 지정하는 경우 프라이빗 데이터 구조에 대한 메모리가 할당되지 않습니다.

DMA 버퍼와 연결된 프라이빗 데이터 구조는 DMA 버퍼를 만들 때 0으로 초기화됩니다. DMA 버퍼의 수명 동안 비디오 메모리 관리자는 DMA 버퍼와 연결된 프라이빗 데이터 구조에 액세스하지 않습니다.

AllocationListSize

할당 배열의 요소 시작 수(즉, DXGK_ALLOCATIONLIST 구조의 배열)입니다. 이 숫자는 드라이버가 드라이버의 DxgkDdiPresentDxgkDdiRender 함수에 대한 호출에서 DXGKARG_PRESENTDXGKARG_RENDER 구조체의 pAllocationList 멤버에 있도록 요청하는 할당의 시작 수입니다.

할당 목록은 컨텍스트를 만든 후 증가하고 축소할 수 있습니다. 그러나 할당 목록은 AllocationListSize 가 지정하는 시작 크기보다 작게 축소할 수 없습니다.

참고DXGK_CREATECONTEXTFLAGS. GdiContext 는 1로 설정됩니다. 즉, 컨텍스트가 GDI 관련 컨텍스트로 만들어지므로 AllocationListSize 를 256 값으로 설정해야 합니다.
 

PatchLocationListSize

사용자 모드 및 커널 모드의 디바이스에 대한 패치 위치 배열(즉 , D3DDDI_PATCHLOCATIONLIST 구조의 배열)의 시작 요소 수입니다. 이 숫자는 드라이버가 해당 DxgkDdiRender 함수를 호출할 때 DXGKARG_RENDER 구조체의 pPatchLocationListIn 멤버에 있도록 요청하는 패치 위치의 시작 수입니다.

컨텍스트를 만든 후 패치 위치 목록이 늘어나고 축소할 수 있습니다. 그러나 패치 위치 목록은 PatchLocationListSize 가 지정하는 시작 크기보다 작게 축소할 수 없습니다.

Reserved

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

이 멤버는 Windows 7부터 사용할 수 있습니다.

Caps

컨텍스트에서 지원하는 선택적 기능에 대해 설명합니다.

Windows 10 부터 지원합니다.

PagingCompanionNodeId

이 컨텍스트 페이징 도우미에 사용할 엔진의 0부터 시작하는 엔진 식별자를 지정합니다.

Windows 10 부터 지원합니다.

설명

디스플레이 미니포트 드라이버는 DmaBufferSizeAllocationListSize 멤버의 값을 지정하여 다음을 보장합니다.

  • Microsoft DirectX 그래픽 하위 시스템은 DMA(직접 메모리 액세스) 버퍼를 하나만 사용하여 모든 시나리오에 대해 하나 이상의 RECT 구조를 표시할 수 있습니다(디스플레이 미니포트 드라이버의 DxgkDdiPresent 함수 사용).
  • DMA 및 할당 목록 버퍼의 크기는 여러 버퍼 간에 분할할 수 없는 하나 이상의 명령을 포함할 수 있을 만큼 큽니다.
  • DMA 및 할당 목록 버퍼의 크기는 설정 및 DMA 오버헤드를 방지할 수 있을 만큼 충분히 큽니다.
디스플레이 미니포트 드라이버는 DmaBufferSegmentSet 멤버에서 조리개 세그먼트만 지정할 수 있습니다. 드라이버가 메모리 세그먼트를 지정하면 컨텍스트 만들기 오류가 발생합니다.

드라이버가 DmaBufferSegmentSet 를 0으로 설정하는 경우 비디오 메모리 관리자는 DMA 버퍼에 대해 매핑된 쓰기 결합 메모리인 연속 페이징 잠금 메모리를 할당합니다. 따라서 GPU는 AGP 조리개 외부에서 발생하는 AGP 전송이 허용되지 않는 컴퓨터에서 PCI 주기를 사용하여 DMA 버퍼에 액세스해야 합니다.

요구 사항

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

추가 정보

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender

RECT