DXVA 高階視訊處理 - VideoProcessing
此手動測試會跨下列各項執行測試案例:IDXVAHD_VideoProcessor::SetVideoProcessBltState、IDXVAHD_VideoProcessor::GetVideoProcessBltState、IDXVAHD_VideoProcessor::SetVideoProcessStreamState、IDXVAHD_VideoProcessor::GetVideoProcessStreamState 和 IDXVAHD_VideoProcessor::VideoProcessBltHD。
如需所有測試案例的詳細資訊,請參閱下方的一節。 大部分的測試案例都會出現在畫面上,而公用程式會在處理畫面後進行比較。 大部分的測試案例會在 > 軟體和硬體處理框架之間強制執行 20.0f PSNR。 在某些測試案例中,閾值會因為不支援軟體實作中的一些篩選和功能而降低。
大部分的測試只會顯示類似刻度視窗遞增的失敗計數,並顯示要逐一查看的測試案例變數。
測試詳細資料
規格 |
|
平台 |
|
支援的版本 |
|
預期執行時間 (分鐘) | 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 | 測試可執行檔的其他命令列引數 |