Some applications will not start if they find this query not available.
Tested on Ubuntu 17.10.
Signed-off-by: Pablo Martin <pmart-wine(a)riseup.net>
---
dlls/d3d11/device.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index d3155d56bf..02dff99452 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -3445,6 +3445,18 @@ static HRESULT STDMETHODCALLTYPE
d3d11_device_CheckFeatureSupport(ID3D11Device *
return S_OK;
}
+ case D3D11_FEATURE_ARCHITECTURE_INFO:
+ {
+ D3D11_FEATURE_DATA_ARCHITECTURE_INFO *options = feature_support_data;
+ if (feature_support_data_size != sizeof(*options))
+ {
+ WARN("Invalid data size.\n");
+ return E_INVALIDARG;
+ }
+ options->TileBasedDeferredRenderer = FALSE;
+ return S_OK;
+ }
+
default:
FIXME("Unhandled feature %#x.\n", feature);
return E_NOTIMPL;
--
2.14.1
Show replies by date
This query is not available in all windows versions so I added broken() checks in the
tests.
Tested on Ubuntu 17.10.
v2: Fix broken test for windows versions not supporting the query.
Signed-off-by: Pablo Martin <pmart-wine(a)riseup.net>
---
dlls/d3d11/tests/d3d11.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index 8ca6634626..9c499259f6 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -15486,6 +15486,7 @@ static void test_check_feature_support(void)
{
D3D11_FEATURE_DATA_THREADING threading[2];
D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS hwopts;
+ D3D11_FEATURE_DATA_ARCHITECTURE_INFO archinfo;
ID3D11Device *device;
ULONG refcount;
HRESULT hr;
@@ -15544,6 +15545,13 @@ static void test_check_feature_support(void)
ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
trace("Compute shader support via SM4 %#x.\n",
hwopts.ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x);
+ hr = ID3D11Device_CheckFeatureSupport(device, D3D11_FEATURE_ARCHITECTURE_INFO,
&archinfo, sizeof(archinfo));
+ ok(hr == S_OK || broken(hr == E_INVALIDARG) /* Not available on all Windows versions.
*/,
+ "Got unexpected hr %#x.\n", hr);
+ hr = ID3D11Device_CheckFeatureSupport(device, D3D11_FEATURE_ARCHITECTURE_INFO,
&archinfo, sizeof(archinfo)*2);
+ ok(hr == E_INVALIDARG /* Not available on all Windows versions but they will return
E_INVALIDARG anyways. */,
+ "Got unexpected hr %#x.\n", hr);
+
refcount = ID3D11Device_Release(device);
ok(!refcount, "Device has %u references left.\n", refcount);
}
--
2.14.1