video_core/morton: Use enum to describe MortonCopyPixels128 mode
This commit is contained in:
		
							parent
							
								
									6ed6129b4f
								
							
						
					
					
						commit
						ffe2e50458
					
				@ -287,8 +287,9 @@ void MortonSwizzle(MortonSwizzleMode mode, Surface::PixelFormat format, u32 stri
 | 
			
		||||
                                     tile_width_spacing, buffer, addr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MortonCopyPixels128(u32 width, u32 height, u32 bytes_per_pixel, u32 linear_bytes_per_pixel,
 | 
			
		||||
                         u8* morton_data, u8* linear_data, bool morton_to_linear) {
 | 
			
		||||
void MortonCopyPixels128(MortonSwizzleMode mode, u32 width, u32 height, u32 bytes_per_pixel,
 | 
			
		||||
                         u32 linear_bytes_per_pixel, u8* morton_data, u8* linear_data) {
 | 
			
		||||
    const bool morton_to_linear = mode == MortonSwizzleMode::MortonToLinear;
 | 
			
		||||
    u8* data_ptrs[2];
 | 
			
		||||
    for (u32 y = 0; y < height; ++y) {
 | 
			
		||||
        for (u32 x = 0; x < width; ++x) {
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ void MortonSwizzle(MortonSwizzleMode mode, VideoCore::Surface::PixelFormat forma
 | 
			
		||||
                   u32 block_height, u32 height, u32 block_depth, u32 depth, u32 tile_width_spacing,
 | 
			
		||||
                   u8* buffer, VAddr addr);
 | 
			
		||||
 | 
			
		||||
void MortonCopyPixels128(u32 width, u32 height, u32 bytes_per_pixel, u32 linear_bytes_per_pixel,
 | 
			
		||||
                         u8* morton_data, u8* linear_data, bool morton_to_linear);
 | 
			
		||||
void MortonCopyPixels128(MortonSwizzleMode mode, u32 width, u32 height, u32 bytes_per_pixel,
 | 
			
		||||
                         u32 linear_bytes_per_pixel, u8* morton_data, u8* linear_data);
 | 
			
		||||
 | 
			
		||||
} // namespace VideoCore
 | 
			
		||||
 | 
			
		||||
@ -167,9 +167,11 @@ void RendererOpenGL::LoadFBToScreenInfo(const Tegra::FramebufferConfig& framebuf
 | 
			
		||||
        Memory::RasterizerFlushVirtualRegion(framebuffer_addr, size_in_bytes,
 | 
			
		||||
                                             Memory::FlushMode::Flush);
 | 
			
		||||
 | 
			
		||||
        VideoCore::MortonCopyPixels128(framebuffer.width, framebuffer.height, bytes_per_pixel, 4,
 | 
			
		||||
                                       Memory::GetPointer(framebuffer_addr),
 | 
			
		||||
                                       gl_framebuffer_data.data(), true);
 | 
			
		||||
        constexpr u32 linear_bpp = 4;
 | 
			
		||||
        VideoCore::MortonCopyPixels128(VideoCore::MortonSwizzleMode::MortonToLinear,
 | 
			
		||||
                                       framebuffer.width, framebuffer.height, bytes_per_pixel,
 | 
			
		||||
                                       linear_bpp, Memory::GetPointer(framebuffer_addr),
 | 
			
		||||
                                       gl_framebuffer_data.data());
 | 
			
		||||
 | 
			
		||||
        glPixelStorei(GL_UNPACK_ROW_LENGTH, static_cast<GLint>(framebuffer.stride));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user