D3D12DDI_VIDEO_DECODE_TIER_0020 열거형(d3d12umddi.h)

비디오 디코딩 계층을 지정합니다. 비디오 계층 디코딩은 하드웨어 기능 집합을 정의합니다. 계층이 높을수록 하드웨어를 더 많이 수행할 수 있습니다.

Syntax

typedef enum D3D12DDI_VIDEO_DECODE_TIER_0020 {
  D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED,
  D3D12DDI_VIDEO_DECODE_TIER_0020_1,
  D3D12DDI_VIDEO_DECODE_TIER_0020_2,
  D3D12DDI_VIDEO_DECODE_TIER_0020_3
} ;

상수

 
D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED
디코딩 프로필은 지원되지 않습니다.
D3D12DDI_VIDEO_DECODE_TIER_0020_1
비디오 디코딩 계층 1. 비디오 디코딩 계층 1에서 하드웨어는 비디오 작업에서 참조할 때 물리적으로 연속되도록 스트림을 디코딩하기 위해 디코딩 출력 텍스처 및 참조 텍스처가 필요합니다.

참조 리소스는 애플리케이션에서 D3D12 텍스처 배열로 할당됩니다. 드라이버는 할당이 비디오 시나리오를 대상으로 한다는 명시적 힌트를 받지 않으며 처음에는 물리적으로 연속되지 않은 메모리를 할당할 수 있습니다. 드라이버는 메모리 관리자가 제공하는 새로운 업데이트 할당 속성 기능을 사용하여 실제로 물리적으로 연속되어야 하는 비디오 작업을 제출할 때 물리적으로 연속으로 변환하도록 예약해야 합니다.

계층 1에 하드웨어를 배치하는 하드웨어 특성:

* 디코딩 하드웨어에는 디코딩 출력 및 참조를 위해 물리적으로 연속된 메모리가 필요합니다. 압축된 비트스트림을 사용하는 입력 버퍼에는 물리적으로 연속해야 할 수도 있습니다.

* 하드웨어 디코딩에는 다른 엔진 또는 비디오 작업과 호환되지 않는 특수 타일링 형식 또는 기타 메모리 레이아웃 정의가 있을 수 있습니다.

압축된 입력 버퍼 요구 사항:

* 지정된 프레임의 모든 조각은 순서대로 연속되어야 합니다(조각 사이의 간격 없음).

* 드라이버는 비트스트림 데이터의 추가 복사본을 수행해서는 안 됩니다.

* 첫 번째 조각은 128 바이트 경계에서 시작해야 합니다.

* 하드웨어는 D3D12DDI_MEMORY_POOL_L0 할당된 버퍼에서 디코딩을 지원해야 합니다(항상 시스템 메모리).

* 하드웨어는 D3D12DDI_CPU_PAGE_PROPERTY_NOT_AVAILABLE D3D12DDI_MEMORY_POOL_L1(기본 풀)에서 디코딩을 지원해야 합니다.
D3D12DDI_VIDEO_DECODE_TIER_0020_2
비디오 디코딩 계층 2. 계층 2 디코딩을 사용하면 호출자가 참조 및 출력 텍스처를 별도의 2D 텍스처 리소스로 할당할 수 있습니다. 애플리케이션은 더 이상 텍스처 배열을 할당할 필요가 없지만 지원되어야 합니다.

계층 2 디코딩에는 물리적으로 연속적인 요구 사항이 없습니다. 하드웨어에는 이 계층에서 연속적인 VA(비디오 디코딩 가속) 요구 사항이 있을 수 있으며, 이를 지원하기 위해 텍스처 배열을 만들려면 애플리케이션이 필요합니다.

계층 2를 사용하도록 설정하려면 드라이버에서 지원하는 참조 및 출력 형식에 대해 타일 또는 스파스 리소스라고도 하는 예약된 리소스를 지원해야 합니다. 이 작업은 두 가지 방법으로 수행할 수 있습니다.

* 하드웨어가 프로세스별 GPU VA를 지원하고 예약된 리소스의 타일 셰이프 요구 사항을 지원하는 타일 패턴이 있는 경우 기존 D3D12 타일식 리소스 메커니즘을 사용할 수 있습니다.

* 하드웨어가 프로세스별 GPU VA를 지원하지만 타일 패턴이 예약된 리소스의 타일 셰이프 요구 사항을 준수하지 않고 하드웨어가 D3D12의 별도 하위 리소스인 평면 리소스의 각 평면에 대해 전체 하위 리소스에 대해 타일을 매핑하고 매핑 해제하는 타일 매핑을 지원할 수 있는 경우 메커니즘을 통해 타일 매핑 및 타일 매핑을 독립적으로 지정할 수 있어야 합니다. 이 메커니즘은 개발 중이지만 API에서 타일 셰이프를 난독 분석합니다.

