|
@@ -144,6 +144,10 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
|
|
#pragma warning( disable : 4063 )
|
|
#pragma warning( disable : 4063 )
|
|
#define D3D12_RAYTRACING_TIER_1_1 ((D3D12_RAYTRACING_TIER)11)
|
|
#define D3D12_RAYTRACING_TIER_1_1 ((D3D12_RAYTRACING_TIER)11)
|
|
#define D3D_SHADER_MODEL_6_6 ((D3D_SHADER_MODEL)0x66)
|
|
#define D3D_SHADER_MODEL_6_6 ((D3D_SHADER_MODEL)0x66)
|
|
|
|
+#define D3D_SHADER_MODEL_6_7 ((D3D_SHADER_MODEL)0x67)
|
|
|
|
+#define D3D_SHADER_MODEL_6_8 ((D3D_SHADER_MODEL)0x68)
|
|
|
|
+
|
|
|
|
+#define DXEXP_HIGHEST_SHADER_MODEL D3D_SHADER_MODEL_6_8
|
|
|
|
|
|
static char *BoolToStrJson(bool value) {
|
|
static char *BoolToStrJson(bool value) {
|
|
return value ? "true" : "false";
|
|
return value ? "true" : "false";
|
|
@@ -169,6 +173,8 @@ static char *ShaderModelToStr(D3D_SHADER_MODEL SM) {
|
|
case D3D_SHADER_MODEL_6_4: return "6.4";
|
|
case D3D_SHADER_MODEL_6_4: return "6.4";
|
|
case D3D_SHADER_MODEL_6_5: return "6.5";
|
|
case D3D_SHADER_MODEL_6_5: return "6.5";
|
|
case D3D_SHADER_MODEL_6_6: return "6.6";
|
|
case D3D_SHADER_MODEL_6_6: return "6.6";
|
|
|
|
+ case D3D_SHADER_MODEL_6_7: return "6.7";
|
|
|
|
+ case D3D_SHADER_MODEL_6_8: return "6.8";
|
|
default: return "ERROR";
|
|
default: return "ERROR";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -194,7 +200,7 @@ static char *RaytracingTierToStr(D3D12_RAYTRACING_TIER Tier) {
|
|
|
|
|
|
static HRESULT GetHighestShaderModel(ID3D12Device *pDevice, D3D12_FEATURE_DATA_SHADER_MODEL &DeviceSM) {
|
|
static HRESULT GetHighestShaderModel(ID3D12Device *pDevice, D3D12_FEATURE_DATA_SHADER_MODEL &DeviceSM) {
|
|
HRESULT hr = E_INVALIDARG;
|
|
HRESULT hr = E_INVALIDARG;
|
|
- D3D_SHADER_MODEL SM = D3D_SHADER_MODEL_6_6;
|
|
|
|
|
|
+ D3D_SHADER_MODEL SM = DXEXP_HIGHEST_SHADER_MODEL;
|
|
while (hr == E_INVALIDARG && SM >= D3D_SHADER_MODEL_6_0) {
|
|
while (hr == E_INVALIDARG && SM >= D3D_SHADER_MODEL_6_0) {
|
|
DeviceSM.HighestShaderModel = SM;
|
|
DeviceSM.HighestShaderModel = SM;
|
|
hr = pDevice->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &DeviceSM, sizeof(DeviceSM));
|
|
hr = pDevice->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &DeviceSM, sizeof(DeviceSM));
|