summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2019-05-19 03:46:51 -0400
committerGravatar Lioncash2019-05-19 03:46:54 -0400
commit3356ea5bc2de7ff34aa0de05dc2b29b4170d7a13 (patch)
treecb47fcacfb32914d5de54b45542471303ec1845a /src
parentMerge pull request #2457 from lioncash/about (diff)
downloadyuzu-3356ea5bc2de7ff34aa0de05dc2b29b4170d7a13.tar.gz
yuzu-3356ea5bc2de7ff34aa0de05dc2b29b4170d7a13.tar.xz
yuzu-3356ea5bc2de7ff34aa0de05dc2b29b4170d7a13.zip
gl_shader_gen: std::move objects where applicable
Avoids performing copies into the pair being returned. Instead, we can just move the resources into the pair, avoiding the need to make copies of both the std::string and ShaderEntries struct.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_gen.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_gen.cpp b/src/video_core/renderer_opengl/gl_shader_gen.cpp
index 6abf948f8..7ab0b4553 100644
--- a/src/video_core/renderer_opengl/gl_shader_gen.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_gen.cpp
@@ -33,14 +33,14 @@ layout (std140, binding = EMULATION_UBO_BINDING) uniform vs_config {
33}; 33};
34 34
35)"; 35)";
36 ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET); 36 const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
37 ProgramResult program = 37 ProgramResult program =
38 Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Vertex, "vertex"); 38 Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Vertex, "vertex");
39 39
40 out += program.first; 40 out += program.first;
41 41
42 if (setup.IsDualProgram()) { 42 if (setup.IsDualProgram()) {
43 ShaderIR program_ir_b(setup.program.code_b, PROGRAM_OFFSET); 43 const ShaderIR program_ir_b(setup.program.code_b, PROGRAM_OFFSET);
44 ProgramResult program_b = 44 ProgramResult program_b =
45 Decompile(device, program_ir_b, Maxwell3D::Regs::ShaderStage::Vertex, "vertex_b"); 45 Decompile(device, program_ir_b, Maxwell3D::Regs::ShaderStage::Vertex, "vertex_b");
46 46
@@ -76,7 +76,7 @@ void main() {
76 } 76 }
77})"; 77})";
78 78
79 return {out, program.second}; 79 return {std::move(out), std::move(program.second)};
80} 80}
81 81
82ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) { 82ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) {
@@ -97,7 +97,7 @@ layout (std140, binding = EMULATION_UBO_BINDING) uniform gs_config {
97}; 97};
98 98
99)"; 99)";
100 ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET); 100 const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
101 ProgramResult program = 101 ProgramResult program =
102 Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Geometry, "geometry"); 102 Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Geometry, "geometry");
103 out += program.first; 103 out += program.first;
@@ -107,7 +107,7 @@ void main() {
107 execute_geometry(); 107 execute_geometry();
108};)"; 108};)";
109 109
110 return {out, program.second}; 110 return {std::move(out), std::move(program.second)};
111} 111}
112 112
113ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) { 113ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) {
@@ -160,7 +160,7 @@ bool AlphaFunc(in float value) {
160} 160}
161 161
162)"; 162)";
163 ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET); 163 const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
164 ProgramResult program = 164 ProgramResult program =
165 Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Fragment, "fragment"); 165 Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Fragment, "fragment");
166 166
@@ -172,7 +172,7 @@ void main() {
172} 172}
173 173
174)"; 174)";
175 return {out, program.second}; 175 return {std::move(out), std::move(program.second)};
176} 176}
177 177
178} // namespace OpenGL::GLShader 178} // namespace OpenGL::GLShader