mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	gl_rasterizer_cache: Track texture depth.
This commit is contained in:
		
							parent
							
								
									9dccf7e1fa
								
							
						
					
					
						commit
						ce8291f6c5
					
				@ -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);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user