共用方式為


DXVA 高階視訊處理 - VideoProcessing

此手動測試會跨下列各項執行測試案例:IDXVAHD_VideoProcessor::SetVideoProcessBltState、IDXVAHD_VideoProcessor::GetVideoProcessBltState、IDXVAHD_VideoProcessor::SetVideoProcessStreamState、IDXVAHD_VideoProcessor::GetVideoProcessStreamState 和 IDXVAHD_VideoProcessor::VideoProcessBltHD。

如需所有測試案例的詳細資訊,請參閱下方的一節。 大部分的測試案例都會出現在畫面上,而公用程式會在處理畫面後進行比較。 大部分的測試案例會在 > 軟體和硬體處理框架之間強制執行 20.0f PSNR。 在某些測試案例中,閾值會因為不支援軟體實作中的一些篩選和功能而降低。

大部分的測試只會顯示類似刻度視窗遞增的失敗計數,並顯示要逐一查看的測試案例變數。

測試詳細資料

   
規格
  • Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD
平台
  • Windows 10,用戶端版本 (x86)
  • Windows 10,用戶端版本 (x64)
  • Windows Server 2016 (x64)
  • Windows 10,用戶端版本 (Arm64)
支援的版本
  • Windows 10
  • Windows 10 (版本 1511)
  • Windows 10 (版本 1607)
  • Windows 10 (版本 1703)
  • Windows 10 (版本 1709)
  • Windows 10 (版本 1803)
  • Windows 10 版本 1809
  • Windows 10 (版本 1903)
  • Windows 10的下一個更新
