diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp index 414f7dfa57..6afdfd05a9 100644 --- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp +++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp @@ -267,73 +267,6 @@ void ProgramShaderCache::UploadConstants(const void* data, u32 data_size) ADDSTAT(stats.thisFrame.bytesUniformStreamed, data_size); } -bool ProgramShaderCache::CompileShader(SHADER& shader, const std::string& vcode, - const std::string& pcode, const std::string& gcode) -{ -#if defined(_DEBUG) || defined(DEBUGFAST) - if (g_ActiveConfig.iLog & CONF_SAVESHADERS) - { - static int counter = 0; - std::string filename = - StringFromFormat("%svs_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++); - SaveData(filename, vcode.c_str()); - - filename = StringFromFormat("%sps_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++); - SaveData(filename, pcode.c_str()); - - if (!gcode.empty()) - { - filename = - StringFromFormat("%sgs_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++); - SaveData(filename, gcode.c_str()); - } - } -#endif - - shader.vsid = CompileSingleShader(GL_VERTEX_SHADER, vcode); - shader.psid = CompileSingleShader(GL_FRAGMENT_SHADER, pcode); - - // Optional geometry shader - shader.gsid = 0; - if (!gcode.empty()) - shader.gsid = CompileSingleShader(GL_GEOMETRY_SHADER, gcode); - - if (!shader.vsid || !shader.psid || (!gcode.empty() && !shader.gsid)) - { - shader.Destroy(); - return false; - } - - // Create and link the program. - shader.glprogid = glCreateProgram(); - - glAttachShader(shader.glprogid, shader.vsid); - glAttachShader(shader.glprogid, shader.psid); - if (shader.gsid) - glAttachShader(shader.glprogid, shader.gsid); - - if (g_ActiveConfig.backend_info.bSupportsPipelineCacheData) - glProgramParameteri(shader.glprogid, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRUE); - - shader.SetProgramBindings(false); - - glLinkProgram(shader.glprogid); - - if (!CheckProgramLinkResult(shader.glprogid, vcode, pcode, gcode)) - { - // Don't try to use this shader - shader.Destroy(); - return false; - } - - // For drivers that don't support binding layout, we need to bind it here. - shader.SetProgramVariables(); - - // Original shaders aren't needed any more. - shader.DestroyShaders(); - return true; -} - bool ProgramShaderCache::CompileComputeShader(SHADER& shader, const std::string& code) { // We need to enable GL_ARB_compute_shader for drivers that support the extension, diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.h b/Source/Core/VideoBackends/OGL/ProgramShaderCache.h index b7e4dd6d00..06cabcc689 100644 --- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.h +++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.h @@ -74,8 +74,6 @@ public: static void InvalidateVertexFormat(); static void InvalidateLastProgram(); - static bool CompileShader(SHADER& shader, const std::string& vcode, const std::string& pcode, - const std::string& gcode = ""); static bool CompileComputeShader(SHADER& shader, const std::string& code); static GLuint CompileSingleShader(GLenum type, const std::string& code); static bool CheckShaderCompileResult(GLuint id, GLenum type, const std::string& code);