summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2022-10-11 19:21:51 -0700
committerPokechu22 <Pokechu022@gmail.com>2022-10-12 16:50:47 -0700
commitf9fe25291d8e6ece3ee026df5099add3b5230c84 (patch)
tree7d737c4f5a56898097bb07f7e27bde4e1e64e214 /Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
parenta5fa95adfdef8b45fdbb859af0044b0d1622a680 (diff)
Remove most uses of StringFromFormat in favor of fmt
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp76
1 files changed, 39 insertions, 37 deletions
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
index 8f550da1a0..31138c734f 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
@@ -8,6 +8,8 @@
#include <memory>
#include <string>
+#include <fmt/format.h>
+
#include "Common/Align.h"
#include "Common/Assert.h"
#include "Common/CommonTypes.h"
@@ -15,7 +17,6 @@
#include "Common/GL/GLContext.h"
#include "Common/Logging/Log.h"
#include "Common/MsgHandler.h"
-#include "Common/StringUtil.h"
#include "Common/Version.h"
#include "Core/ConfigManager.h"
@@ -108,9 +109,9 @@ void SHADER::SetProgramVariables()
for (int a = 0; a < 8; ++a)
{
// Still need to get sampler locations since we aren't binding them statically in the shaders
- int loc = glGetUniformLocation(glprogid, StringFromFormat("samp[%d]", a).c_str());
+ int loc = glGetUniformLocation(glprogid, fmt::format("samp[{}]", a).c_str());
if (loc < 0)
- loc = glGetUniformLocation(glprogid, StringFromFormat("samp%d", a).c_str());
+ loc = glGetUniformLocation(glprogid, fmt::format("samp{}", a).c_str());
if (loc >= 0)
glUniform1i(loc, a);
}
@@ -146,8 +147,9 @@ void SHADER::SetProgramBindings(bool is_compute)
for (int i = 0; i < 8; i++)
{
- std::string attrib_name = StringFromFormat("rawtex%d", i);
- glBindAttribLocation(glprogid, SHADER_TEXTURE0_ATTRIB + i, attrib_name.c_str());
+ // Per documentation: OpenGL copies the name string when glBindAttribLocation is called, so an
+ // application may free its copy of the name string immediately after the function returns.
+ glBindAttribLocation(glprogid, SHADER_TEXTURE0_ATTRIB + i, fmt::format("rawtex{}", i).c_str());
}
}
@@ -727,35 +729,35 @@ void ProgramShaderCache::CreateHeader()
)";
}
- s_glsl_header = StringFromFormat(
- "%s\n"
- "%s\n" // ubo
- "%s\n" // early-z
- "%s\n" // 420pack
- "%s\n" // msaa
- "%s\n" // Input/output/sampler binding
- "%s\n" // Varying location
- "%s\n" // storage buffer
- "%s\n" // shader5
- "%s\n" // SSAA
- "%s\n" // Geometry point size
- "%s\n" // AEP
- "%s\n" // texture buffer
- "%s\n" // ES texture buffer
- "%s\n" // ES dual source blend
- "%s\n" // shader image load store
- "%s\n" // shader framebuffer fetch
- "%s\n" // shader thread shuffle
- "%s\n" // derivative control
- "%s\n" // query levels
+ s_glsl_header = fmt::format(
+ "{}\n"
+ "{}\n" // ubo
+ "{}\n" // early-z
+ "{}\n" // 420pack
+ "{}\n" // msaa
+ "{}\n" // Input/output/sampler binding
+ "{}\n" // Varying location
+ "{}\n" // storage buffer
+ "{}\n" // shader5
+ "{}\n" // SSAA
+ "{}\n" // Geometry point size
+ "{}\n" // AEP
+ "{}\n" // texture buffer
+ "{}\n" // ES texture buffer
+ "{}\n" // ES dual source blend
+ "{}\n" // shader image load store
+ "{}\n" // shader framebuffer fetch
+ "{}\n" // shader thread shuffle
+ "{}\n" // derivative control
+ "{}\n" // query levels
// Precision defines for GLSL ES
- "%s\n"
- "%s\n"
- "%s\n"
- "%s\n"
- "%s\n"
- "%s\n"
+ "{}\n"
+ "{}\n"
+ "{}\n"
+ "{}\n"
+ "{}\n"
+ "{}\n"
// Silly differences
"#define API_OPENGL 1\n"
@@ -772,8 +774,8 @@ void ProgramShaderCache::CreateHeader()
"#define lerp mix\n"
,
- GetGLSLVersionString().c_str(),
- v < Glsl140 ? "#extension GL_ARB_uniform_buffer_object : enable" : "", earlyz_string.c_str(),
+ GetGLSLVersionString(), v < Glsl140 ? "#extension GL_ARB_uniform_buffer_object : enable" : "",
+ earlyz_string,
(g_ActiveConfig.backend_info.bSupportsBindingLayout && v < GlslEs310) ?
"#extension GL_ARB_shading_language_420pack : enable" :
"",
@@ -811,12 +813,12 @@ void ProgramShaderCache::CreateHeader()
v < Glsl400 && g_ActiveConfig.backend_info.bSupportsSSAA ?
"#extension GL_ARB_sample_shading : enable" :
"",
- SupportedESPointSize.c_str(),
+ SupportedESPointSize,
g_ogl_config.bSupportsAEP ? "#extension GL_ANDROID_extension_pack_es31a : enable" : "",
v < Glsl140 && g_ActiveConfig.backend_info.bSupportsPaletteConversion ?
"#extension GL_ARB_texture_buffer_object : enable" :
"",
- SupportedESTextureBuffer.c_str(),
+ SupportedESTextureBuffer,
is_glsles && g_ActiveConfig.backend_info.bSupportsDualSourceBlend ?
"#extension GL_EXT_blend_func_extended : enable" :
""
@@ -826,7 +828,7 @@ void ProgramShaderCache::CreateHeader()
((!is_glsles && v < Glsl430) || (is_glsles && v < GlslEs310)) ?
"#extension GL_ARB_shader_image_load_store : enable" :
"",
- framebuffer_fetch_string.c_str(), shader_shuffle_string.c_str(),
+ framebuffer_fetch_string, shader_shuffle_string,
g_ActiveConfig.backend_info.bSupportsCoarseDerivatives ?
"#extension GL_ARB_derivative_control : enable" :
"",