Skip to content
Snippets Groups Projects
Commit 3356ea5b authored by Lioncash's avatar Lioncash
Browse files

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.
parent fb85d567
No related branches found
No related tags found
No related merge requests found
...@@ -33,14 +33,14 @@ layout (std140, binding = EMULATION_UBO_BINDING) uniform vs_config { ...@@ -33,14 +33,14 @@ layout (std140, binding = EMULATION_UBO_BINDING) uniform vs_config {
}; };
)"; )";
ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET); const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
ProgramResult program = ProgramResult program =
Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Vertex, "vertex"); Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Vertex, "vertex");
out += program.first; out += program.first;
if (setup.IsDualProgram()) { if (setup.IsDualProgram()) {
ShaderIR program_ir_b(setup.program.code_b, PROGRAM_OFFSET); const ShaderIR program_ir_b(setup.program.code_b, PROGRAM_OFFSET);
ProgramResult program_b = ProgramResult program_b =
Decompile(device, program_ir_b, Maxwell3D::Regs::ShaderStage::Vertex, "vertex_b"); Decompile(device, program_ir_b, Maxwell3D::Regs::ShaderStage::Vertex, "vertex_b");
...@@ -76,7 +76,7 @@ void main() { ...@@ -76,7 +76,7 @@ void main() {
} }
})"; })";
return {out, program.second}; return {std::move(out), std::move(program.second)};
} }
ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) { ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) {
...@@ -97,7 +97,7 @@ layout (std140, binding = EMULATION_UBO_BINDING) uniform gs_config { ...@@ -97,7 +97,7 @@ layout (std140, binding = EMULATION_UBO_BINDING) uniform gs_config {
}; };
)"; )";
ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET); const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
ProgramResult program = ProgramResult program =
Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Geometry, "geometry"); Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Geometry, "geometry");
out += program.first; out += program.first;
...@@ -107,7 +107,7 @@ void main() { ...@@ -107,7 +107,7 @@ void main() {
execute_geometry(); execute_geometry();
};)"; };)";
return {out, program.second}; return {std::move(out), std::move(program.second)};
} }
ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) { ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) {
...@@ -160,7 +160,7 @@ bool AlphaFunc(in float value) { ...@@ -160,7 +160,7 @@ bool AlphaFunc(in float value) {
} }
)"; )";
ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET); const ShaderIR program_ir(setup.program.code, PROGRAM_OFFSET);
ProgramResult program = ProgramResult program =
Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Fragment, "fragment"); Decompile(device, program_ir, Maxwell3D::Regs::ShaderStage::Fragment, "fragment");
...@@ -172,7 +172,7 @@ void main() { ...@@ -172,7 +172,7 @@ void main() {
} }
)"; )";
return {out, program.second}; return {std::move(out), std::move(program.second)};
} }
} // namespace OpenGL::GLShader } // namespace OpenGL::GLShader
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment