On 6 January 2016 at 23:56, Stefan Dösinger stefandoesinger@gmx.at wrote:
- hr = ID3D10Device_CreateTexture2D(device, &desc, NULL, &single);
- ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr);
- ID3D10Device_ResolveSubresource(device, (ID3D10Resource *)single, 0,
(ID3D10Resource *)multi, 0, DXGI_FORMAT_R8G8B8A8_UNORM);
- get_texture_readback(single, &rb);
- for (y = 0; y < 480; ++y)
- {
for (x = 0; x < 640; ++x)
{
color = get_readback_color(&rb, x, y);
if (!compare_color(color, 0x00000000, 0))
{
all_zero = FALSE;
break;
}
}
if (!all_zero)
break;
- }
- release_texture_readback(&rb);
- ok(all_zero, "Got unexpected color 0x%08x, position %ux%u.\n", color, x, y);
This probably works, but depends very much on ResolveSubresource() working as intended. I think it would be a little more robust to first clear "single" with a different color. Also, it's not strictly required, but if you use a swapchain surface to resolve to, it's easier to later debug the test visually by inserting a Present() call in the appropriate place.