diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index 29fa8b3752cc08c5d567370f99f9ddfcc62e0ca2..0508fa3f7b25642394a16d34bf4110edcf39c5ca 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -3402,6 +3402,18 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFormatSupport(ID3D11Device2 * } } + /* d3d11 requires 4 and 8 sample counts support for formats reported to + * support multisample. */ + if (wined3d_check_device_multisample_type(wined3d_adapter, params.device_type, wined3d_format, + TRUE, WINED3D_MULTISAMPLE_4_SAMPLES, NULL) == WINED3D_OK && + wined3d_check_device_multisample_type(wined3d_adapter, params.device_type, wined3d_format, + TRUE, WINED3D_MULTISAMPLE_8_SAMPLES, NULL) == WINED3D_OK) + { + *format_support |= D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE + | D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET + | D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD; + } + return S_OK; }