WGF11 點陣化程式
此自動化測試會驗證 D3D 基本點陣化和點陣化狀態的各種層面,如硬體所實作。
本主題適用于下列測試作業:
WGF11 轉譯器
WGF11 轉譯器 (WoW64)
測試詳細資料
規格 |
|
平台 |
|
支援的版本 |
|
預期執行時間 (分鐘) | 2 |
類別 | 相容性 |
) 分鐘 (逾時 | 120 |
需要重新開機 | false |
需要特殊設定 | false |
類型 | automatic |
其他檔
此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難排解資訊,可在下列主題中找到 () :
執行測試
執行測試之前,請完成測試設定,如測試需求中所述: 圖形配接器或晶片組測試必要條件。
疑難排解
如需 HLK 測試失敗的一般疑難排解,請參閱 針對 Windows HLK 測試失敗進行疑難排解。
如需疑難排解資訊,請參閱 針對 Device.Graphics Testing 進行疑難排解。
所有測試案例都會傳回 PASS 或 FAIL。 如需失敗的特定詳細資料,請檢閱記錄檔中的測試結果。 如果測試是以不支援所測試功能的功能層級執行,測試可能會傳回 SKIP。 如果發生未攔截的例外狀況, (架構會在結尾攔截它,並將它記錄) ,則測試可能會傳回 BLOCKED。
詳細資訊
針對 D3D10 和更新版本,此測試會驗證下列各項:
根據點陣化狀態的基本擷取、填滿模式和彎曲順序。
圖元著色器中的插補模式
常數模式很簡單,因為從頂點著色器傳送的值沒有任何變更。
由於它並非嚴格規格,因此會藉由確保相鄰圖元不相等,並遵循邊緣的漸層來驗證線性模式。
取樣頻率圖元著色器調用 (D3D10.1 和更新版本) 。
針對 D3D11,此測試會驗證提取模型屬性評估。
下列內建函式將導入 D3D11 (HLSL 5.0) ,以取得提取模型屬性評估的功能:
EvaluateAttributeSnapped ( attrib 數值,int2 pixeloffset )
EvaluateAttributeAtSample ( attrib 數值,uint sampleindex )
EvaluateAttributeAtCentroid ( attrib 數值)
針對每個內建函式,會產生一組圖元著色器,以內建函式參數值的不同組合和輸入屬性的宣告插補模式為目標。
以下是這三個內建函式的測試因素:
從頂點著色器傳遞的輸入屬性。
注意
只能插入 float 類型屬性;int/uint 類型一律為常數插補模式
float4 texCoord : TEXCOORD
float4 色彩: COLOR
float clipDis : SV_ClipDistance
插補模式的宣告。
注意
當在著色器中使用提取模型評估對應的屬性時,HLSL 編譯器不允許 Nointerpolation 模式。
linear
線性 noPerspective
線性距心
線性範例
線性 noPerspectivecentid
線性 noPerspective 範例
要繪製的基本類型:
當插補模式為線性時,將會繪製三角形 C1-C2-C3,如下所示。 這涵蓋一個整圖元和兩半圖元。 投影空間中頂點的座標如下:
<在這裡需要影像
C1: (-1、1、0) 、C2 (-1、-1、0) 、C3 (1、1、0) 。
正方形內的右三角形,頂點為 C1、C2 和 C3;C1 會形成 90 度的角度,而且位於方形的左上角
當插補模式為 noperspective 時,將會繪製投影空間中具有下列頂點座標的三角形 A-B-C:
A: (-1, 1, 1) ;
B: (-1、-1、0) ;
C: (1、1、1)
螢幕空間三角形應該涵蓋上述三角形 C1-C2-C3 相同的圖元和圖元區域。
轉譯目標
格式:支援轉譯目標的所有格式。
範例計數:1、2、...支援的樣本計數上限。
EvaluateAttributeSnapped ( ) 的不同 pixeloffset 值
理想情況下,所有可能的 256 位移位置。 如果測試執行太長,此測試案例群組將會縮減為 4 個角落位置、8 個框線位置、4 個位置從 4x4 格線、4 個位置從 8x8 格線,以及 16x16 方格的 4 個位置。
EvaluateAttributeAtSample ( ) 的不同 sampleindex 值
轉譯目標支援的所有範例索引
當圖元著色器將插補屬性值寫入轉譯目標時,驗證方法就會開始。 然後,轉譯目標資料會對應並讀出。在多重取樣轉譯目標的情況下,必須先進行多重取樣解析,再進行對應。 結果資料會與預先計算的內插補點資料進行比較,或從直接存取屬性取得的資料。
當內插補點模式為線性 noperspective 時:
計算並儲存插補 (,並針對 p2 和 p3 的發現區域) 值計算並儲存 p1、p2、p3 每個圖元的 256 位移位置。
針對 EvaluateAttributeSnapped :
圖元 p1 應該在左右 (的預期值之間有「提取」屬性值,以及「提取」位移的鄰近) 鄰近位移。
圖元 p2 和 p3:
在單一取樣的案例中,不應該轉譯它們。
在多重取樣的情況下,它們應該在左右 (的預期值之間,以及「提取」位移的鄰近位移) 相鄰位移之間「提取」屬性值。
針對具有 SampleFinder 的 EvaluateAttributeAtSample,請在樣本座標系統上尋找樣本索引的位置,範圍為 [-8, 7]。 使用這個位置以與上述 EvaluateAttributeSnapped 相同的方式進行驗證。
針對 EvaluateAttributeAtCentroid,使用 SV_COVERAGE 繪製三角形 C1-C2-C3 來找出第一個涵蓋的樣本,這是著色器模型 5.0 所定義的距心位置。 使用 centoid 的範例索引,以與上述 EvaluateAttributeAtSample 相同的方式執行驗證。
當插補模式為線性時:
使用檢視方塊正確的插補點,計算並儲存插入 (,並針對每個圖元的 256 位移位置,針對 p2 和 p3 的發現區域) 值進行推斷。 插入已除以個別深度值的屬性值,然後將插補屬性值除以深度的相互插補值。
針對 EvaluateAttributeSnapped () ,請使用與 2.a 相同的驗證。
針對 EvaluateAttributeAtCentroid () ,請使用與 2.c 相同的驗證。
針對 EvaluateAttributeAtSample () ,請使用與 2.b 相同的驗證。
使用 PSInvocation 來驗證所有測試案例的 PS 調用數目。
如果宣告了任何屬性的樣本插補模式或SV_SAMPLEINDEX,而且樣本計數大於 1,PSInvocation 應為 3* (樣本計數) 。
當樣本計數為 1 時,PSInvocation 應該是 1。
命令語法
命令選項 | 描述 |
---|---|
Wgf11rasterizer |
執行測試作業。 如果沒有任何選項,測試就會列舉裝置。 |
-FeatureLevel:XX.X |
設定功能層級,其中 XX.X 是測試將在下列位置執行的功能層級:10.0、10.1 或 11.0。 |
注意
如需此測試二進位檔的命令列說明,請輸入 /?。
檔案清單
檔案 | 位置 |
---|---|
Configdisplay.exe |
< [testbinroot] >\nttest\windowstest\tools\ |
D3d11_1sdklayers.dll |
< [testbinroot] >\nttest\windowstest\graphics\d3d\support\ |
D3d11ref.dll |
< [testbinroot] >\nttest\windowstest\graphics\d3d\support\ |
D3d11sdklayers.dll |
< [testbinroot] >\nttest\windowstest\graphics\d3d\support\ |
D3dcompiler_test.dll |
< [testbinroot] >\nttest\windowstest\graphics\d3d\support |
D3dx10_test.dll |
< [testbinroot] >\nttest\windowstest\graphics\d3d\support\ |
d3dx11_test.dll |
< [testbinroot] >\nttest\windowstest\graphics\d3d\support\ |
TDRWatch.exe |
< [testbinroot] >\nttest\windowstest\graphics\ |
Wgf11rasterizer.exe |
< [testbinroot] >\nttest\windowstest\graphics\d3d\conf |
參數
參數名稱 | 參數描述 |
---|---|
MODIFIEDCMDLINE | 測試可執行檔的其他命令列引數 |
LLU_NetAccessOnly | LLU NET 使用者的名稱 |
ConfigDisplayCommandLine | ConfigDisplay 的自訂命令列。 預設值:標誌 |
TDRArgs | /get 或 /set |