D3D12DDI_VIDEO_DECODE_TIER_0020 열거형(d3d12umddi.h)
비디오 디코딩 계층을 지정합니다. 비디오 계층 디코딩은 하드웨어 기능 집합을 정의합니다. 계층이 높을수록 하드웨어를 더 많이 수행할 수 있습니다.
통사론
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를 사용하려면 드라이버에서 지원하는 참조 및 출력 형식에 대해 Tiled 또는 스파스 리소스라고도 하는 예약된 리소스를 지원해야 합니다. 이 작업은 다음 두 가지 방법으로 수행할 수 있습니다. * 하드웨어가 프로세스별 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 리소스 플래그가 필요할 수 있습니다. 모든 계층은 필요하지 않은 경우에도 플래그가 있는 상태로 작동해야 합니다. | 선택적 | 선택적 | 아니요 |
대문자가 필요하지 않은 경우에도 REFERENCE_ONLY 할당된 참조를 지원합니다. | 필수 | 필수 | 필수 |
참조, 입력 및 출력에 대한 타일/스파스 리소스를 지원합니다. | 아니요 | 필수 | 필수 |
압축 비트 스트림 입력 버퍼는 L0(주 시스템 메모리) 또는 L1(dGPU, 비디오 메모리용)으로 할당될 수 있습니다. | 필수 | 필수 | 필수 |
조각 간 간격 없이 단일 버퍼 할당에 조각이 배치되려면 압축된 비트스트림 데이터가 필요합니다. | 필수 | 필수 | 필수 |
압축된 입력 버퍼의 첫 번째 조각에 대한 오프셋은 256 바이트 정렬되어야 합니다. | 필수 | 필수 | 필수 |
드라이버는 압축된 비트스트림 데이터의 추가 복사본을 수행해서는 안 됩니다. | 필수 | 필수 | 필수 |
요구 사항
요구 | 값 |
---|---|
헤더 | d3d12umddi.h(D3d12umddi.h 포함) |