fermi_2d: Fix surface copy block height.
This commit is contained in:
		
							parent
							
								
									3d9126ba87
								
							
						
					
					
						commit
						f87ea8fa8b
					
				@ -59,12 +59,12 @@ void Fermi2D::HandleSurfaceCopy() {
 | 
				
			|||||||
        // If the input is tiled and the output is linear, deswizzle the input and copy it over.
 | 
					        // If the input is tiled and the output is linear, deswizzle the input and copy it over.
 | 
				
			||||||
        Texture::CopySwizzledData(regs.src.width, regs.src.height, src_bytes_per_pixel,
 | 
					        Texture::CopySwizzledData(regs.src.width, regs.src.height, src_bytes_per_pixel,
 | 
				
			||||||
                                  dst_bytes_per_pixel, src_buffer, dst_buffer, true,
 | 
					                                  dst_bytes_per_pixel, src_buffer, dst_buffer, true,
 | 
				
			||||||
                                  regs.src.block_height);
 | 
					                                  regs.src.BlockHeight());
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        // If the input is linear and the output is tiled, swizzle the input and copy it over.
 | 
					        // If the input is linear and the output is tiled, swizzle the input and copy it over.
 | 
				
			||||||
        Texture::CopySwizzledData(regs.src.width, regs.src.height, src_bytes_per_pixel,
 | 
					        Texture::CopySwizzledData(regs.src.width, regs.src.height, src_bytes_per_pixel,
 | 
				
			||||||
                                  dst_bytes_per_pixel, dst_buffer, src_buffer, false,
 | 
					                                  dst_bytes_per_pixel, dst_buffer, src_buffer, false,
 | 
				
			||||||
                                  regs.dst.block_height);
 | 
					                                  regs.dst.BlockHeight());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -49,6 +49,11 @@ public:
 | 
				
			|||||||
                return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) |
 | 
					                return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) |
 | 
				
			||||||
                                             address_low);
 | 
					                                             address_low);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            u32 BlockHeight() const {
 | 
				
			||||||
 | 
					                // The block height is stored in log2 format.
 | 
				
			||||||
 | 
					                return 1 << block_height;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        static_assert(sizeof(Surface) == 0x28, "Surface has incorrect size");
 | 
					        static_assert(sizeof(Surface) == 0x28, "Surface has incorrect size");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user