[PATCH 0/1] MR3235: d3d11: Add support for D3D11_FEATURE_FORMAT_SUPPORT2.
Used by Assassin's Creed: Odyssey, Days Gone, F1 2018, Stray, etc. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3235
From: Andrey Gusev <andrey.goosev(a)gmail.com> Used by Assassin's Creed: Odyssey, Days Gone, F1 2018, Stray, etc. --- dlls/d3d11/device.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c index ca231af9652..f457e877378 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -4211,6 +4211,18 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFeatureSupport(ID3D11Device2 return d3d11_device_CheckFormatSupport(iface, data->InFormat, &data->OutFormatSupport); } + case D3D11_FEATURE_FORMAT_SUPPORT2: + { + D3D11_FEATURE_DATA_FORMAT_SUPPORT2 *data = feature_support_data; + if (feature_support_data_size != sizeof(*data)) + { + WARN("Invalid size %u for D3D11_FEATURE_FORMAT_SUPPORT2.\n", feature_support_data_size); + return E_INVALIDARG; + } + + return d3d11_device_CheckFormatSupport(iface, data->InFormat, &data->OutFormatSupport2); + } + default: FIXME("Unhandled feature %#x.\n", feature); return E_NOTIMPL; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3235
Chip Davis (@cdavis5e) commented about dlls/d3d11/device.c:
return d3d11_device_CheckFormatSupport(iface, data->InFormat, &data->OutFormatSupport); }
+ case D3D11_FEATURE_FORMAT_SUPPORT2: + { + D3D11_FEATURE_DATA_FORMAT_SUPPORT2 *data = feature_support_data; + if (feature_support_data_size != sizeof(*data)) + { + WARN("Invalid size %u for D3D11_FEATURE_FORMAT_SUPPORT2.\n", feature_support_data_size); + return E_INVALIDARG; + } + + return d3d11_device_CheckFormatSupport(iface, data->InFormat, &data->OutFormatSupport2);
This is wrong. This feature is supposed to return a set of `D3D11_FORMAT_SUPPORT2_*` flags (note the `2`). The `ID3D11Device::CheckFormatSupport()` method returns `D3D11_FORMAT_SUPPORT_*` flags (no `2`). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3235#note_37935
participants (3)
-
Andrey Gusev -
Andrey Gusev (@agusev) -
Chip Davis (@cdavis5e)