Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/surface.c:
/* R and G channels converted to SNORM range. */
SetRect(&rect, 0, 0, 2, 2);
hr = D3DXLoadSurfaceFromMemory(surf, NULL, NULL, pixdata_a8b8g8r8_2, D3DFMT_A8B8G8R8, 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_2bpp(&lockrect, 0, 0, 0x9282);
todo_wine check_pixel_2bpp(&lockrect, 1, 0, 0xd2c2);
todo_wine check_pixel_2bpp(&lockrect, 0, 1, 0x1000);
todo_wine check_pixel_2bpp(&lockrect, 1, 1, 0x5040);
hr = IDirect3DSurface9_UnlockRect(surf);
ok(hr == D3D_OK, "Failed to unlock surface, hr %#lx.\n", hr);
/* Copy the V8U8 channels. */
"Copy" here is a bit misleading given that 0x80 and 0x81 values are both nudged to 0x82.