[PATCH 3/3] d3d9/tests: Improve testing of display formats and IDirect3D9_CheckDeviceType().

Henri Verbeet hverbeet at gmail.com
Mon Jan 27 05:16:38 CST 2014


On 22 January 2014 23:42, Ken Thomases <ken at codeweavers.com> wrote:
>
> Consolidates duplicated code by using a simpler table-driven mechanism.
> Instead of manually listing out certain combinations of display formats vs.
> backbuffer formats, it just lists the formats and some metadata about them.
> The algorithm tests every format against every format, using the metadata
> to predict success or failure.  This also tests that CheckDeviceType() fails
> for display formats for which there are no adapter modes, rather than
> skipping those.
>
> Tests windowed mode.
> ---
> dlls/d3d9/tests/device.c |  162 ++++++++++++++++++----------------------------
> 1 files changed, 64 insertions(+), 98 deletions(-)
>

This fails on native (Win 7, AMD Radeon HD 6310), and produces quite a
lot of output in general:

device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_R5G6B5, windowed 0, shouldPass 1
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_X1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_A1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_X8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_A8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_A2R10G10B10, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_UNKNOWN, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_R5G6B5, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_X1R5G5B5, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_A1R5G5B5, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_X8R8G8B8, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_A8R8G8B8, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_A2R10G10B10, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_R5G6B5, backbuffer format
D3DFMT_UNKNOWN, windowed 1, shouldPass 1
device.c:2316: Display format D3DFMT_X1R5G5B5 not supported
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_R5G6B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_X1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_A1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_X8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_A8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_A2R10G10B10, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_UNKNOWN, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_R5G6B5, windowed 1, shouldPass 0
device.c:2357: Test failed: format D3DFMT_X1R5G5B5(24)
D3DFMT_R5G6B5(23) windowed passed while it wasn't expected to
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_X1R5G5B5, windowed 1, shouldPass 0
device.c:2357: Test failed: format D3DFMT_X1R5G5B5(24)
D3DFMT_X1R5G5B5(24) windowed passed while it wasn't expected to
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_A1R5G5B5, windowed 1, shouldPass 0
device.c:2357: Test failed: format D3DFMT_X1R5G5B5(24)
D3DFMT_A1R5G5B5(25) windowed passed while it wasn't expected to
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_X8R8G8B8, windowed 1, shouldPass 0
device.c:2357: Test failed: format D3DFMT_X1R5G5B5(24)
D3DFMT_X8R8G8B8(22) windowed passed while it wasn't expected to
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_A8R8G8B8, windowed 1, shouldPass 0
device.c:2357: Test failed: format D3DFMT_X1R5G5B5(24)
D3DFMT_A8R8G8B8(21) windowed passed while it wasn't expected to
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_A2R10G10B10, windowed 1, shouldPass 0
device.c:2357: Test failed: format D3DFMT_X1R5G5B5(24)
D3DFMT_A2R10G10B10(35) windowed passed while it wasn't expected to
device.c:2347: Testing display format D3DFMT_X1R5G5B5, backbuffer
format D3DFMT_UNKNOWN, windowed 1, shouldPass 0
device.c:2357: Test failed: format D3DFMT_X1R5G5B5(24)
D3DFMT_UNKNOWN(0) windowed passed while it wasn't expected to
device.c:2316: Display format D3DFMT_A1R5G5B5 not supported
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_R5G6B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_X1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_A1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_X8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_A8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_A2R10G10B10, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_UNKNOWN, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_R5G6B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_X1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_A1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_X8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_A8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_A2R10G10B10, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A1R5G5B5, backbuffer
format D3DFMT_UNKNOWN, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_R5G6B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_X1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_A1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_X8R8G8B8, windowed 0, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_A8R8G8B8, windowed 0, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_A2R10G10B10, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_UNKNOWN, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_R5G6B5, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_X1R5G5B5, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_A1R5G5B5, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_X8R8G8B8, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_A8R8G8B8, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_A2R10G10B10, windowed 1, shouldPass 1
device.c:2347: Testing display format D3DFMT_X8R8G8B8, backbuffer
format D3DFMT_UNKNOWN, windowed 1, shouldPass 1
device.c:2316: Display format D3DFMT_A8R8G8B8 not supported
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_R5G6B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_X1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_A1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_X8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_A8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_A2R10G10B10, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_UNKNOWN, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_R5G6B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_X1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_A1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_X8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_A8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_A2R10G10B10, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A8R8G8B8, backbuffer
format D3DFMT_UNKNOWN, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_R5G6B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_X1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_A1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_X8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_A8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_A2R10G10B10, windowed 0, shouldPass 1
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_UNKNOWN, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_R5G6B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_X1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_A1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_X8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_A8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_A2R10G10B10, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_A2R10G10B10, backbuffer
format D3DFMT_UNKNOWN, windowed 1, shouldPass 0
device.c:2316: Display format D3DFMT_UNKNOWN not supported
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_R5G6B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_X1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_A1R5G5B5, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_X8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_A8R8G8B8, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_A2R10G10B10, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_UNKNOWN, windowed 0, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_R5G6B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_X1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_A1R5G5B5, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_X8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_A8R8G8B8, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_A2R10G10B10, windowed 1, shouldPass 0
device.c:2347: Testing display format D3DFMT_UNKNOWN, backbuffer
format D3DFMT_UNKNOWN, windowed 1, shouldPass 0



More information about the wine-devel mailing list