mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Texture Cache: Address Feedback
This commit is contained in:
		
							parent
							
								
									51c9e98677
								
							
						
					
					
						commit
						a3916588b6
					
				| @ -138,13 +138,13 @@ public: | |||||||
| 
 | 
 | ||||||
|     std::size_t GetConvertedMipmapSize(u32 level) const; |     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; |     u32 GetBlockSize() const; | ||||||
| 
 | 
 | ||||||
|     // Get X, Y sizes of a block
 |     /// Get X, Y sizes of a block
 | ||||||
|     std::pair<u32, u32> GetBlockXY() const; |     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; |     std::tuple<u32, u32, u32> GetBlockOffsetXYZ(u32 offset) const; | ||||||
| 
 | 
 | ||||||
|     /// Returns the size of a layer in bytes in guest memory.
 |     /// Returns the size of a layer in bytes in guest memory.
 | ||||||
|  | |||||||
| @ -619,10 +619,10 @@ private: | |||||||
|      * Takes care of managing 3D textures and its slices. Does some HLE methods when possible. |      * Takes care of managing 3D textures and its slices. Does some HLE methods when possible. | ||||||
|      * Fallsback to LLE when it isn't possible. |      * Fallsback to LLE when it isn't possible. | ||||||
|      * |      * | ||||||
|      * @param overlaps The overlapping surfaces registered in the cache. |      * @param overlaps          The overlapping surfaces registered in the cache. | ||||||
|      * @param params   The parameters on the new surface. |      * @param params            The parameters on the new surface. | ||||||
|      * @param gpu_addr The starting address of 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 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 |      * @param preserve_contents Indicates that the new surface should be loaded from memory or | ||||||
|      *                          left blank. |      *                          left blank. | ||||||
|      */ |      */ | ||||||
| @ -669,7 +669,8 @@ private: | |||||||
|             } |             } | ||||||
|             new_surface->MarkAsModified(modified, Tick()); |             new_surface->MarkAsModified(modified, Tick()); | ||||||
|             Register(new_surface); |             Register(new_surface); | ||||||
|             return {{new_surface, new_surface->GetMainView()}}; |             auto view = new_surface->GetMainView(); | ||||||
|  |             return {{std::move(new_surface), view}}; | ||||||
|         } else { |         } else { | ||||||
|             for (const auto& surface : overlaps) { |             for (const auto& surface : overlaps) { | ||||||
|                 if (!surface->MatchTarget(params.target)) { |                 if (!surface->MatchTarget(params.target)) { | ||||||
| @ -685,8 +686,7 @@ private: | |||||||
|                 if (surface->GetCacheAddr() != cache_addr) { |                 if (surface->GetCacheAddr() != cache_addr) { | ||||||
|                     continue; |                     continue; | ||||||
|                 } |                 } | ||||||
|                 const auto struct_result = surface->MatchesStructure(params); |                 if (surface->MatchesStructure(params) == MatchStructureResult::FullMatch) { | ||||||
|                 if (struct_result == MatchStructureResult::FullMatch) { |  | ||||||
|                     return {{surface, surface->GetMainView()}}; |                     return {{surface, surface->GetMainView()}}; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @ -768,7 +768,7 @@ private: | |||||||
| 
 | 
 | ||||||
|         // Look if it's a 3D texture
 |         // Look if it's a 3D texture
 | ||||||
|         if (params.block_depth > 0) { |         if (params.block_depth > 0) { | ||||||
|             std::optional<std::pair<TSurface, TView>> surface = |             auto surface = | ||||||
|                 Manage3DSurfaces(overlaps, params, gpu_addr, cache_addr, preserve_contents); |                 Manage3DSurfaces(overlaps, params, gpu_addr, cache_addr, preserve_contents); | ||||||
|             if (surface) { |             if (surface) { | ||||||
|                 return *surface; |                 return *surface; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Fernando Sahmkow
						Fernando Sahmkow