diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-12-26 08:17:02 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-02-28 21:36:40 +0100 |
commit | 17a7fa751b34ae67c600bd741969dc1bde40fbf3 (patch) | |
tree | f6d22f2c38b8f8bd64c362e84412692e0c16f0fe /src/video_core/renderer_opengl/gl_texture_cache.cpp | |
parent | gl_state: Remove texture and sampler tracking (diff) | |
download | yuzu-17a7fa751b34ae67c600bd741969dc1bde40fbf3.tar yuzu-17a7fa751b34ae67c600bd741969dc1bde40fbf3.tar.gz yuzu-17a7fa751b34ae67c600bd741969dc1bde40fbf3.tar.bz2 yuzu-17a7fa751b34ae67c600bd741969dc1bde40fbf3.tar.lz yuzu-17a7fa751b34ae67c600bd741969dc1bde40fbf3.tar.xz yuzu-17a7fa751b34ae67c600bd741969dc1bde40fbf3.tar.zst yuzu-17a7fa751b34ae67c600bd741969dc1bde40fbf3.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_texture_cache.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_texture_cache.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index f7a1ca3a9..ca407c1b3 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp @@ -397,6 +397,7 @@ CachedSurfaceView::CachedSurfaceView(CachedSurface& surface, const ViewParams& p const bool is_proxy) : VideoCommon::ViewBase(params), surface{surface}, is_proxy{is_proxy} { target = GetTextureTarget(params.target); + format = GetFormatTuple(surface.GetSurfaceParams().pixel_format).internal_format; if (!is_proxy) { texture_view = CreateTextureView(); } @@ -467,17 +468,12 @@ void CachedSurfaceView::ApplySwizzle(SwizzleSource x_source, SwizzleSource y_sou } OGLTextureView CachedSurfaceView::CreateTextureView() const { - const auto& owner_params = surface.GetSurfaceParams(); OGLTextureView texture_view; texture_view.Create(); - const GLuint handle{texture_view.handle}; - const FormatTuple& tuple{GetFormatTuple(owner_params.pixel_format)}; - - glTextureView(handle, target, surface.texture.handle, tuple.internal_format, params.base_level, + glTextureView(texture_view.handle, target, surface.texture.handle, format, params.base_level, params.num_levels, params.base_layer, params.num_layers); - - ApplyTextureDefaults(owner_params, handle); + ApplyTextureDefaults(surface.GetSurfaceParams(), texture_view.handle); return texture_view; } @@ -521,9 +517,7 @@ void TextureCacheOpenGL::ImageBlit(View& src_view, View& dst_view, const auto& dst_params{dst_view->GetSurfaceParams()}; OpenGLState prev_state{OpenGLState::GetCurState()}; - SCOPE_EXIT({ - prev_state.Apply(); - }); + SCOPE_EXIT({ prev_state.Apply(); }); OpenGLState state; state.draw.read_framebuffer = src_framebuffer.handle; |