mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	gl_rasterizer_cache: Only use depth for applicable texture formats.
- Fixes an issue with Octopath Traveler leaving stale data here.
This commit is contained in:
		
							parent
							
								
									ac959799e4
								
							
						
					
					
						commit
						4c0b1cc1ae
					
				| @ -52,12 +52,28 @@ static VAddr TryGetCpuAddr(Tegra::GPUVAddr gpu_addr) { | |||||||
|     params.type = GetFormatType(params.pixel_format); |     params.type = GetFormatType(params.pixel_format); | ||||||
|     params.width = Common::AlignUp(config.tic.Width(), GetCompressionFactor(params.pixel_format)); |     params.width = Common::AlignUp(config.tic.Width(), GetCompressionFactor(params.pixel_format)); | ||||||
|     params.height = Common::AlignUp(config.tic.Height(), GetCompressionFactor(params.pixel_format)); |     params.height = Common::AlignUp(config.tic.Height(), GetCompressionFactor(params.pixel_format)); | ||||||
|     params.depth = config.tic.Depth(); |  | ||||||
|     params.unaligned_height = config.tic.Height(); |     params.unaligned_height = config.tic.Height(); | ||||||
|     params.size_in_bytes = params.SizeInBytes(); |  | ||||||
|     params.cache_width = Common::AlignUp(params.width, 8); |     params.cache_width = Common::AlignUp(params.width, 8); | ||||||
|     params.cache_height = Common::AlignUp(params.height, 8); |     params.cache_height = Common::AlignUp(params.height, 8); | ||||||
|     params.target = SurfaceTargetFromTextureType(config.tic.texture_type); |     params.target = SurfaceTargetFromTextureType(config.tic.texture_type); | ||||||
|  | 
 | ||||||
|  |     switch (params.target) { | ||||||
|  |     case SurfaceTarget::Texture1D: | ||||||
|  |     case SurfaceTarget::Texture2D: | ||||||
|  |         params.depth = 1; | ||||||
|  |         break; | ||||||
|  |     case SurfaceTarget::Texture3D: | ||||||
|  |     case SurfaceTarget::Texture2DArray: | ||||||
|  |         params.depth = config.tic.Depth(); | ||||||
|  |         break; | ||||||
|  |     default: | ||||||
|  |         LOG_CRITICAL(HW_GPU, "Unknown depth for target={}", static_cast<u32>(params.target)); | ||||||
|  |         UNREACHABLE(); | ||||||
|  |         params.depth = 1; | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     params.size_in_bytes = params.SizeInBytes(); | ||||||
|     return params; |     return params; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -72,12 +88,12 @@ static VAddr TryGetCpuAddr(Tegra::GPUVAddr gpu_addr) { | |||||||
|     params.type = GetFormatType(params.pixel_format); |     params.type = GetFormatType(params.pixel_format); | ||||||
|     params.width = config.width; |     params.width = config.width; | ||||||
|     params.height = config.height; |     params.height = config.height; | ||||||
|     params.depth = 1; |  | ||||||
|     params.unaligned_height = config.height; |     params.unaligned_height = config.height; | ||||||
|     params.size_in_bytes = params.SizeInBytes(); |  | ||||||
|     params.cache_width = Common::AlignUp(params.width, 8); |     params.cache_width = Common::AlignUp(params.width, 8); | ||||||
|     params.cache_height = Common::AlignUp(params.height, 8); |     params.cache_height = Common::AlignUp(params.height, 8); | ||||||
|     params.target = SurfaceTarget::Texture2D; |     params.target = SurfaceTarget::Texture2D; | ||||||
|  |     params.depth = 1; | ||||||
|  |     params.size_in_bytes = params.SizeInBytes(); | ||||||
|     return params; |     return params; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -93,12 +109,12 @@ static VAddr TryGetCpuAddr(Tegra::GPUVAddr gpu_addr) { | |||||||
|     params.type = GetFormatType(params.pixel_format); |     params.type = GetFormatType(params.pixel_format); | ||||||
|     params.width = zeta_width; |     params.width = zeta_width; | ||||||
|     params.height = zeta_height; |     params.height = zeta_height; | ||||||
|     params.depth = 1; |  | ||||||
|     params.unaligned_height = zeta_height; |     params.unaligned_height = zeta_height; | ||||||
|     params.size_in_bytes = params.SizeInBytes(); |  | ||||||
|     params.cache_width = Common::AlignUp(params.width, 8); |     params.cache_width = Common::AlignUp(params.width, 8); | ||||||
|     params.cache_height = Common::AlignUp(params.height, 8); |     params.cache_height = Common::AlignUp(params.height, 8); | ||||||
|     params.target = SurfaceTarget::Texture2D; |     params.target = SurfaceTarget::Texture2D; | ||||||
|  |     params.depth = 1; | ||||||
|  |     params.size_in_bytes = params.SizeInBytes(); | ||||||
|     return params; |     return params; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei