diff options
| author | 2019-06-04 12:12:40 -0400 | |
|---|---|---|
| committer | 2019-06-20 21:38:34 -0300 | |
| commit | 6f69f06873f666174d3c0306055bc5f097d64afc (patch) | |
| tree | 2f82abd10f8ecb7ede7588d46073a77084cc5646 /src/video_core | |
| parent | texture_cache: move some large methods to cpp files (diff) | |
| download | yuzu-6f69f06873f666174d3c0306055bc5f097d64afc.tar.gz yuzu-6f69f06873f666174d3c0306055bc5f097d64afc.tar.xz yuzu-6f69f06873f666174d3c0306055bc5f097d64afc.zip | |
texture_cache: Don't Image Copy if component types differ
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 951168357..d2c27bcef 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
| @@ -389,7 +389,8 @@ private: | |||
| 389 | const auto gpu_addr = current_surface->GetGpuAddr(); | 389 | const auto gpu_addr = current_surface->GetGpuAddr(); |
| 390 | TSurface new_surface = GetUncachedSurface(gpu_addr, params); | 390 | TSurface new_surface = GetUncachedSurface(gpu_addr, params); |
| 391 | const auto& cr_params = current_surface->GetSurfaceParams(); | 391 | const auto& cr_params = current_surface->GetSurfaceParams(); |
| 392 | if (!support_info.depth_color_image_copies && cr_params.type != params.type) { | 392 | if (cr_params.type != params.type && (!support_info.depth_color_image_copies || |
| 393 | cr_params.component_type != params.component_type)) { | ||
| 393 | BufferCopy(current_surface, new_surface); | 394 | BufferCopy(current_surface, new_surface); |
| 394 | } else { | 395 | } else { |
| 395 | std::vector<CopyParams> bricks = current_surface->BreakDown(params); | 396 | std::vector<CopyParams> bricks = current_surface->BreakDown(params); |