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.
 | ||||
|         Texture::CopySwizzledData(regs.src.width, regs.src.height, src_bytes_per_pixel, | ||||
|                                   dst_bytes_per_pixel, src_buffer, dst_buffer, true, | ||||
|                                   regs.src.block_height); | ||||
|                                   regs.src.BlockHeight()); | ||||
|     } else { | ||||
|         // 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, | ||||
|                                   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) | | ||||
|                                              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"); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei