Skip to content

Commit

Permalink
- add cvar r_skipmats - speeds up rendering on slower cards for mod…
Browse files Browse the repository at this point in the history
…s that use a lot of specularity/pbr, effective on both the opengl and vulkan backends
  • Loading branch information
madame-rachelle committed Oct 20, 2021
1 parent 2fc1481 commit bb44f3d
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/common/rendering/gl/gl_shader.cpp
Expand Up @@ -49,6 +49,8 @@
#include <map>
#include <memory>

EXTERN_CVAR(Bool, r_skipmats)

namespace OpenGLRenderer
{

Expand Down Expand Up @@ -729,6 +731,9 @@ FShader *FShaderManager::BindEffect(int effect, EPassType passType)

FShader *FShaderManager::Get(unsigned int eff, bool alphateston, EPassType passType)
{
if (r_skipmats && eff >= 3 && eff <= 4)
eff = 0;

if (passType < mPassShaders.Size())
return mPassShaders[passType]->Get(eff, alphateston);
else
Expand Down
2 changes: 2 additions & 0 deletions src/common/rendering/v_video.cpp
Expand Up @@ -72,6 +72,8 @@ CVAR(Int, win_w, -1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
CVAR(Int, win_h, -1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
CVAR(Bool, win_maximized, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)

CVAR(Bool, r_skipmats, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)

// 0 means 'no pipelining' for non GLES2 and 4 elements for GLES2
CUSTOM_CVAR(Int, gl_pipeline_depth, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
{
Expand Down
3 changes: 3 additions & 0 deletions src/common/rendering/vulkan/renderer/vk_renderstate.cpp
Expand Up @@ -37,6 +37,7 @@
#include "hwrenderer/data/shaderuniforms.h"

CVAR(Int, vk_submit_size, 1000, 0);
EXTERN_CVAR(Bool, r_skipmats)

VkRenderState::VkRenderState()
{
Expand Down Expand Up @@ -239,6 +240,8 @@ void VkRenderState::ApplyRenderPass(int dt)
int effectState = mMaterial.mOverrideShader >= 0 ? mMaterial.mOverrideShader : (mMaterial.mMaterial ? mMaterial.mMaterial->GetShaderIndex() : 0);
pipelineKey.SpecialEffect = EFF_NONE;
pipelineKey.EffectState = mTextureEnabled ? effectState : SHADER_NoTexture;
if (r_skipmats && pipelineKey.EffectState >= 3 && pipelineKey.EffectState <= 4)
pipelineKey.EffectState = 0;
pipelineKey.AlphaTest = mAlphaThreshold >= 0.f;
}

Expand Down

0 comments on commit bb44f3d

Please sign in to comment.