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 層的硬體特性: * 譯碼硬體需要實體連續記憶體,以便譯碼輸出和參考。 具有壓縮 bitstream 的輸入緩衝區也可能需要實際連續。 * 譯碼硬體可能有特殊的並排格式或其他記憶體配置定義,與其他引擎或視訊作業不相容。 壓縮的輸入緩衝區需求: * 指定框架的所有配量都必須依序排列且連續(配量之間沒有間距)。 * 驅動程式不得執行 Bitstream 資料的其他複本。 * 第一個配量必須在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資源旗標。 請注意,即使不需要旗標,也需要所有階層才能使用旗標。 | 自選 | 自選 | 不 |
即使上限不需要參考,也支援使用 REFERENCE_ONLY配置的參考。 | 必填 | 必填 | 必填 |
支持參考、輸入和輸出的並排/疏鬆資源。 | 不 | 必填 | 必填 |
壓縮的位數據流輸入緩衝區可以配置為 L0(主要系統記憶體)或 L1(適用於 dGPU、視訊記憶體)。 | 必填 | 必填 | 必填 |
需要壓縮的位流數據,配量必須位於單一緩衝區配置中,且配量之間沒有間距。 | 必填 | 必填 | 必填 |
壓縮輸入緩衝區中第一個配量的位移必須對齊 256 個字節。 | 必填 | 必填 | 必填 |
驅動程式不得執行壓縮 Bitstream 數據的其他複本。 | 必填 | 必填 | 必填 |
要求
要求 | 價值 |
---|---|
標頭 | d3d12umddi.h (包括 D3d12umddi.h) |