mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-18 02:52:10 +01:00
[d3d11] Implement remaining D3D11.1 feature queries
This commit is contained in:
parent
17e981f360
commit
c1a1ff3915
@ -1364,6 +1364,9 @@ namespace dxvk {
|
|||||||
if (FeatureSupportDataSize != sizeof(D3D11_FEATURE_DATA_THREADING))
|
if (FeatureSupportDataSize != sizeof(D3D11_FEATURE_DATA_THREADING))
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
// We report native support for command lists here so that we do not actually
|
||||||
|
// have to re-implement the UpdateSubresource bug from the D3D11 runtime, see
|
||||||
|
// https://msdn.microsoft.com/en-us/library/windows/desktop/ff476486(v=vs.85).aspx)
|
||||||
auto info = static_cast<D3D11_FEATURE_DATA_THREADING*>(pFeatureSupportData);
|
auto info = static_cast<D3D11_FEATURE_DATA_THREADING*>(pFeatureSupportData);
|
||||||
info->DriverConcurrentCreates = TRUE;
|
info->DriverConcurrentCreates = TRUE;
|
||||||
info->DriverCommandLists = TRUE;
|
info->DriverCommandLists = TRUE;
|
||||||
@ -1421,9 +1424,28 @@ namespace dxvk {
|
|||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
auto info = static_cast<D3D11_FEATURE_DATA_ARCHITECTURE_INFO*>(pFeatureSupportData);
|
auto info = static_cast<D3D11_FEATURE_DATA_ARCHITECTURE_INFO*>(pFeatureSupportData);
|
||||||
info->TileBasedDeferredRenderer = false;
|
info->TileBasedDeferredRenderer = FALSE;
|
||||||
} return S_OK;
|
} return S_OK;
|
||||||
|
|
||||||
|
case D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT: {
|
||||||
|
if (FeatureSupportDataSize != sizeof(D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT))
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
// Report that we only support full 32-bit operations
|
||||||
|
auto info = static_cast<D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT*>(pFeatureSupportData);
|
||||||
|
info->PixelShaderMinPrecision = 0;
|
||||||
|
info->AllOtherShaderStagesMinPrecision = 0;
|
||||||
|
} return S_OK;
|
||||||
|
|
||||||
|
case D3D11_FEATURE_D3D9_SHADOW_SUPPORT: {
|
||||||
|
if (FeatureSupportDataSize != sizeof(D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT))
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
auto info = static_cast<D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT*>(pFeatureSupportData);
|
||||||
|
info->SupportsDepthAsTextureWithLessEqualComparisonFilter = TRUE;
|
||||||
|
return S_OK;
|
||||||
|
} break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Logger::err(str::format(
|
Logger::err(str::format(
|
||||||
"D3D11Device: CheckFeatureSupport: Unknown feature: ",
|
"D3D11Device: CheckFeatureSupport: Unknown feature: ",
|
||||||
|
@ -63,4 +63,11 @@ typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS {
|
|||||||
typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO {
|
typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO {
|
||||||
BOOL TileBasedDeferredRenderer;
|
BOOL TileBasedDeferredRenderer;
|
||||||
} D3D11_FEATURE_DATA_ARCHITECTURE_INFO;
|
} D3D11_FEATURE_DATA_ARCHITECTURE_INFO;
|
||||||
|
typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT {
|
||||||
|
UINT PixelShaderMinPrecision;
|
||||||
|
UINT AllOtherShaderStagesMinPrecision;
|
||||||
|
} D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT;
|
||||||
|
typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT {
|
||||||
|
BOOL SupportsDepthAsTextureWithLessEqualComparisonFilter;
|
||||||
|
} D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT;
|
||||||
#endif
|
#endif
|
Loading…
x
Reference in New Issue
Block a user