預期執行時間 (分鐘) 2
類別 相容性
) 分鐘 (逾時 120
需要重新開機 false
需要特殊設定 false
類型 automatic

 

其他檔

此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難排解資訊,可在下列主題中找到 () :

執行測試

執行測試之前,請完成測試設定,如測試需求中所述: 圖形配接器或晶片組測試必要條件

此外,此測試需要下列軟體:

  • 支援 D3D9Caps.Caps3 D3DCAPS3_DXVAHD的顯示驅動程式。 具體而言:

    • D3D9 支援公開D3DCAPS3_DXVAHD。

    • 必要的輸出格式:D3DFMT_X8R8G8B8、D3DFMT_A8R8G8B8。

    • 必要的輸入格式:支援D3DFMT_X8R8G8B8、D3DFMT_A8R8G8B8、D3DFMT_YUY2、D3DFMT_AYUV和任何解碼轉譯目標。

  • dxvahdsw.dll。

疑難排解

如需 HLK 測試失敗的一般疑難排解,請參閱 針對 Windows HLK 測試失敗進行疑難排解

如需疑難排解資訊,請參閱 針對 Device.Graphics Testing 進行疑難排解

此測試最多部分只會顯示類似刻度視窗遞增的失敗計數,並顯示要逐一查看的測試案例變數。

測試會傳回 [通過] 或 [失敗]。 如果驅動程式未公開D3DCAPS3_DXVAHD,測試可能會傳回 SKIP。 其他測試案例可以根據串流狀態支援、反向遠端診斷上限、篩選上限、功能上限和支援的格式略過。 若要檢閱測試詳細資料,請檢閱 DTM Studio 中的測試記錄。

詳細資訊

在每個 SetVideoProcessBltState 之後,呼叫對應的 GetVideoProcessBltState。 呼叫可確保正確報告,然後處理並呈現相較于參考畫面格的框架,以取得正確性。 大部分的 BltStates 會針對給定 BltState 的每個完整迴圈迴圈進行迴圈,然後針對每個有效的 StreamState 再次迴圈。 不過,不需要某些排列。

  • 確認傳遞至 SetVideoProcessBltState 和 GetVideoProcessBltState 的資料類型無效,並傳回E_INVALIDARG。

  • DXVAHD_BLT_STATE_TARGET_RECT_DATA

    • 確認將資料限制為小於輸出介面,會導致正確的縮放比例。

    • 確認大於輸出介面的 Rect 會產生展開的框架。

    • 確認是否已設定目標 rect 資料,並將 [啟用] 標示為 false,以使用整個表面。

    • 使用目標 rect 資料處理一個畫面,並將 [啟用] 設定為 false。 然後使用目標 rect 資料壓縮、展開或移動處理另一個畫面,然後啟用為 true。 確認表面縮放或據以移動。

    • 確認 [預設] 沒有資料集會導致使用整個表面。

  • DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA

    • 確認預設值為 RGB 黑色。

    • 如果 YCbCr 設定為 true,請確認實際呈現背景的正確色彩範圍。

    • 確認 RGB Orange (255,165,0) ,以及 RGB 和 YcbCr 的預設黑色值

    • 搭配 DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA

      • 確認是否使用 YCbCr 的背景色彩,且 ColorSpaceData 為 Full RGB_Range,則會忽略該完整範圍 RGB,而且每個指定的 Matrix 和 xvYCC 設定都會使用正確的有限範圍。
    • 搭配 DXVAHD_BLT_STATE_ALPHA_FILL

      • 當DXVAHD_ALPHA_FILL_MODE_BACKGROUND用於不同背景色彩時,請確認指定背景色彩的 Alpha 值。
  • DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA

    • 確認 [預設使用量]、[RGB_Range]、[YCbCr_Matrix] 和 [YCbCr_xvYCC] 都設定為 0。

    • 確認 [限制] RGB_Range已成功將色彩範圍限制為 16..235。

    • 確認 BT.709 已正確增加 luma 和 chroma。

    • xvYCC 已成功擴充色彩範圍。 此驗證是特殊案例,因為參考視訊處理器不支援 XRGB 以外的任何輸出介面。 這的驗證很困難,稍後將會記錄此程式。

    • 確認DXVAHD_VPDEVCAPS。DeviceCaps 沒有DXVAHD_DEVICE_CAPS_xvYCC。 驗證YCbCr_xvYCC不會調整任何設定,而且會真正忽略。

    • 容錯一開始是彈性的,但圖元精確度的開始百分比是 90% 精確度。

  • DXVAHD_BLT_STATE_ALPHA_FILL_DATA

    • 確認輸出介面不是 Alpha 格式不變。

    • 確認 Alpha 格式的輸出表面已成功將 Alpha 值套用至色彩。

    • 確認預設模式會正確調整背景 Alpha 值。

      使用 Alpha 格式的輸出介面測試 NonAlpha Format 的輸入介面。 使用彈性精確度再次驗證 Alpha 正確性,一開始精確度為 90%。

  • DXVAHD_BLT_STATE_CONSTRICTION_DATA

    • 由於 M2 限制課程的參考驅動程式不支援,因此必須在直接 1:1 比較之外驗證測試案例,以取得有效的向下取樣大小。

    • 確認輸出介面的正確向下取樣。

    • 如果大小大於目標,請確認限制為目標 rect 的大小。

    • 嘗試將大小設定為 0,* 和 *,0 驗證傳回值E_INVALIDARG。

    • 如果DXVAHD_VPDEVCAPS。FeatureCaps 不會公開DXVAHD_FEATURE_CAPS_CONSTRICTION,然後在嘗試設定 Constriction 時確認傳回錯誤E_INVALIDARG。

    • 確認預設值代表已停用。 如果已停用並指定大小,則會忽略大小值。

  • DXVAHD_BLT_STATE_PRI加值稅E_DATA

    • 傳遞不正確 Guid、DataSize 和 pData。 驗證驅動程式是否據以處理。

    • Null pData 會擷取私人 blt 狀態的正確大小。

  • 確認傳遞至 SetVideoProcessStreamState 和 GetVideoProcessStreamState 的資料類型無效,並傳回E_INVALIDARG。

  • DXVAHD_STREAM_STATE_D3DFORMAT_DATA

    • 驗證 GetVideoProcessorInputFormats 所報告的所有支援格式。

    • 在 GetVideoProcessorInputFormats 中驗證不支援的格式。

    • 驗證預設的 D3DFORMAT D3DFMT_UNKNOWN。

  • DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA

    • 確認預設值為漸進式。

    • 確認呈現漸進式和交錯格式。

    • 如果DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED DXVAHD_VPDEVCAPS未回報為支援。InputFormatCaps,確認使用 DXVAHD_FRAME_FORMAT_INTERLACED_* 預設為使用漸進式。

  • DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA

    • 確認預設值。

    • 確認 [限制] RGB_Range已成功將色彩範圍限制為 16..235。

    • 如果DXVAHD_VPDEVCAPS。InputFormatCaps 不會報告對DXVAHD_INPUT_FORMAT_CAPS_RGB_LIMITED_RANGE的支援,請確認當RGB_Range為 1 時,會忽略它並使用 FullRange。

      • 參考的 1:1 比較無法進行有限的範圍驗證。 某些白色和黑色的鬆散驗證可能會據以驗證色彩範圍。
    • 確認 BT.709 已正確增加 luma 和 chroma 取樣。

    • xvYCC 已成功擴充色彩範圍。

    • 確認是否DXVAHD_VPDEVCAPS。DeviceCaps 不會回報 xvYCC 的支援。

    • 如果可能,而且已指定處理,請驗證增加的色彩轉換效能。

    • 確認DXVAHD_VPDEVCAPS。DeviceCaps 沒有DXVAHD_DEVICE_CAPS_xvYCC。 驗證YCbCr_xvYCC不會調整任何設定,而且會真正忽略。

  • DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA

    • ) 特別 (插補點,測試並驗證預設值。

    • 測試 NormalRate 和 HalfRate,確認 NormalRate 為 2:1 交錯至漸進式,而 HalfRate 為 1:1 交錯至漸進式。

    • 確認 GetVideoProcessorCustomRates 是否公開任何 CustomRates。

      • 指定反向電報率

        • 參考視訊處理器中將不會提供 ITELERESTRICTED 支援,因此無法進行直接比較。 為了驗證,會產生遠端框架並傳遞至參考。 然後,會處理非遠端框架,並相較于遠端框架所提供的畫面格。
    • 測試不支援的 CustomRate,同時插入和重複。

    • 在 NormalRate 和 HalfRate 上測試不支援的 CustomRate。 確認傳回錯誤E_INVALIDARG。

    • 除非指定DXVAHD_OUTPUT_RATE_CUSTOM,否則驗證未成功設定支援的 CustomRates。

  • DXVAHD_STREAM_STATE_SOURCE_RECT_DATA

    • 確認將資料限制為小於輸入介面的 Rect 會導致正確的縮放。

    • 確認大於輸入介面的 Rect 會導致裁剪的區域變成透明。

    • 確認是否已設定來源 rect 資料,並將 [啟用] 標示為 false,則會使用整個表面。

    • 一旦使用來源矩形資料處理一個畫面,而 Enable 為 false,則第二個框架會以來源 Rect 資料處理,而 Enable 為 true,請確認介面可見,並根據輸入介面的 Rect 大小調整。

    • 確認 [預設] 沒有資料集會導致使用整個表面。

  • DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA

    • 確認將資料限制為小於輸出介面,會導致正確的縮放比例。

    • 確認大於輸出介面的 Rect 會導致裁剪的區域。

    • 確認是否已設定目的地 rect 資料,並將 [啟用] 標示為 false,則會使用整個表面。

    • 使用目的地 Rect 資料處理一個畫面,而 Enable 為 false,則第二個框架會以目的地 rect 資料處理,而 Enable 為 true,請確認輸出介面是可見的,並根據輸出介面的 Rect 大小調整。

    • 確認 [預設] 沒有資料集會導致使用整個表面。

  • DXVAHD_STREAM_STATE_ALPHA_DATA

    • 所有 Alpha 測試案例都需要一個以上的視訊串流,因此將這些測試案例乘以兩個。

    • 確認預設值 Alpha 已停用。

    • 確認低、中和高範圍 Alpha 混合,並確認透明度。

    • 確認超出範圍浮點數 Alpha 值在處理期間失敗。

    • 圖元精確度的容錯層級為 10%。 精確度應大於或等於 90% 精確度。

  • DXVAHD_STREAM_STATE_PALETTE_DATA

    • 若未設定調色盤專案,請驗證 Null 值是否傳回零。

    • 設定特定數目的調色盤專案後,驗證 Null 值是否傳回預期的調色盤專案數目。

    • 測試 4 位和 8 位板化四CC 格式。

    • 設定 ARGB 和 AYUV 混合的調色盤專案陣列會驗證成功。

    • 確認搭配 Alpha 混合使用時,會發生正確的混合。

    • 圖元精確度的容錯層級為 10%。 精確度應大於或等於 90% 精確度。

  • DXVAHD_STREAM_STATE_CLEAR_RECT_DATA

    • 如果DXVAHD_VPDEVCAPS。 FeatureCaps 不會公開DXVAHD_FEATURE_CAPS_CLEAR_RECT,請確認嘗試使用 ClearRect 時傳回錯誤E_INVALIDARG。

    • 確認預設 CLEAR RECT 狀態已停用且看不到。

    • 確認CLEAR_RECT未顯示超出字串。

    • 確認CLEAR_RECT已成功裁剪超出字串。

  • DXVAHD_STREAM_STATE_LUMA_KEY_DATA

    • 如果DXVAHD_VPDEVCAPS。 FeatureCaps 不會公開DXVAHD_FEATURE_CAPS_LUMA_KEY,請確認傳回錯誤E_INVALIDARG。

    • 使用 RGB 輸入資料流程時,DXVAHD_VPDEVCAPS。 FeatureCaps 不會公開DXVAHD_FEATURE_CAPS_RGB_LUMA_KEY,請確認不會忽略 luma。

    • 確認 Enable 是否設定為 false,則會忽略 luma。

    • 在設定狀態 (E_INVALIDARG) 期間,確認下限和上限的值會導致失敗。

    • 確認預設值為 Luma 已停用,而 Lower/Upper 的值為 0。

    • 圖元精確度的容錯層級為 10%。 精確度應大於或等於 90% 精確度。

  • DXVAHD_STREAM_STATE_FILTER_DATA

    • 確認預設值 ([已停用] 和 [DXVAHD_FILTER_RANGE_DATA]。預設) 。

    • 確認 [已啟用] 和 [層級] 是否為 [預設],呈現的資料流程與啟用篩選時相同。

    • 確認回報的層級小於和大於 GetVideoProcessorFilterRange。 大於 應該會失敗,並E_INVALIDARG。

    • 圖元精確度的容錯層級為 10%。 精確度應大於或等於 90% 精確度。

  • DXVAHD_STREAM_STATE_PRI加值稅E_DATA

    • 傳遞不正確 Guid、DataSize 和 pData。 驗證驅動程式是否據以處理。

    • Null pData 會擷取私人 blt 狀態的正確大小。

確認 VideoProcessBltHD 至下方表面類型的 pOutputSurface 是否成功。

  • 使用的預設 Surface 將會是交換鏈結。

  • DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT

  • RENDERTARGET

  • 重迭交換鏈結。

  • 結算所有其他類型的鏈結。

  • 標準支援的輸出和輸入介面像素格式,以及針對指定裝置回報為支援的輸出和輸入介面格式。

在處理畫面 0 之前,請確認 OutputFrame 值為 1 或更高,會導致E_INVALIDARG。

驗證在資料列中處理 OutputFrame 0 兩次,而沒有任何資料流程資料變更,會導致暫停的框架。

使用資料流程資料變更來驗證 OutputFrame 0 的處理兩次,仍然會導致快取的資料呈現 (暫停的框架) 。

確認 [最大]、[中] 和 [最小資料流程數目] 的處理成功。

確認 StreamCount 大於或小於 pStreams 數目會導致E_INVALIDARG。

確認 E_INVALIDARG 的 StreamCount 結果為零。

DXVAHD_STREAM_DATA:漸進式正常/半速率、2/1 的漸進式、以正常速率交錯、交錯半速率、交錯為 4/5

  • 啟用一個串流驗證呈現的內容。

  • 兩個數據流,已啟用子資料流程停用的主要資料流程。 確認呈現的內容。

  • 已啟用兩個數據流、主要資料流程和子資料流程。 確認呈現的內容。

  • 三個數據流,兩個數據流用來撰寫已啟用主資料流程,而第三個數據流則為停用子資料流程。 確認呈現的內容。

  • 三個數據流,兩個數據流用來撰寫已啟用一個停用的主要資料流程,第三個數據流作為停用子資料流程。 確認呈現的內容。

  • 三個數據流,兩個數據流用來撰寫已啟用的主要資料流程,以及啟用子資料流程的第三個數據流。 確認呈現的內容。

  • 三個數據流,兩個數據流用來撰寫已啟用一個停用的主要資料流程,另一個資料流程作為已啟用子資料流程。 確認呈現的內容。

  • 超出範圍的 PastFrames 和 FutureFrames。

  • 根據指定的 PastSurfaces 和 FutureSurfaces,不正確 PastFrame 和 FutureFrames。

  • Null PastSurfaces 和 FutureSurfaces,具有非零的 PastFrames 與 FutureFrames。

  • 所有DXVAHD_SURFACE_TYPE_VIDEO_INPUT、DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRI加值稅E、解碼 RenderTarget 和跨 ppPastSurfaces、pInputSurfaces、ppFutureSurfaces 的螢幕外純螢幕排列。

  • 驗證不支援 SurfaceType 的 ppPastSurfaces、pInputSurfaces、ppFutureSurfaces 是否傳回E_INVALIDARG。

  • 驗證配置給非DXVAHD_VPDEVCAPS類型的記憶體集區的 Surface。InputPool 會產生E_INVALIDARG。

命令語法

命令選項 描述

DXVAHDVideoProcessing VideoProcessing

如果沒有任何選項,測試會列舉一些極端不正確引數測試案例。

TestPriority:[0, 1, 2]

根據預設,優先順序為 1 層級的測試,不過優先順序 2 會測試每個排列,包括極端不正確引數測試案例。 0 適用于 BVT 層級。

SoftwareOnly

僅測試視訊處理器的軟體實作。 這主要用於在驅動程式支援測試案例之前的初始測試。

SaveAllFrames

如果您想要儲存所有畫面,測試已硬式編碼的儲存計數設定為 100,請使用此旗標。 適用于高畫面格計數測試案例失敗。

LogLevel:[0, 1, 2]

測試能夠在其記錄方法中非常詳細。 根據預設,會設定層級 0,但是第一層會收集每個測試案例的記錄資訊增加,包括許多資料流程狀態/blt 狀態集。 層級 2 會收集所有調整的資料流程狀態和 blt 狀態,以及任何設定資訊。

 

檔案清單

檔案 位置

DXVAHDVideoProcessing.exe

[testbinroot]\nttest\windowstest\graphics\d3d\func\

Dxvahdsw.dll

[osbinroot]\nttest\windowstest\graphics\dxva\

 

參數

參數名稱 參數描述
LLU_NetAccessOnly NET 存取的 LLU
ConfigDisplayCommandLine ConfigDisplay 的自訂命令列。 預設值:標誌
MODIFIEDCMDLINE 測試可執行檔的其他命令列引數