From 3d12a00fe16d002dfdec09f713340b19151a6ee9 Mon Sep 17 00:00:00 2001 From: raven02 Date: Wed, 23 Apr 2014 22:47:59 +0800 Subject: [PATCH] Get rid of glstate.viewport.restore() for Mali/Adreno Soc --- GPU/GLES/Framebuffer.cpp | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/GPU/GLES/Framebuffer.cpp b/GPU/GLES/Framebuffer.cpp index 8105d237e5..1ed8242e42 100644 --- a/GPU/GLES/Framebuffer.cpp +++ b/GPU/GLES/Framebuffer.cpp @@ -803,8 +803,6 @@ void FramebufferManager::DoSetRenderFrameBuffer() { vfb->fbo = fbo_create(vfb->renderWidth, vfb->renderHeight, 1, true, vfb->colorDepth); if (vfb->fbo) { fbo_bind_as_render_target(vfb->fbo); - if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR) - glstate.viewport.restore(); } else { ERROR_LOG(SCEGE, "Error creating FBO! %i x %i", vfb->renderWidth, vfb->renderHeight); } @@ -870,9 +868,6 @@ void FramebufferManager::DoSetRenderFrameBuffer() { if (useBufferedRendering_) { if (vfb->fbo) { fbo_bind_as_render_target(vfb->fbo); - // Adreno/Mali needs us to reset the viewport after switching render targets. - if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR) - glstate.viewport.restore(); } else { // wtf? This should only happen very briefly when toggling bBufferedRendering fbo_unbind(); @@ -1004,8 +999,6 @@ void FramebufferManager::BindFramebufferColor(VirtualFramebuffer *framebuffer) { glBlitFramebuffer(0, 0, framebuffer->renderWidth, framebuffer->renderHeight, 0, 0, framebuffer->renderWidth, framebuffer->renderHeight, GL_COLOR_BUFFER_BIT, GL_NEAREST); fbo_bind_as_render_target(currentRenderVfb_->fbo); - if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR) - glstate.viewport.restore(); fbo_bind_color_as_texture(renderCopy, 0); #endif } else { @@ -1084,8 +1077,6 @@ void FramebufferManager::CopyDisplayToOutput() { } else if (usePostShader_ && extraFBOs_.size() == 1 && !postShaderAtOutputResolution_) { // An additional pass, post-processing shader to the extra FBO. fbo_bind_as_render_target(extraFBOs_[0]); - if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR) - glstate.viewport.restore(); int fbo_w, fbo_h; fbo_get_dimensions(extraFBOs_[0], &fbo_w, &fbo_h); glstate.viewport.set(0, 0, fbo_w, fbo_h); @@ -1185,8 +1176,6 @@ void FramebufferManager::ReadFramebufferToMemory(VirtualFramebuffer *vfb, bool s nvfb->last_frame_render = gpuStats.numFlips; bvfbs_.push_back(nvfb); fbo_bind_as_render_target(nvfb->fbo); - if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR) - glstate.viewport.restore(); ClearBuffer(); glEnable(GL_DITHER); } else { @@ -1198,8 +1187,6 @@ void FramebufferManager::ReadFramebufferToMemory(VirtualFramebuffer *vfb, bool s #ifdef USING_GLES2 if (nvfb->fbo) { fbo_bind_as_render_target(nvfb->fbo); - if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR) - glstate.viewport.restore(); } // Some tiled mobile GPUs benefit IMMENSELY from clearing an FBO before rendering @@ -1232,8 +1219,6 @@ void FramebufferManager::ReadFramebufferToMemory(VirtualFramebuffer *vfb, bool s void FramebufferManager::BlitFramebuffer_(VirtualFramebuffer *src, VirtualFramebuffer *dst, bool flip, float upscale, float vscale) { if (dst->fbo) { fbo_bind_as_render_target(dst->fbo); - if (gl_extensions.gpuVendor != GPU_VENDOR_POWERVR) - glstate.viewport.restore(); } else { ERROR_LOG_REPORT_ONCE(dstfbozero, SCEGE, "BlitFramebuffer_: dst->fbo == 0"); fbo_unbind();