summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
index c860485c3..df2474ea2 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
@@ -1052,16 +1052,19 @@ Surface RasterizerCacheOpenGL::GetTextureSurface(const Tegra::Texture::FullTextu
1052 1052
1053 params.UpdateParams(); 1053 params.UpdateParams();
1054 1054
1055 if (config.tic.Width() % 8 != 0 || config.tic.Height() % 8 != 0 || 1055 if (params.GetActualWidth() % 8 != 0 || params.GetActualHeight() % 8 != 0 ||
1056 params.stride != params.width) { 1056 params.stride != params.width) {
1057 Surface src_surface; 1057 Surface src_surface;
1058 MathUtil::Rectangle<u32> rect; 1058 MathUtil::Rectangle<u32> rect;
1059 std::tie(src_surface, rect) = GetSurfaceSubRect(params, ScaleMatch::Ignore, true); 1059 std::tie(src_surface, rect) = GetSurfaceSubRect(params, ScaleMatch::Ignore, true);
1060 1060
1061 rect = rect.Scale(params.GetCompresssionFactor());
1062
1061 params.res_scale = src_surface->res_scale; 1063 params.res_scale = src_surface->res_scale;
1062 Surface tmp_surface = CreateSurface(params); 1064 Surface tmp_surface = CreateSurface(params);
1063 BlitTextures(src_surface->texture.handle, rect, tmp_surface->texture.handle, 1065
1064 tmp_surface->GetScaledRect(), 1066 auto dst_rect = tmp_surface->GetScaledRect().Scale(params.GetCompresssionFactor());
1067 BlitTextures(src_surface->texture.handle, rect, tmp_surface->texture.handle, dst_rect,
1065 SurfaceParams::GetFormatType(params.pixel_format), read_framebuffer.handle, 1068 SurfaceParams::GetFormatType(params.pixel_format), read_framebuffer.handle,
1066 draw_framebuffer.handle); 1069 draw_framebuffer.handle);
1067 1070