summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_texture_cache.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-12-26 09:01:43 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-02-28 21:52:10 +0100
commit5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e (patch)
treed055b1d9cfa396a747c8d52023661a1e2cc4b063 /src/video_core/renderer_opengl/gl_texture_cache.cpp
parentgl_state: Remove image tracking (diff)
downloadyuzu-5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e.tar
yuzu-5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e.tar.gz
yuzu-5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e.tar.bz2
yuzu-5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e.tar.lz
yuzu-5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e.tar.xz
yuzu-5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e.tar.zst
yuzu-5ccb07933ac0f33d0ecb909d29bf65ee4ab70d8e.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_texture_cache.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index ca407c1b3..5fe6aa5d6 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -515,14 +515,8 @@ void TextureCacheOpenGL::ImageBlit(View& src_view, View& dst_view,
const Tegra::Engines::Fermi2D::Config& copy_config) {
const auto& src_params{src_view->GetSurfaceParams()};
const auto& dst_params{dst_view->GetSurfaceParams()};
-
- OpenGLState prev_state{OpenGLState::GetCurState()};
- SCOPE_EXIT({ prev_state.Apply(); });
-
- OpenGLState state;
- state.draw.read_framebuffer = src_framebuffer.handle;
- state.draw.draw_framebuffer = dst_framebuffer.handle;
- state.Apply();
+ UNIMPLEMENTED_IF(src_params.target == SurfaceTarget::Texture3D);
+ UNIMPLEMENTED_IF(dst_params.target == SurfaceTarget::Texture3D);
// TODO: Signal state tracker about these changes
if (dst_params.srgb_conversion) {
@@ -538,11 +532,10 @@ void TextureCacheOpenGL::ImageBlit(View& src_view, View& dst_view,
glDisablei(GL_BLEND, 0);
glClipControl(GL_LOWER_LEFT, GL_ZERO_TO_ONE);
- u32 buffers{};
-
- UNIMPLEMENTED_IF(src_params.target == SurfaceTarget::Texture3D);
- UNIMPLEMENTED_IF(dst_params.target == SurfaceTarget::Texture3D);
+ glBindFramebuffer(GL_READ_FRAMEBUFFER, src_framebuffer.handle);
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, dst_framebuffer.handle);
+ GLenum buffers = 0;
if (src_params.type == SurfaceType::ColorTexture) {
src_view->Attach(GL_COLOR_ATTACHMENT0, GL_READ_FRAMEBUFFER);
glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0,