summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_gen.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-09-25 04:34:18 +0200
committerFernandoS27 <fsahmkow27@gmail.com>2019-10-25 15:01:31 +0200
commit7b81ba4d8a9805f808fcc60a0905ac74d293b2ee (patch)
tree7bf80df3851e7d0e25746d241cbb0e09ba5c6b33 /src/video_core/renderer_opengl/gl_shader_gen.h
parentShader_IR: Implement Fast BRX and allow multi-branches in the CFG. (diff)
downloadyuzu-7b81ba4d8a9805f808fcc60a0905ac74d293b2ee.tar
yuzu-7b81ba4d8a9805f808fcc60a0905ac74d293b2ee.tar.gz
yuzu-7b81ba4d8a9805f808fcc60a0905ac74d293b2ee.tar.bz2
yuzu-7b81ba4d8a9805f808fcc60a0905ac74d293b2ee.tar.lz
yuzu-7b81ba4d8a9805f808fcc60a0905ac74d293b2ee.tar.xz
yuzu-7b81ba4d8a9805f808fcc60a0905ac74d293b2ee.tar.zst
yuzu-7b81ba4d8a9805f808fcc60a0905ac74d293b2ee.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_shader_gen.h')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_gen.h41
1 files changed, 5 insertions, 36 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_gen.h b/src/video_core/renderer_opengl/gl_shader_gen.h
index 05f157298..cba2be9f9 100644
--- a/src/video_core/renderer_opengl/gl_shader_gen.h
+++ b/src/video_core/renderer_opengl/gl_shader_gen.h
@@ -16,50 +16,19 @@ class Device;
namespace OpenGL::GLShader {
-using VideoCommon::Shader::ConstBufferLocker;
using VideoCommon::Shader::ProgramCode;
-
-struct ShaderSetup {
- explicit ShaderSetup(ProgramCode program_code) {
- program.code = std::move(program_code);
- }
-
- struct {
- ProgramCode code;
- ProgramCode code_b; // Used for dual vertex shaders
- u64 unique_identifier;
- std::size_t size_a;
- std::size_t size_b;
- } program;
-
- /// Used in scenarios where we have a dual vertex shaders
- void SetProgramB(ProgramCode program_b) {
- program.code_b = std::move(program_b);
- has_program_b = true;
- }
-
- bool IsDualProgram() const {
- return has_program_b;
- }
-
-private:
- bool has_program_b{};
-};
+using VideoCommon::Shader::ShaderIR;
/// Generates the GLSL vertex shader program source code for the given VS program
-ProgramResult GenerateVertexShader(ConstBufferLocker& locker, const Device& device,
- const ShaderSetup& setup);
+std::string GenerateVertexShader(const Device& device, const ShaderIR& ir, const ShaderIR* ir_b);
/// Generates the GLSL geometry shader program source code for the given GS program
-ProgramResult GenerateGeometryShader(ConstBufferLocker& locker, const Device& device,
- const ShaderSetup& setup);
+std::string GenerateGeometryShader(const Device& device, const ShaderIR& ir);
/// Generates the GLSL fragment shader program source code for the given FS program
-ProgramResult GenerateFragmentShader(ConstBufferLocker& locker, const Device& device,
- const ShaderSetup& setup);
+std::string GenerateFragmentShader(const Device& device, const ShaderIR& ir);
/// Generates the GLSL compute shader program source code for the given CS program
-ProgramResult GenerateComputeShader(ConstBufferLocker& locker, const Device& device,
- const ShaderSetup& setup);
+std::string GenerateComputeShader(const Device& device, const ShaderIR& ir);
} // namespace OpenGL::GLShader