DXVA 高清视频处理 - CreateVideoSurface

此自动测试调用 GetVideoProcessorDeviceCaps。 然后,使用这些上限,根据生成的 dxvahd 设备中内容的默认内存池宽度大小生成多个测试用例。

测试用例还会检查每个设备支持的输入和输出格式。 它验证是否可以为每个输入和输出图面创建一个图面,并确认未知格式失败。 测试用例还验证为每种格式创建多个图面的情况。

大多数情况下,此测试只显示一个类似于滚动信息区的窗口,该窗口会递增通过计数和失败计数,并显示正在循环访问的测试用例变量。

如果驱动程序未公开 D3DCAPS3_DXVAHD,则测试可能会返回“跳过”。 在某些情况下,如果不支持某些图面格式,则可能会跳过。

测试详细信息

   
规范
  • Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD
  • Device.Graphics.AdapterRender.YUVSupport
平台
  • 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 测试问题

详细信息

此测试验证以下要求:

  • 验证指向 DXVAHD_VPDEVCAPS 的有效指针是否成功。

    • 验证 OutputFormat 和 InputFormat 计数是否正确,以及是否与关联的 get 例程一起正常工作。

    • 验证 VideoProcessorCount 是否正确映射到视频处理器的数量。

    • 验证 MaxInputStreams 是否大于零。

    • 验证 MaxStreamStates 是否大于零。

  • 验证使用 DXVAHD_VPDEVCAPS.InputFormatCount 时是否成功。

  • 验证使用小于和大于 InputFormatCount 时是否失败。

  • 验证是否支持 D3DFMT_X8R8G8B8。

  • 验证使用 DXVAHD_VPDEVCAPS.InputFormatCount 时是否成功。

  • 验证使用小于和大于 InputFormatCount 时是否失败。

  • 验证 D3DFMT_X8R8G8B8、D3DFMT_A8R8G8B8、D3DFMT_YUY2 和 AYUV (FourCC) 是否被报告为受支持。

  • 验证所有解码呈现器目标格式是否也被报告为受支持。

  • 创建具有与内容说明输入宽度高度相同的宽度高度的图面。

  • 创建具有大于和小于内容说明输入宽度高度的宽度高度的图面。

  • 创建具有来自 DXVAHD_VPDEVCAPS.InputPool 的 D3DPOOL 类型的图面。 然后,使用不同的 InputPool,验证在处理 VPBltHD 时是否返回 E_INVALIDCALL。

  • 验证 0 以外的任何使用值是否会生成返回值 (E_INVALIDARG)。

  • 创建 DXVAHD_SURFACE_TYPE_VIDEO_INPUT 的图面,并尝试使用 D3D9 API 对其执行一些操作。 验证是否成功。 (屏幕外平面。)

    • 循环访问通过 IDXVAHD_Device::GetVideoProcessorInputFormats 获得的所有受支持的输入 D3D 格式。 然后检查不受支持的 D3D 格式。
  • 创建 DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE 的图面。 确认通过 D3D 9 API 对其进行操作会失败。 (屏幕外平面。)

    • 循环访问通过 IDXVAHD_Device::GetVideoProcessorInputFormats 获得的所有受支持的输入 D3D 格式。 然后检查不受支持的 D3D 格式。
  • 创建 DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT 的图面,并作为呈现器目标进行验证。

    • 循环访问通过 IDXVAHD_Device::GetVideoProcessorOutputFormats 获得的所有受支持的输入 D3D 格式。 然后检查不受支持的 D3D 格式。
  • 尝试创建单个图面,然后验证 ppSurfaces 是否只包含一个图面。

  • 创建多个图面,并验证图面数是否等于传递的 NumSurfaces 表示的图面数。

  • 确认失败的 ppSurfaces 为 NULL。

命令语法

命令选项 说明

DXVAHDVideoProcessing CreateVideoSurface

如果未使用任何选项,测试将枚举除某些极端无效参数测试用例以外的所有测试用例。

TestPriority:[0, 1, 2]

默认情况下以优先级 1 进行测试,但优先级 2 将测试每个排列,包括极端无效参数测试用例。 0 用于 BVT 级别。

SoftwareOnly

仅测试视频处理器的软件实现。 这主要用于驱动程序支持测试用例之前的初始测试。

SaveAllFrames

此测试将无效帧的硬编码保存计数设置为 100。 如果你希望保存所有无效帧,则使用此标志。 适用于较高帧计数会导致测试用例失败的情况。

LogLevel:[0, 1, 2]

此测试能够记录非常详细的日志。 但默认情况下,级别设置为 0;级别 1 将为每个测试用例收集更多日志记录信息,包括许多流状态/blt 状态集。 级别 2 将收集所有调整后的流状态和 blt 状态,以及任何配置信息。

 

文件列表

文件 位置

DXVAHDVideoProcessing.exe

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

Dxvahdsw.dll

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

 

参数

参数名称 参数说明
LLU_NetAccessOnly 用于网络访问的 LLU
ConfigDisplayCommandLine ConfigDisplay 的自定义命令行。 默认值:徽标
MODIFIEDCMDLINE 测试可执行文件的其他命令行参数