Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/surface.c:
+ mismatch_count++; + } + } + IDirect3DSurface9_UnlockRect(surf); + + todo_wine_if(tests[i].todo) ok(!mismatch_count, "Unexpected number of mismatched pixels %u.\n", mismatch_count); + winetest_pop_context(); + } + + /* + * Test color key handling for compressed formats. On 64-bit the color key + * is used, but on 32-bit it is ignored. + */ + SetRect(&rect, 0, 0, 4, 4); + hr = D3DXLoadSurfaceFromMemory(surf, NULL, NULL, dxt5_4_4, D3DFMT_DXT5, 16, NULL, &rect, D3DX_FILTER_NONE, + 0xffff0000); It looks like this and the following tests could also plausibly work in the generic, table-based test above. There are at least a couple ways to handle the 64 vs 32 bit difference, but probably easiest is to just have a separate `expected_32` struct component. We could make it more obvious when it does actually matter by using `NULL` for it otherwise, to imply that there is no difference with the "normal" 64 bit case.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7711#note_102875