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

Associated requirements

Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD

See the device hardware requirements.

Platforms

Windows 7 (x64) Windows 7 (x86) Windows RT (ARM-based) Windows 8 (x64) Windows 8 (x86) Windows Server 2012 (x64) Windows Server 2008 R2 (x64) Windows RT 8.1 Windows 8.1 x64 Windows 8.1 x86 Windows Server 2012 R2

Expected run time

~2 minutes

Categories

Certification Functional

Type

Manual

 

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 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\

 

 

 

Send comments about this topic to Microsoft