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 D3D_FEATURE_LEVEL kD3DFeatureLevel = D3D_FEATURE_LEVEL_12_1;
|
||||||
constexpr auto kD3DFeatureLevelStr = "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)
|
bool CheckShaderModel(ID3D12Device5* device)
|
||||||
{
|
{
|
||||||
// Check Shader Model
|
// Check Shader Model
|
||||||
@@ -161,6 +180,7 @@ namespace Juliet::D3D12
|
|||||||
if (SUCCEEDED(result))
|
if (SUCCEEDED(result))
|
||||||
{
|
{
|
||||||
driverIsValid &= CheckShaderModel(device);
|
driverIsValid &= CheckShaderModel(device);
|
||||||
|
driverIsValid &= CheckResourceTypeTier(device);
|
||||||
|
|
||||||
ID3D12Device5_Release(device);
|
ID3D12Device5_Release(device);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user