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
Specifications |
|
Platforms |
|
Supported Releases |
|
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:
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\ |
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 |