mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 07:59:02 -05:00 
			
		
		
		
	gl_rasterizer_cache: Track texture depth.
This commit is contained in:
		| @@ -51,6 +51,7 @@ static VAddr TryGetCpuAddr(Tegra::GPUVAddr gpu_addr) { | ||||
|     params.type = GetFormatType(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.depth = config.tic.Depth(); | ||||
|     params.unaligned_height = config.tic.Height(); | ||||
|     params.size_in_bytes = params.SizeInBytes(); | ||||
|     params.cache_width = Common::AlignUp(params.width, 16); | ||||
| @@ -70,6 +71,7 @@ static VAddr TryGetCpuAddr(Tegra::GPUVAddr gpu_addr) { | ||||
|     params.type = GetFormatType(params.pixel_format); | ||||
|     params.width = config.width; | ||||
|     params.height = config.height; | ||||
|     params.depth = 1; | ||||
|     params.unaligned_height = config.height; | ||||
|     params.size_in_bytes = params.SizeInBytes(); | ||||
|     params.cache_width = Common::AlignUp(params.width, 16); | ||||
| @@ -88,9 +90,9 @@ static VAddr TryGetCpuAddr(Tegra::GPUVAddr gpu_addr) { | ||||
|     params.pixel_format = PixelFormatFromDepthFormat(format); | ||||
|     params.component_type = ComponentTypeFromDepthFormat(format); | ||||
|     params.type = GetFormatType(params.pixel_format); | ||||
|     params.size_in_bytes = params.SizeInBytes(); | ||||
|     params.width = zeta_width; | ||||
|     params.height = zeta_height; | ||||
|     params.depth = 1; | ||||
|     params.unaligned_height = zeta_height; | ||||
|     params.size_in_bytes = params.SizeInBytes(); | ||||
|     params.cache_width = Common::AlignUp(params.width, 16); | ||||
|   | ||||
| @@ -662,7 +662,7 @@ struct SurfaceParams { | ||||
|         ASSERT(width % compression_factor == 0); | ||||
|         ASSERT(height % compression_factor == 0); | ||||
|         return (width / compression_factor) * (height / compression_factor) * | ||||
|                GetFormatBpp(pixel_format) / CHAR_BIT; | ||||
|                GetFormatBpp(pixel_format) * depth / CHAR_BIT; | ||||
|     } | ||||
|  | ||||
|     /// Creates SurfaceParams from a texture configuration | ||||
| @@ -691,6 +691,7 @@ struct SurfaceParams { | ||||
|     SurfaceType type; | ||||
|     u32 width; | ||||
|     u32 height; | ||||
|     u32 depth; | ||||
|     u32 unaligned_height; | ||||
|     size_t size_in_bytes; | ||||
|     SurfaceTarget target; | ||||
|   | ||||
| @@ -170,8 +170,12 @@ struct TICEntry { | ||||
|         BitField<0, 16, u32> width_minus_1; | ||||
|         BitField<23, 4, TextureType> texture_type; | ||||
|     }; | ||||
|     u16 height_minus_1; | ||||
|     INSERT_PADDING_BYTES(10); | ||||
|     union { | ||||
|         BitField<0, 16, u32> height_minus_1; | ||||
|         BitField<16, 15, u32> depth_minus_1; | ||||
|     }; | ||||
|  | ||||
|     INSERT_PADDING_BYTES(8); | ||||
|  | ||||
|     GPUVAddr Address() const { | ||||
|         return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | address_low); | ||||
| @@ -192,6 +196,10 @@ struct TICEntry { | ||||
|         return height_minus_1 + 1; | ||||
|     } | ||||
|  | ||||
|     u32 Depth() const { | ||||
|         return depth_minus_1 + 1; | ||||
|     } | ||||
|  | ||||
|     u32 BlockHeight() const { | ||||
|         ASSERT(header_version == TICHeaderVersion::BlockLinear || | ||||
|                header_version == TICHeaderVersion::BlockLinearColorKey); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei