From 982a1710ae3c071e20b211e28a00aa2ceb41be6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 31 Jan 2018 17:23:24 +0100 Subject: [PATCH] gl-render-manager: Fix postprocessing shaders. Fixes #10566. Live switching is broken though for some reason. --- GPU/Common/FramebufferCommon.cpp | 3 --- GPU/GLES/FramebufferManagerGLES.cpp | 9 +++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/GPU/Common/FramebufferCommon.cpp b/GPU/Common/FramebufferCommon.cpp index 3f93329d22..1447ca62ff 100644 --- a/GPU/Common/FramebufferCommon.cpp +++ b/GPU/Common/FramebufferCommon.cpp @@ -208,9 +208,6 @@ void FramebufferManagerCommon::SetNumExtraFBOs(int num) { extraFBOs_.push_back(fbo); } currentRenderVfb_ = 0; - // TODO: Should probably not do this bind. - if (num != 0) - draw_->BindFramebufferAsRenderTarget(nullptr, { Draw::RPAction::KEEP, Draw::RPAction::KEEP, Draw::RPAction::KEEP }); } // Heuristics to figure out the size of FBO to create. diff --git a/GPU/GLES/FramebufferManagerGLES.cpp b/GPU/GLES/FramebufferManagerGLES.cpp index 42015c1169..9754e2a185 100644 --- a/GPU/GLES/FramebufferManagerGLES.cpp +++ b/GPU/GLES/FramebufferManagerGLES.cpp @@ -154,7 +154,7 @@ void FramebufferManagerGLES::CompilePostShader() { std::vector shaders; shaders.push_back(render_->CreateShader(GL_VERTEX_SHADER, vshader, "postshader")); - shaders.push_back(render_->CreateShader(GL_VERTEX_SHADER, fshader, "postshader")); + shaders.push_back(render_->CreateShader(GL_FRAGMENT_SHADER, fshader, "postshader")); std::vector queries; queries.push_back({ &u_postShaderTex, "tex" }); queries.push_back({ &deltaLoc_, "u_texelDelta" }); @@ -164,9 +164,10 @@ void FramebufferManagerGLES::CompilePostShader() { std::vector inits; inits.push_back({ &u_postShaderTex, 0, 0 }); - postShaderProgram_ = render_->CreateProgram(shaders, {}, queries, inits, false); - render_->SetUniformI1(&u_postShaderTex, 0); - + std::vector semantics; + semantics.push_back({ 0, "a_position" }); + semantics.push_back({ 1, "a_texcoord0" }); + postShaderProgram_ = render_->CreateProgram(shaders, semantics, queries, inits, false); for (auto iter : shaders) { render_->DeleteShader(iter); }