From d0c27b352f1f3ffad5b2e7b445246ff948c457bd Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 20 Nov 2019 12:02:43 +0000 Subject: [PATCH] When forcing RaytracingTier to unsupported, fetch the rest of the struct --- renderdoc/driver/d3d12/d3d12_device_wrap.cpp | 21 +++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp index 1933cfa2b..8af9cefdb 100644 --- a/renderdoc/driver/d3d12/d3d12_device_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_device_wrap.cpp @@ -2709,15 +2709,22 @@ HRESULT WrappedID3D12Device::CheckFeatureSupport(D3D12_FEATURE Feature, void *pF } if(Feature == D3D12_FEATURE_D3D12_OPTIONS5) { - D3D12_FEATURE_DATA_D3D12_OPTIONS5 *opts = - (D3D12_FEATURE_DATA_D3D12_OPTIONS5 *)pFeatureSupportData; - if(FeatureSupportDataSize != sizeof(D3D12_FEATURE_DATA_D3D12_OPTIONS5)) - return E_INVALIDARG; + HRESULT hr = m_pDevice->CheckFeatureSupport(Feature, pFeatureSupportData, FeatureSupportDataSize); - // don't support raytracing - opts->RaytracingTier = D3D12_RAYTRACING_TIER_NOT_SUPPORTED; + if(SUCCEEDED(hr)) + { + D3D12_FEATURE_DATA_D3D12_OPTIONS5 *opts = + (D3D12_FEATURE_DATA_D3D12_OPTIONS5 *)pFeatureSupportData; + if(FeatureSupportDataSize != sizeof(D3D12_FEATURE_DATA_D3D12_OPTIONS5)) + return E_INVALIDARG; - return S_OK; + // don't support raytracing + opts->RaytracingTier = D3D12_RAYTRACING_TIER_NOT_SUPPORTED; + + return S_OK; + } + + return hr; } return m_pDevice->CheckFeatureSupport(Feature, pFeatureSupportData, FeatureSupportDataSize); }