diff --git a/src/Layers/xrRender/xrRender_console.cpp b/src/Layers/xrRender/xrRender_console.cpp index b13d4dd3fef..614e020d196 100644 --- a/src/Layers/xrRender/xrRender_console.cpp +++ b/src/Layers/xrRender/xrRender_console.cpp @@ -852,29 +852,6 @@ class CCC_Fog_Reload : public IConsole_Command # endif // MASTER_GOLD #endif // (RENDER == R_R3) || (RENDER == R_R4) -class CCC_new_shader_support : public CCC_Mask -{ -public: - CCC_new_shader_support(pcstr N, Flags32* V, u32 M) : CCC_Mask(N, V, M) { ; }; - void Execute(LPCSTR args) override - { -#if RENDER == R_R4 - if (HW.FeatureLevel >= D3D_FEATURE_LEVEL_11_0) - { - CCC_Mask::Execute(args); - } - else - { - args = "off"; - CCC_Mask::Execute(args); - } -#else - args = "off"; - CCC_Mask::Execute(args); -#endif - } -}; - //----------------------------------------------------------------------- void xrRender_initconsole() { @@ -1112,7 +1089,7 @@ void xrRender_initconsole() CMD3(CCC_Token, "r3_water_refl", &ps_r_water_reflection, qwater_reflection_quality_token); CMD3(CCC_Mask, "r3_water_refl_half_depth", &ps_r2_ls_flags_ext, R3FLAGEXT_SSR_HALF_DEPTH); CMD3(CCC_Mask, "r3_water_refl_jitter", &ps_r2_ls_flags_ext, R3FLAGEXT_SSR_JITTER); - CMD3(CCC_new_shader_support, "r4_new_shader_support", &ps_r2_ls_flags_ext, R4FLAGEXT_NEW_SHADER_SUPPORT); + CMD3(CCC_Mask, "r4_new_shader_support", &ps_r2_ls_flags_ext, R4FLAGEXT_NEW_SHADER_SUPPORT); //CMD3(CCC_Mask, "r3_msaa", &ps_r2_ls_flags, R3FLAG_MSAA); CMD3(CCC_Token, "r3_msaa", &ps_r3_msaa, qmsaa_token); diff --git a/src/Layers/xrRender_R2/r2.cpp b/src/Layers/xrRender_R2/r2.cpp index dfbf7af0f24..a23a97d9fc5 100644 --- a/src/Layers/xrRender_R2/r2.cpp +++ b/src/Layers/xrRender_R2/r2.cpp @@ -581,7 +581,9 @@ void CRender::create() } #endif + o.new_shader_support = false; #if defined(USE_DX11) + o.new_shader_support = HW.FeatureLevel >= D3D_FEATURE_LEVEL_11_0 && ps_r2_ls_flags_ext.test(R4FLAGEXT_NEW_SHADER_SUPPORT); // Ascii's Screen Space Shaders - Check if SSS shaders exist string_path fn; o.ssfx_rain = FS.exist(fn, "$game_shaders$", "r3\\effects_rain_splash", ".ps") ? 1 : 0; diff --git a/src/Layers/xrRender_R2/r2.h b/src/Layers/xrRender_R2/r2.h index 2606b72c161..bc45dcaf316 100644 --- a/src/Layers/xrRender_R2/r2.h +++ b/src/Layers/xrRender_R2/r2.h @@ -273,6 +273,8 @@ class CRender final : public D3DXRenderBase float forcegloss_v; + // Yohji - New shader support + u32 new_shader_support : 1; // Ascii - Screen Space Shaders u32 ssfx_branches : 1; u32 ssfx_blood : 1; @@ -414,10 +416,10 @@ class CRender final : public D3DXRenderBase #elif defined(USE_DX11) BackendAPI GetBackendAPI() const override { return IRender::BackendAPI::D3D11; } u32 get_dx_level() override { return HW.FeatureLevel >= D3D_FEATURE_LEVEL_10_1 ? 0x000A0001 : 0x000A0000; } - pcstr getShaderPath() override + pcstr getShaderPath() override { if (HW.FeatureLevel >= D3D_FEATURE_LEVEL_11_0) - return ps_r2_ls_flags_ext.test(R4FLAGEXT_NEW_SHADER_SUPPORT) ? "r5\\" : "r3\\"; + return o.new_shader_support ? "r5\\" : "r3\\"; return "r3\\"; } #elif defined(USE_OGL)