Check resource binding tier
This commit is contained in:
@@ -41,6 +41,25 @@ namespace Juliet::D3D12
|
||||
constexpr D3D_FEATURE_LEVEL kD3DFeatureLevel = D3D_FEATURE_LEVEL_12_1;
|
||||
constexpr auto kD3DFeatureLevelStr = "12_1";
|
||||
|
||||
bool CheckResourceTypeTier(ID3D12Device5* device)
|
||||
{
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS options = {};
|
||||
HRESULT result = ID3D12Device5_CheckFeatureSupport(device, D3D12_FEATURE_D3D12_OPTIONS, &options,
|
||||
sizeof(D3D12_FEATURE_DATA_D3D12_OPTIONS));
|
||||
if (SUCCEEDED(result))
|
||||
{
|
||||
if (options.ResourceBindingTier < D3D12_RESOURCE_BINDING_TIER_3)
|
||||
{
|
||||
Juliet::LogError(LogCategory::Graphics, "Resource Binding Tier 3 not supported. :(");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Juliet::LogError(LogCategory::Graphics, "Couldn't fetch D3D12_FEATURE_D3D12_OPTIONS :(");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CheckShaderModel(ID3D12Device5* device)
|
||||
{
|
||||
// Check Shader Model
|
||||
@@ -161,6 +180,7 @@ namespace Juliet::D3D12
|
||||
if (SUCCEEDED(result))
|
||||
{
|
||||
driverIsValid &= CheckShaderModel(device);
|
||||
driverIsValid &= CheckResourceTypeTier(device);
|
||||
|
||||
ID3D12Device5_Release(device);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user