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`).