diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-11-29 22:09:43 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-29 22:09:43 -0400 | 
| commit | b2c763671047e9dfefd8b55a0c7f0935f5d35cf8 (patch) | |
| tree | 54062097312593d1396128bef4d7de3de5ea603e /src/video_core | |
| parent | e3ee017e91ef4d713f1af8cb60c5157e40d43f18 (diff) | |
| parent | ff64c3951a1daff33d7c66058bb7c4edbb162fbf (diff) | |
Merge pull request #3185 from ReinUsesLisp/oob-texture
texture_cache/surface_base: Fix out of bounds texture views
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/texture_cache/surface_base.h | 11 | 
1 files changed, 4 insertions, 7 deletions
| diff --git a/src/video_core/texture_cache/surface_base.h b/src/video_core/texture_cache/surface_base.h index 1bed82898..5f79bb0aa 100644 --- a/src/video_core/texture_cache/surface_base.h +++ b/src/video_core/texture_cache/surface_base.h @@ -254,16 +254,14 @@ public:          if (!layer_mipmap) {              return {};          } -        const u32 end_layer{layer_mipmap->first}; -        const u32 end_mipmap{layer_mipmap->second}; +        const auto [end_layer, end_mipmap] = *layer_mipmap;          if (layer != end_layer) {              if (mipmap == 0 && end_mipmap == 0) { -                return GetView(ViewParams(view_params.target, layer, end_layer - layer + 1, 0, 1)); +                return GetView(ViewParams(view_params.target, layer, end_layer - layer, 0, 1));              }              return {};          } else { -            return GetView( -                ViewParams(view_params.target, layer, 1, mipmap, end_mipmap - mipmap + 1)); +            return GetView(ViewParams(view_params.target, layer, 1, mipmap, end_mipmap - mipmap));          }      } @@ -278,8 +276,7 @@ public:          if (!layer_mipmap) {              return {};          } -        const u32 layer{layer_mipmap->first}; -        const u32 mipmap{layer_mipmap->second}; +        const auto [layer, mipmap] = *layer_mipmap;          if (GetMipmapSize(mipmap) != candidate_size) {              return EmplaceIrregularView(view_params, view_addr, candidate_size, mipmap, layer);          } | 
