On Fri, Jan 29, 2016 at 12:51 AM, Matteo Bruni mbruni@codeweavers.com wrote:
Signed-off-by: Matteo Bruni mbruni@codeweavers.com
dlls/d3d10core/tests/device.c | 5 ++--- dlls/d3d11/device.c | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d10core/tests/device.c b/dlls/d3d10core/tests/device.c index 92ae1cf..d267471 100644 --- a/dlls/d3d10core/tests/device.c +++ b/dlls/d3d10core/tests/device.c @@ -5002,7 +5002,7 @@ static void test_multisample_init(void) }
hr = ID3D10Device_CheckMultisampleQualityLevels(device, DXGI_FORMAT_R8G8B8A8_UNORM, 2, &count);
- todo_wine ok(SUCCEEDED(hr), "Failed to get quality levels, hr %#x.\n", hr);
- ok(SUCCEEDED(hr), "Failed to get quality levels, hr %#x.\n", hr); if (!count) { skip("Multisampling not supported for DXGI_FORMAT_R8G8B8A8_UNORM, skipping tests.\n");
@@ -5032,7 +5032,6 @@ static void test_multisample_init(void) hr = ID3D10Device_CreateTexture2D(device, &desc, NULL, &multi); ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr);
- ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); ID3D10Device_ResolveSubresource(device, (ID3D10Resource *)backbuffer, 0, (ID3D10Resource *)multi, 0, DXGI_FORMAT_R8G8B8A8_UNORM);
@@ -5052,7 +5051,7 @@ static void test_multisample_init(void) break; } release_texture_readback(&rb);
- ok(all_zero, "Got unexpected color 0x%08x, position %ux%u.\n", color, x, y);
todo_wine ok(all_zero, "Got unexpected color 0x%08x, position %ux%u.\n", color, x, y);
ID3D10RenderTargetView_Release(rtview); ID3D10Texture2D_Release(backbuffer);
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index 785e537..e7d2521 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -4501,10 +4501,39 @@ static HRESULT STDMETHODCALLTYPE d3d10_device_CheckFormatSupport(ID3D10Device1 * static HRESULT STDMETHODCALLTYPE d3d10_device_CheckMultisampleQualityLevels(ID3D10Device1 *iface, DXGI_FORMAT format, UINT sample_count, UINT *quality_level_count) {
- FIXME("iface %p, format %s, sample_count %u, quality_level_count %p stub!\n",
- struct d3d_device *device = impl_from_ID3D10Device(iface);
- HRESULT hr;
- TRACE("iface %p, format %s, sample_count %u, quality_level_count %p.\n", iface, debug_dxgi_format(format), sample_count, quality_level_count);
- return E_NOTIMPL;
- if (!quality_level_count)
return E_INVALIDARG;
- *quality_level_count = 0;
- if (!sample_count)
return E_FAIL;
- if (sample_count == 1)
- {
*quality_level_count = 1;
return S_OK;
- }
- if (sample_count > 32)
return E_FAIL;
- if (sample_count > 16)
- {
FIXME("sample_count %u not handled yet.\n", sample_count);
return S_OK;
- }
- hr = wined3d_device_check_multisample_quality_levels(device->wined3d_device,
wined3dformat_from_dxgi_format(format), sample_count, quality_level_count);
- if (hr == WINED3DERR_INVALIDCALL)
return E_INVALIDARG;
- if (hr == WINED3DERR_NOTAVAILABLE)
return S_OK;
- return hr;
}
I think you could simply call d3d11_device_CheckFormatSupport() from d3d10_device_CheckFormatSupport(). We do it that way for some ID3D10Device methods, e.g. d3d10_device_CreateBlendState1().