Share via


DXVA High Definition Video Processing - CreateVideoSurface

This automated test calls the GetVideoProcessorDeviceCaps. Then, using those caps, it generates multiple test cases based on a default memory pool width size of the content from the generated dxvahd device.

The test case also checks the supported input and output formats of each device. It verifies that a surface can be created for each input and output surface, and confirms that unknown formats fail. The test case also verifies creation of multiple surfaces for each format as well.

Test will for the most part just 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 certain surface formats are not-supported.

Test details

Associated requirements

Device.Graphics.AdapterRender.YUVSupport 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:

  • Verify Success with valid pointer to DXVAHD_VPDEVCAPS.

    • Verify OutputFormat and InputFormat Counts are correct and function properly with associated get routines.

    • Verify VideoProcessorCount correctly maps to number of video processors.

    • Verify MaxInputStreams greater than zero.

    • Verify MaxStreamStates greater than zero.

  • Verify success when DXVAHD_VPDEVCAPS.InputFormatCount is used.

  • Verify failure when less than and greater than InputFormatCount is used.

  • Verify that D3DFMT_X8R8G8B8 is supported.

  • Verify success when DXVAHD_VPDEVCAPS.InputFormatCount is used.

  • Verify failure when less than and greater than InputFormatCount is used.

  • Verify that D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_YUY2, and AYUV (FourCC) are reported as supported.

  • Verify that all decode render target formats report as supported as well.

  • Create Surface with Width Height that of the content description input width height.

  • Create Surface with Width Height different both larger and smaller of the content description input width height.

  • Create Surface with D3DPOOL type from DXVAHD_VPDEVCAPS.InputPool. Then with a different InputPool, verify during Processing VPBltHD returns E_INVALIDCALL.

  • Verify any usage value other than 0 results in return value (E_INVALIDARG).

  • Create a surface of DXVAHD_SURFACE_TYPE_VIDEO_INPUT, and attempt to manipulate it some way with D3D9 API. Validate success. (Off-screen plain.)

    • Iterate over all supported input D3D formats obtained by IDXVAHD_Device::GetVideoProcessorInputFormats. Then check an unsupported D3D format.
  • Create a surface of DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE. Confirm that manipulation of it through the D3D 9 API fails. (Off-screen plain.)

    • Iterate over all supported input D3D formats obtained by IDXVAHD_Device::GetVideoProcessorInputFormats. Then check an unsupported D3D format.
  • Create a surface of DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT, and validate as a render target.

    • Iterate over all supported input D3D formats obtained by IDXVAHD_Device::GetVideoProcessorOutputFormats. Then check an unsupported D3D format.
  • Attempt to create a single surface, and then verify ppSurfaces only contains one surface.

  • Create multiple surfaces, and verify the number of surfaces equals the number of surfaces represented by NumSurfaces passed.

  • Confirm that ppSurfaces that fail are NULL.

Command syntax

Command option Description

DXVAHDVideoProcessing CreateVideoSurface

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