On 22 January 2014 23:42, Ken Thomases ken@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