From a493a9f07f7c6bbe52135a291ab61be7f7e34257 Mon Sep 17 00:00:00 2001 From: vladislavbelov Date: Mon, 2 May 2022 21:25:13 +0000 Subject: [PATCH] Removes ARB switch optimization as it triggers slow down. Fixes #6525 Tested By: Langbart Differential Revision: https://code.wildfiregames.com/D4635 This was SVN commit r26849. --- source/renderer/backend/gl/ShaderProgram.cpp | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/source/renderer/backend/gl/ShaderProgram.cpp b/source/renderer/backend/gl/ShaderProgram.cpp index 796d62a877..1a04f5ca39 100644 --- a/source/renderer/backend/gl/ShaderProgram.cpp +++ b/source/renderer/backend/gl/ShaderProgram.cpp @@ -362,20 +362,11 @@ public: void Bind(CShaderProgram* previousShaderProgram) override { - CShaderProgramARB* previousShaderProgramARB = nullptr; if (previousShaderProgram) - previousShaderProgramARB = static_cast(previousShaderProgramARB); + previousShaderProgram->Unbind(); - if (previousShaderProgramARB) - previousShaderProgramARB->UnbindClientStates(); - - if (!previousShaderProgramARB || - previousShaderProgramARB->m_VertexProgram != m_VertexProgram || - previousShaderProgramARB->m_FragmentProgram != m_FragmentProgram) - { - glBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_VertexProgram); - glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_FragmentProgram); - } + glBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_VertexProgram); + glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_FragmentProgram); BindClientStates(); }