From de0b1cb2b2199bd8efff78938d385fa74652cdfb Mon Sep 17 00:00:00 2001
From: Fernando Sahmkow <fsahmkow27@gmail.com>
Date: Wed, 8 May 2019 07:09:02 -0400
Subject: [PATCH] Fixes to mipmap's process and reconstruct process

---
 src/video_core/texture_cache/surface_base.h  | 4 ++--
 src/video_core/texture_cache/texture_cache.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/video_core/texture_cache/surface_base.h b/src/video_core/texture_cache/surface_base.h
index c11998249..017ee999e 100644
--- a/src/video_core/texture_cache/surface_base.h
+++ b/src/video_core/texture_cache/surface_base.h
@@ -262,20 +262,20 @@ public:
             view_params.target == SurfaceTarget::Texture3D) {
             return {};
         }
-        const std::size_t size{view_params.GetGuestSizeInBytes()};
         const auto layer_mipmap{GetLayerMipmap(view_addr)};
         if (!layer_mipmap) {
             return {};
         }
         const u32 layer{layer_mipmap->first};
         const u32 mipmap{layer_mipmap->second};
+        const std::size_t size{view_params.GetGuestSizeInBytes()};
         if (GetMipmapSize(mipmap) != size) {
             // TODO: The view may cover many mimaps, this case can still go on.
             // This edge-case can be safely be ignored since it will just result in worse
             // performance.
             return {};
         }
-        return GetView(ViewParams(params.target, layer, 1, mipmap, 1));
+        return GetView(ViewParams(view_params.target, layer, 1, mipmap, 1));
     }
 
     TView GetMainView() const {
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index bb5a50ab9..554b9a228 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -323,7 +323,7 @@ private:
                                                                  const SurfaceParams& params,
                                                                  const GPUVAddr gpu_addr,
                                                                  const u8* host_ptr) {
-        if (!params.is_layered || params.target == SurfaceTarget::Texture3D) {
+        if (params.target == SurfaceTarget::Texture3D) {
             return {};
         }
         TSurface new_surface = GetUncachedSurface(gpu_addr, params);