Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/surface.c:
todo_wine check_pixel_4bpp(&lockrect, 0, 1, 0x00b01000);
todo_wine check_pixel_4bpp(&lockrect, 1, 1, 0x00ff5040);
hr = IDirect3DSurface9_UnlockRect(surf);
ok(hr == D3D_OK, "Failed to unlock surface, hr %#lx.\n", hr);
/* Q8 will get converted to unorm range, v8u8 will be copied. */
hr = D3DXLoadSurfaceFromMemory(surf, NULL, NULL, pixdata_q8w8v8u8, D3DFMT_Q8W8V8U8, 8, NULL, &rect,
D3DX_FILTER_NONE, 0);
todo_wine ok(hr == D3D_OK, "Unexpected hr %#lx.\n", hr);
hr = IDirect3DSurface9_LockRect(surf, &lockrect, NULL, D3DLOCK_READONLY);
ok(hr == D3D_OK, "Failed to lock surface, hr %#lx.\n", hr);
todo_wine check_pixel_4bpp(&lockrect, 0, 0, 0x00b01000);
todo_wine check_pixel_4bpp(&lockrect, 1, 0, 0x00ff5040);
todo_wine check_pixel_4bpp(&lockrect, 0, 1, 0x002f8282);
todo_wine check_pixel_4bpp(&lockrect, 1, 1, 0x007ed1c1);
Interesting.