1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-19 14:52:10 +01:00

[d3d11] Implement D3D11.4 feature queries

This commit is contained in:
Philip Rebohle 2019-09-16 16:22:52 +02:00
parent 6ab6b4a209
commit 3ba541fde6
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -1625,6 +1625,34 @@ namespace dxvk {
info->UnifiedMemoryArchitecture = FALSE; // Maybe on some APUs?
} return S_OK;
case D3D11_FEATURE_D3D11_OPTIONS3: {
if (FeatureSupportDataSize != sizeof(D3D11_FEATURE_DATA_D3D11_OPTIONS3))
return E_INVALIDARG;
const auto& extensions = m_dxvkDevice->extensions();
auto info = static_cast<D3D11_FEATURE_DATA_D3D11_OPTIONS3*>(pFeatureSupportData);
info->VPAndRTArrayIndexFromAnyShaderFeedingRasterizer = extensions.extShaderViewportIndexLayer;
} return S_OK;
case D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT: {
if (FeatureSupportDataSize != sizeof(D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT))
return E_INVALIDARG;
// These numbers are not accurate, but it should not have any effect on D3D11 apps
auto info = static_cast<D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT*>(pFeatureSupportData);
info->MaxGPUVirtualAddressBitsPerResource = 32;
info->MaxGPUVirtualAddressBitsPerProcess = 40;
} return S_OK;
case D3D11_FEATURE_D3D11_OPTIONS4: {
if (FeatureSupportDataSize != sizeof(D3D11_FEATURE_DATA_D3D11_OPTIONS4))
return E_INVALIDARG;
auto info = static_cast<D3D11_FEATURE_DATA_D3D11_OPTIONS4*>(pFeatureSupportData);
info->ExtendedNV12SharedTextureSupported = FALSE;
} return S_OK;
default:
Logger::err(str::format(
"D3D11Device: CheckFeatureSupport: Unknown feature: ",