계층 2에 하드웨어를 배치하는 하드웨어 특성:

* 물리적으로 연속 메모리가 필요하지 않습니다.

* 하드웨어에는 연속 VA 요구 사항이 있습니다.

* 하드웨어 디코딩에는 다른 엔진 또는 비디오 작업과 호환되지 않는 특수 타일링 형식 또는 기타 메모리 레이아웃 정의가 있을 수 있습니다.

압축된 입력 버퍼 요구 사항은 계층 1과 동일합니다.
D3D12DDI_VIDEO_DECODE_TIER_0020_3
비디오 디코딩 계층 3. 이 계층은 WDDM 2.3에서 시작됩니다.

계층 3 디코딩을 사용하면 호출자가 참조 및 출력 텍스처를 표준 2D 텍스처 리소스로 할당할 수 있습니다. 애플리케이션은 더 이상 텍스처 배열을 할당할 필요가 없지만 지원되어야 합니다.

계층 3 디코딩에는 물리적으로 연속된 할당이 필요하지 않습니다. 하드웨어는 더 이상 D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 필요하지 않지만 여전히 지원해야 합니다. 쿼리할 때 D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 구조체의 D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 멤버를 FALSE로 설정해야 합니다.

계층 3을 사용하도록 설정하려면 드라이버에서 지원하는 참조 및 출력 형식에 대해 예약된 리소스(타일 또는 스파스 리소스라고도 함)를 지원해야 합니다. 이 오류는 다음과 같이 두 가지로 나타날 수 있습니다.

* 하드웨어가 프로세스별 GPU VA를 지원하고 예약된 리소스의 타일 셰이프 요구 사항을 지원하는 타일 패턴이 있는 경우 기존 D3D12 타일식 리소스 메커니즘을 사용할 수 있습니다.

* 하드웨어가 프로세스별 GPU VA를 지원하지만 타일 패턴이 예약된 리소스의 타일 셰이프 요구 사항을 준수하지 않고 하드웨어가 D3D12의 별도 하위 리소스인 평면 리소스의 각 평면에 대해 전체 하위 리소스에 대해 타일을 매핑하고 매핑 해제하는 타일 매핑을 지원할 수 있는 경우 메커니즘을 통해 타일 매핑 및 타일 매핑을 독립적으로 지정할 수 있어야 합니다. 이 메커니즘은 개발 중이지만 API에서 타일 셰이프를 난독 분석합니다.

압축된 입력 버퍼 요구 사항은 계층 1과 동일합니다.

설명

디코딩 하드웨어에 다른 엔진 또는 다른 비디오 작업에 대해 지원되지 않는 고유한 타일링 형식이 필요한 경우 디코더는 프로필 지원을 쿼리할 때 D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 구조에서 D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 설정할 수 있습니다. 이 플래그는 애플리케이션이 D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 플래그를 사용하여 참조를 할당해야 했음을 나타냅니다. 출력이 향후 참조 프레임으로 필요한 경우 PFND3D12DDI_VIDEO_DECODE_FRAME 전달된 출력 프레임은 파이프라인의 다른 부분에서 사용할 수 있는 D3D12 리소스이며 D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 플래그가 없어야 합니다.

다음 표에서는 각 계층에 대한 다양한 기능을 보여줍니다.

기능 계층 1 계층 2 계층 3
개별적으로 할당된 참조 프레임 및 출력을 지원합니다. 필수
참조를 지원하고 텍스처 배열로 할당됩니다. 필수 필수 필수
필요에 따라 REFERENCE_ONLY 리소스 플래그가 필요할 수 있습니다. 필요하지 않은 경우에도 모든 계층은 플래그가 있는 상태로 작동해야 합니다. 선택 사항 선택 사항 아니요
caps가 필요하지 않은 경우에도 REFERENCE_ONLY 할당된 참조를 지원합니다. 필수 필수 필수
참조, 입력 및 출력에 대한 타일/스파스 리소스를 지원합니다. 필수 필수
압축 비트 스트림 입력 버퍼는 L0(기본 시스템 메모리) 또는 L1(dGPU, 비디오 메모리의 경우)으로 할당될 수 있습니다. 필수 필수 필수
조각 간에 간격이 없는 단일 버퍼 할당에 조각을 배치하려면 압축된 비트스트림 데이터가 필요합니다. 필수 필수 필수
압축된 입력 버퍼의 첫 번째 조각에 대한 오프셋은 256 바이트를 정렬해야 합니다. 필수 필수 필수
드라이버는 압축된 비트스트림 데이터의 추가 복사본을 수행해서는 안 됩니다. 필수 필수 필수

요구 사항

요구 사항
헤더 d3d12umddi.h(D3d12umddi.h 포함)