DXVA High Definition Video Processing - CreateVideoProcessor

This manual test runs test cases across the following: IDXVAHD_Device::GetVideoProcessorCaps, IDXVAHD_Device::GetVideoProcessorCustomRates, IDXVAHD_Device::GetVideoProcessorFilterRange, IDXVAHD_Device::CreateVideoProcessor.

This test will, for the most part, show a ticker-like window incrementing pass fail counts and showing which test case variables are being iterated upon. The test might return SKIP if the driver does not expose D3DCAPS3_DXVAHD. In some cases, it might skip if another device is not available to query other VP GUIDs from.

For both valid and invalid calls to the API entry points, verify that the proper return values match up to those exposed by the capabilities. Also confirm the ability to create a video processor successfully. If the VP GUID is invalid, the test should return a FAIL.

Test details

   
Specifications
  • Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD
Platforms
  • Windows 10, client editions (x86)
  • Windows 10, client editions (x64)
  • Windows Server 2016 (x64)
  • Windows 10, client editions (Arm64)
Supported Releases
  • Windows 10
  • Windows 10, version 1511
  • Windows 10, version 1607
  • Windows 10, version 1703
  • Windows 10, version 1709
  • Windows 10, version 1803
  • Windows 10, version 1809
  • Windows 10, version 1903
  • Next update to Windows 10
Expected run time (in minutes) 2
Category Compatibility
Timeout (in minutes) 120
Requires reboot false
Requires special configuration false
Type automatic

 

Additional documentation

Tests in this feature area might have additional documentation, including prerequisites, setup, and troubleshooting information, that can be found in the following topic(s):

Running the test

Before you run the test, complete the test setup as described in the test requirements: Graphic Adapter or Chipset Testing Prerequisites.

In addition, this test requires the following software:

  • A display driver that supports D3D9Caps.Caps3 D3DCAPS3_DXVAHD. Specifically:

    • D3D9 support exposing D3DCAPS3_DXVAHD.

    • Required output formats: D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8.

    • Required input formats: D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_YUY2, D3DFMT_AYUV and any decode render targets supported.

  • dxvahdsw.dll.

Troubleshooting

For generic troubleshooting of HLK test failures, see Troubleshooting Windows HLK Test Failures.

For troubleshooting information, see Troubleshooting Device.Graphics Testing.

More information

This test verifies the following requirements:

  • IDXVAHD_Device::GetVideoProcessorCaps

    • Use a valid number of video processors from DXVAHD_VPDEVCAPS.VideoProcessorCount.

    • Use both a number less than the video processors count and a number greater than video processors Count verify result is E_INVALIDARG.

    • Validate pCaps is empty on failure.

    • Verify VPGUID for given device works successfully with GetVideoProcessorCustomRates.

    • Verify CustomRateCount corresponds and works properly with GetVideoProcessorCustomRates.

    • Verify that PastFrames and FutureFrames (Counts) work accordingly with DXVAHD_STREAM_DATA expected counts.

  • IDXVAHD_Device::GetVideoProcessorCustomRates

    • With the valid video processor GUID for this device, then a valid GUID from another DXVAHD Device if another device can be found with a different GUID.

    • With an invalid zeroed out GUID.

    • Verify pRates is successfully filled when valid pVPGUID and Count are used.

    • Use both a number less than the DXVAHD_VPCAPS.CustomRateCount and a number greater than DXVAHD_VPCAPS.CustomRateCount. Both should result in E_INVALIDARG.

    • Validate pRates is empty on failure.

  • IDXVAHD_Device::GetVideoProcessorFilterRange

    • Iterate over all filters, validating for any failures that pRange is NULL.

    • Out of range filter value and validate E_INVALIDARG.

    • Verify Empty pRange on failure.

    • Verify maximum value is greater than minimum.

    • Verify the default value is within minimum and maximum values.

  • IDXVAHD_Device::CreateVideoProcessor

    • With the valid video processor GUID for this device, then a valid GUID from another DXVAHD Device if another device can be found with a different GUID.

    • With an invalid zeroed out GUID.

    • Verify ppVideoProcessor is NULL upon any failures.

Command syntax

Command option Description

DXVAHDVideoProcessing CreateVideoProcessor

Without any options, the test enumerates all but some extreme invalid argument test cases.

TestPriority:[0, 1, 2]

By default, tests at a priority 1 level; however, priority 2 will test every permutation, including extreme invalid arg test cases. 0 is for BVT level.

SoftwareOnly

Tests only the software implementation of the video processor. This was mainly used for initial testing before drivers supported the test cases.

SaveAllFrames

The test has hard coded save count of invalid frames set to 100. I you want all of them saved, then use this flag. Good for high frame count test case failures.

LogLevel:[0, 1, 2]

The test has the ability to be very verbose in its logging methods. By default level 0 is set, however; level one will gather increased logging info per test cases, including many stream states/blt states set. Level 2 will gather all adjusted stream states and blt states, as well as any configuration information.

 

File list

File Location

DXVAHDVideoProcessing.exe

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

Dxvahdsw.dll

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

 

Parameters

Parameter name Parameter description
LLU_NetAccessOnly LLU for net access
ConfigDisplayCommandLine Custom Command Line for ConfigDisplay. Default: logo
MODIFIEDCMDLINE Additional command line arguments for test executable