WGF11 光栅器 (WoW64)
此自动测试验证硬件实现的 D3D 基元光栅器和光栅器状态的各个方面。
本主题适用于以下测试作业:
WGF11 光栅器
WGF11 光栅器 (WoW64)
测试详细信息
规范 |
|
平台 |
|
支持的版本 |
|
预计运行时间(以分钟为单位) | 2 |
类别 | 兼容性 |
超时(以分钟为单位) | 120 |
需要重启 | false |
需要特殊配置 | false |
类型 | automatic |
其他文档
此功能区域中的测试可能会有其他文档,包括先决条件、设置和故障排除信息,这些内容可在以下主题中找到:
运行测试
在运行测试之前,请按照如下测试要求中所述完成测试设置:图形适配器或芯片组测试先决条件。
故障排除
有关 HLK 测试失败的常规故障排除,请参阅排查 Windows HLK 测试失败问题。
有关故障排除信息,请参阅排查 Device.Graphics 测试问题。
所有测试用例都返回“通过”或“失败”。 在日志文件中查看测试结果,获取有关失败的特定详细信息。 如果运行测试时使用了不支持正在测试的功能的功能级别,则测试可能会返回“跳过”。 如果有未捕获的异常(框架会在末尾捕获它并对它进行日志记录),则测试可能会返回“已阻止”。
更多信息
对于 D3D10 及更高版本,此测试验证以下各项:
基于光栅器状态的基元剔除、填充模式和缠绕顺序。
像素着色器中的内插模式
恒定模式很简单,因为从顶点着色器发送的值没有变化。
由于它没有进行严格的规范,因此可通过确保相邻像素不相等并遵循边缘渐变样式来验证线性模式。
采样频率像素着色器调用(D3D10.1 及更高版本)。
对于 D3D11,此测试验证拉取模型属性计算。
以下内部函数将引入到 D3D11 (HLSL 5.0) 中,用于拉取模型属性计算的功能:
EvaluateAttributeSnapped( attrib numeric value, int2 pixeloffset )
EvaluateAttributeAtSample( attrib numeric value, uint sampleindex )
EvaluateAttributeAtCentroid( attrib numeric value )
对于每个内部函数,将生成一组像素着色器,这针对的是将内部函数的参数值与输入属性的已声明内插模式进行不同组合的情况。
下面是所有三个内部函数的测试因素:
从顶点着色器传递的输入属性。
注意
只能内插 float 类型属性;int/uint 类型将始终为常量内插模式
float4 texCoord : TEXCOORD
float4 color : COLOR
float clipDis : SV_ClipDistance
内插模式的声明。
注意
在着色器中使用拉取模型计算相应的属性时,HLSL 编译器不允许使用非内插模式。
linear
线性非透视
线性质心
线性示例
线性非透视质心
线性非透视示例
要绘制的基元:
当内插模式为线性时,将绘制如下所示的三角 C1-C2-C3。 这涵盖一个完整像素和两个半像素。 投影空间中顶点的坐标如下所示:
<此处需要图像
C1:(-1, 1, 0)、C2:(-1, -1, 0)、C3:(1, 1, 0)。
正方形内的直角三角形,顶点为 C1、C2 和 C3;C1 形成 90 度角,位于正方形的左上角
当内插模式为非透视时,将绘制在投影空间中具有以下顶点坐标的三角形 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 网格的位置,以及 4 个来自 16x16 网格的位置。
EvaluateAttributeAtSample() 的不同 sampleindex 值
呈现器目标支持的所有示例索引
像素着色器将内插属性值写入呈现器目标意味着验证方法开始。 然后,映射并读取呈现器目标数据。在对呈现器目标进行多个采样的情况下,需要在映射之前进行多样本解析。 结果数据将与预先计算的内插数据或从直接访问属性所获得的数据进行比较。
如果内插模式为线性非透视模式:
为 p1、p2、p3 的每个像素的 256 个偏移位置计算和存储 p2 和 p3 的内插值(对于 p2 和 p3 的非涵盖区域,则为外推值)。
对于 EvaluateAttributeSnapped:
象素 p1 的“已拉取”属性值应该介于“已拉取”偏移量的左侧和右侧(以及顶部和底部)相邻偏移量的预期值之间。
像素 p2 和 p3:
在单采样的情况下,不应呈现它们。
在多采样的情况下,它们的“已拉取”属性值应该介于“已拉取”偏移量的左侧和右侧(以及顶部和底部)相邻偏移量的预期值之间。
对于包含 SampleFinder 的 EvaluateAttributeAtSample,请找到示例坐标系统上的示例索引的位置,其范围为 [-8, 7]。 使用此位置执行验证的方式与上面的 EvaluateAttributeSnapped 中的相同。
对于 EvaluateAttributeAtCentroid,请使用 SV_COVERAGE 绘制三角形 C1-C2-C3,以找出第一个涵盖的示例,即着色器模型 5.0 定义的质心位置。 使用质心的示例索引来执行验证,其方式与上述 EvaluateAttributeAtSample 中的相同。
如果内插模式为线性模式:
使用正确的透视内插,为每个像素的 256 个偏移位置计算和存储 p2 和 p3 的内插值(对于 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 名称 |
ConfigDisplayCommandLine | ConfigDisplay 的自定义命令行。 默认值:徽标 |
TDRArgs | /get 或 /set |