diff options
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 9 |
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 | ||