PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB 콜백 함수(d3dumddi.h)

pfnUpdateGpuVirtualAddressCb 는 타일 리소스의 컨텍스트에서 사용되는 특수 작업입니다. 이를 통해 사용자 모드 드라이버는 단일 페이지 테이블 업데이트 일괄 처리에서 프로세스의 가상 주소 공간에 적용할 여러 매핑 작업을 지정할 수 있습니다.

모든 작업의 GPU(그래픽 처리 장치) 가상 주소 범위(복사 작업의 원본 주소 제외)는 pfnReserveGpuVirtualAddressCb를 호출하여 얻은 단일 가상 주소 범위에 속해야 합니다. 마찬가지로 복사 작업에서 모든 원본의 가상 주소 범위는 pfnReserveGpuVirtualAddressCb를 호출하여 얻은 단일 가상 주소 범위에 속해야 합니다.

페이지 테이블 업데이트는 지정된 렌더링 컨텍스트 전용 페이징 컨텍스트에서 실행되며, 지정된 모니터링된 펜스 개체에 대해 연결된 렌더링 컨텍스트 신호 FenceValue 후에만 GPU에서 실행됩니다. 페이지 테이블 업데이트가 완료되면 페이징 컨텍스트는 모니터링되는 펜스 개체를 FenceValue+1로 신호로 표시하여 렌더링 컨텍스트가 페이지 테이블 업데이트와 긴밀하게 연동되도록 합니다.

구문

PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Pfnd3dddiUpdategpuvirtualaddresscb;

HRESULT Pfnd3dddiUpdategpuvirtualaddresscb(
  HANDLE hDevice,
  const D3DDDICB_UPDATEGPUVIRTUALADDRESS *unnamedParam2
)
{...}

매개 변수

hDevice

디스플레이 디바이스에 대한 핸들입니다.

unnamedParam2

pData [in]

수행할 작업을 설명하는 D3DDDICB_UPDATEGPUVIRTUALADDRESS 구조체에 대한 포인터입니다.

반환 값

이 콜백 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

업데이트 작업의 가상 주소 범위는 교차할 수 있습니다. 작업은 제출된 순서대로 적용됩니다.

단일 pfnUpdateVirtualAddressCb 호출에서:

  • 매핑 작업의 모든 가상 주소 범위와 복사 작업의 대상 범위는 동일한 예약된(0) 범위에 속해야 합니다.
  • 복사 작업의 원본 가상 주소 범위는 다른 예약된(0) 범위에서 사용할 수 있습니다.
  • 모든 복사 작업의 원본 가상 주소 범위는 동일한 예약된(0) 범위에 속해야 합니다.
사용자 모드 드라이버는 많은 pfnUpdateGpuVirtualAddressCb 호출을 제출할 수 있으며 작업은 렌더링 펜스 뒤에 큐에 대기됩니다. 대기 중인 업데이트 작업 수가 128을 초과하면 비디오 메모리 관리자가 이전 작업을 처리할 때까지 호출 스레드가 차단됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 데스크톱
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDICB_UPDATEGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb