diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-12-10 14:34:37 +0100 |
---|---|---|
committer | FernandoS27 <fsahmkow27@gmail.com> | 2019-12-22 17:24:34 +0100 |
commit | a3916588b6964c6764a4f601c86b09a7d5eb2d4f (patch) | |
tree | 113b3d188241b486c4931216fe77d89fa3a29968 /src/video_core | |
parent | Texture Cache: Add HLE methods for building 3D textures within the GPU in certain scenarios. (diff) | |
download | yuzu-a3916588b6964c6764a4f601c86b09a7d5eb2d4f.tar yuzu-a3916588b6964c6764a4f601c86b09a7d5eb2d4f.tar.gz yuzu-a3916588b6964c6764a4f601c86b09a7d5eb2d4f.tar.bz2 yuzu-a3916588b6964c6764a4f601c86b09a7d5eb2d4f.tar.lz yuzu-a3916588b6964c6764a4f601c86b09a7d5eb2d4f.tar.xz yuzu-a3916588b6964c6764a4f601c86b09a7d5eb2d4f.tar.zst yuzu-a3916588b6964c6764a4f601c86b09a7d5eb2d4f.zip |
Diffstat (limited to 'src/video_core')
-rw-r--r-- | src/video_core/texture_cache/surface_params.h | 6 | ||||
-rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 16 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/video_core/texture_cache/surface_params.h b/src/video_core/texture_cache/surface_params.h index 1c6be25da..84c8b2940 100644 --- a/src/video_core/texture_cache/surface_params.h +++ b/src/video_core/texture_cache/surface_params.h @@ -138,13 +138,13 @@ public: std::size_t GetConvertedMipmapSize(u32 level) const; - // Get this texture Tegra Block size in guest memory layout + /// Get this texture Tegra Block size in guest memory layout u32 GetBlockSize() const; - // Get X, Y sizes of a block + /// Get X, Y sizes of a block std::pair<u32, u32> GetBlockXY() const; - // Get the offset in x, y, z coordinates from a memory offset + /// Get the offset in x, y, z coordinates from a memory offset std::tuple<u32, u32, u32> GetBlockOffsetXYZ(u32 offset) const; /// Returns the size of a layer in bytes in guest memory. diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 5416eee3b..9c2d108d3 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -619,10 +619,10 @@ private: * Takes care of managing 3D textures and its slices. Does some HLE methods when possible. * Fallsback to LLE when it isn't possible. * - * @param overlaps The overlapping surfaces registered in the cache. - * @param params The parameters on the new surface. - * @param gpu_addr The starting address of the new surface. - * @param cache_addr The starting address of the new surface on physical memory. + * @param overlaps The overlapping surfaces registered in the cache. + * @param params The parameters on the new surface. + * @param gpu_addr The starting address of the new surface. + * @param cache_addr The starting address of the new surface on physical memory. * @param preserve_contents Indicates that the new surface should be loaded from memory or * left blank. */ @@ -669,7 +669,8 @@ private: } new_surface->MarkAsModified(modified, Tick()); Register(new_surface); - return {{new_surface, new_surface->GetMainView()}}; + auto view = new_surface->GetMainView(); + return {{std::move(new_surface), view}}; } else { for (const auto& surface : overlaps) { if (!surface->MatchTarget(params.target)) { @@ -685,8 +686,7 @@ private: if (surface->GetCacheAddr() != cache_addr) { continue; } - const auto struct_result = surface->MatchesStructure(params); - if (struct_result == MatchStructureResult::FullMatch) { + if (surface->MatchesStructure(params) == MatchStructureResult::FullMatch) { return {{surface, surface->GetMainView()}}; } } @@ -768,7 +768,7 @@ private: // Look if it's a 3D texture if (params.block_depth > 0) { - std::optional<std::pair<TSurface, TView>> surface = + auto surface = Manage3DSurfaces(overlaps, params, gpu_addr, cache_addr, preserve_contents); if (surface) { return *surface; |