diff options
| author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-12-08 01:36:42 -0800 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-08 01:36:42 -0800 | 
| commit | 6ad2a7aeb2ff0b3c65b30325470ea22e0f466b22 (patch) | |
| tree | 25151fa7fcb8284df9e89ce377c5ceb6100c450d /src/video_core | |
| parent | d098d941d7671c4685801979b828b538e01afeb2 (diff) | |
| parent | d0d49bb9513c52bc8fe9b8a41fb0471dccb9ed20 (diff) | |
Merge pull request #2274 from degasus/master
Drop framebuffer completeness check.
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 16 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 21 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.h | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.cpp | 13 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.h | 3 | 
5 files changed, 8 insertions, 47 deletions
| diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index ba65db419..cc7e782a4 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -189,10 +189,6 @@ void RasterizerOpenGL::DrawTriangles() {          GL_DRAW_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D,          (has_stencil && depth_surface != nullptr) ? depth_surface->texture.handle : 0, 0); -    if (OpenGLState::CheckFBStatus(GL_DRAW_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { -        return; -    } -      // Sync the viewport      // These registers hold half-width and half-height, so must be multiplied by 2      GLsizei viewport_width = (GLsizei)Pica::float24::FromRaw(regs.viewport_size_x).ToFloat32() * 2; @@ -807,10 +803,6 @@ bool RasterizerOpenGL::AccelerateFill(const GPU::Regs::MemoryFillConfig& config)          glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0,                                 0); -        if (OpenGLState::CheckFBStatus(GL_DRAW_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { -            return false; -        } -          GLfloat color_values[4] = {0.0f, 0.0f, 0.0f, 0.0f};          // TODO: Handle additional pixel format and fill value size combinations to accelerate more @@ -895,10 +887,6 @@ bool RasterizerOpenGL::AccelerateFill(const GPU::Regs::MemoryFillConfig& config)                                 dst_surface->texture.handle, 0);          glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0); -        if (OpenGLState::CheckFBStatus(GL_DRAW_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { -            return false; -        } -          GLfloat value_float;          if (dst_surface->pixel_format == CachedSurface::PixelFormat::D16) {              value_float = config.value_32bit / 65535.0f; // 2^16 - 1 @@ -914,10 +902,6 @@ bool RasterizerOpenGL::AccelerateFill(const GPU::Regs::MemoryFillConfig& config)          glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D,                                 dst_surface->texture.handle, 0); -        if (OpenGLState::CheckFBStatus(GL_DRAW_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { -            return false; -        } -          GLfloat value_float = (config.value_32bit & 0xFFFFFF) / 16777215.0f; // 2^24 - 1          GLint value_int = (config.value_32bit >> 24); diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 61f6e767f..0b2e48407 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -103,7 +103,7 @@ static void MortonCopyPixels(CachedSurface::PixelFormat pixel_format, u32 width,      }  } -bool RasterizerCacheOpenGL::BlitTextures(GLuint src_tex, GLuint dst_tex, +void RasterizerCacheOpenGL::BlitTextures(GLuint src_tex, GLuint dst_tex,                                           CachedSurface::SurfaceType type,                                           const MathUtil::Rectangle<int>& src_rect,                                           const MathUtil::Rectangle<int>& dst_rect) { @@ -158,21 +158,14 @@ bool RasterizerCacheOpenGL::BlitTextures(GLuint src_tex, GLuint dst_tex,          buffers = GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT;      } -    bool can_blit = OpenGLState::CheckFBStatus(GL_READ_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE && -                    OpenGLState::CheckFBStatus(GL_DRAW_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE; - -    if (can_blit) { -        glBlitFramebuffer(src_rect.left, src_rect.top, src_rect.right, src_rect.bottom, -                          dst_rect.left, dst_rect.top, dst_rect.right, dst_rect.bottom, buffers, -                          buffers == GL_COLOR_BUFFER_BIT ? GL_LINEAR : GL_NEAREST); -    } +    glBlitFramebuffer(src_rect.left, src_rect.top, src_rect.right, src_rect.bottom, dst_rect.left, +                      dst_rect.top, dst_rect.right, dst_rect.bottom, buffers, +                      buffers == GL_COLOR_BUFFER_BIT ? GL_LINEAR : GL_NEAREST);      // Restore previous framebuffer bindings      cur_state.draw.read_framebuffer = old_fbs[0];      cur_state.draw.draw_framebuffer = old_fbs[1];      cur_state.Apply(); - -    return can_blit;  }  bool RasterizerCacheOpenGL::TryBlitSurfaces(CachedSurface* src_surface, @@ -186,9 +179,9 @@ bool RasterizerCacheOpenGL::TryBlitSurfaces(CachedSurface* src_surface,          return false;      } -    return BlitTextures(src_surface->texture.handle, dst_surface->texture.handle, -                        CachedSurface::GetFormatType(src_surface->pixel_format), src_rect, -                        dst_rect); +    BlitTextures(src_surface->texture.handle, dst_surface->texture.handle, +                 CachedSurface::GetFormatType(src_surface->pixel_format), src_rect, dst_rect); +    return true;  }  static void AllocateSurfaceTexture(GLuint texture, CachedSurface::PixelFormat pixel_format, diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h index 32abfbaf5..b50e8292b 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h @@ -187,7 +187,7 @@ public:      ~RasterizerCacheOpenGL();      /// Blits one texture to another -    bool BlitTextures(GLuint src_tex, GLuint dst_tex, CachedSurface::SurfaceType type, +    void BlitTextures(GLuint src_tex, GLuint dst_tex, CachedSurface::SurfaceType type,                        const MathUtil::Rectangle<int>& src_rect,                        const MathUtil::Rectangle<int>& dst_rect); diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 2a731f483..3c03b424a 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -232,19 +232,6 @@ void OpenGLState::Apply() const {      cur_state = *this;  } -GLenum OpenGLState::CheckFBStatus(GLenum target) { -    GLenum fb_status = glCheckFramebufferStatus(target); -    if (fb_status != GL_FRAMEBUFFER_COMPLETE) { -        const char* fb_description = -            (target == GL_READ_FRAMEBUFFER ? "READ" -                                           : (target == GL_DRAW_FRAMEBUFFER ? "DRAW" : "UNK")); -        LOG_CRITICAL(Render_OpenGL, "OpenGL %s framebuffer check failed, status %X", fb_description, -                     fb_status); -    } - -    return fb_status; -} -  void OpenGLState::ResetTexture(GLuint handle) {      for (auto& unit : cur_state.texture_units) {          if (unit.texture_2d == handle) { diff --git a/src/video_core/renderer_opengl/gl_state.h b/src/video_core/renderer_opengl/gl_state.h index 01dead883..aee3c2946 100644 --- a/src/video_core/renderer_opengl/gl_state.h +++ b/src/video_core/renderer_opengl/gl_state.h @@ -90,9 +90,6 @@ public:      /// Apply this state as the current OpenGL state      void Apply() const; -    /// Check the status of the current OpenGL read or draw framebuffer configuration -    static GLenum CheckFBStatus(GLenum target); -      /// Resets and unbinds any references to the given resource in the current OpenGL state      static void ResetTexture(GLuint handle);      static void ResetSampler(GLuint handle); | 
