mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	rasterizer: separate TextureCopy from DisplayTransfer
This commit is contained in:
		
							parent
							
								
									c59bdecd23
								
							
						
					
					
						commit
						d2419570b9
					
				@ -42,11 +42,16 @@ public:
 | 
			
		||||
    /// and invalidated
 | 
			
		||||
    virtual void FlushAndInvalidateRegion(PAddr addr, u32 size) = 0;
 | 
			
		||||
 | 
			
		||||
    /// Attempt to use a faster method to perform a display transfer
 | 
			
		||||
    /// Attempt to use a faster method to perform a display transfer with is_texture_copy = 0
 | 
			
		||||
    virtual bool AccelerateDisplayTransfer(const GPU::Regs::DisplayTransferConfig& config) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Attempt to use a faster method to perform a display transfer with is_texture_copy = 1
 | 
			
		||||
    virtual bool AccelerateTextureCopy(const GPU::Regs::DisplayTransferConfig& config) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Attempt to use a faster method to fill a region
 | 
			
		||||
    virtual bool AccelerateFill(const GPU::Regs::MemoryFillConfig& config) {
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
@ -692,11 +692,6 @@ bool RasterizerOpenGL::AccelerateDisplayTransfer(const GPU::Regs::DisplayTransfe
 | 
			
		||||
    using PixelFormat = CachedSurface::PixelFormat;
 | 
			
		||||
    using SurfaceType = CachedSurface::SurfaceType;
 | 
			
		||||
 | 
			
		||||
    if (config.is_texture_copy) {
 | 
			
		||||
        // TODO(tfarley): Try to hardware accelerate this
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    CachedSurface src_params;
 | 
			
		||||
    src_params.addr = config.GetPhysicalInputAddress();
 | 
			
		||||
    src_params.width = config.output_width;
 | 
			
		||||
@ -751,6 +746,11 @@ bool RasterizerOpenGL::AccelerateDisplayTransfer(const GPU::Regs::DisplayTransfe
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool RasterizerOpenGL::AccelerateTextureCopy(const GPU::Regs::DisplayTransferConfig& config) {
 | 
			
		||||
    // TODO(tfarley): Try to hardware accelerate this
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool RasterizerOpenGL::AccelerateFill(const GPU::Regs::MemoryFillConfig& config) {
 | 
			
		||||
    using PixelFormat = CachedSurface::PixelFormat;
 | 
			
		||||
    using SurfaceType = CachedSurface::SurfaceType;
 | 
			
		||||
 | 
			
		||||
@ -238,6 +238,7 @@ public:
 | 
			
		||||
    void FlushRegion(PAddr addr, u32 size) override;
 | 
			
		||||
    void FlushAndInvalidateRegion(PAddr addr, u32 size) override;
 | 
			
		||||
    bool AccelerateDisplayTransfer(const GPU::Regs::DisplayTransferConfig& config) override;
 | 
			
		||||
    bool AccelerateTextureCopy(const GPU::Regs::DisplayTransferConfig& config) override;
 | 
			
		||||
    bool AccelerateFill(const GPU::Regs::MemoryFillConfig& config) override;
 | 
			
		||||
    bool AccelerateDisplay(const GPU::Regs::FramebufferConfig& config, PAddr framebuffer_addr,
 | 
			
		||||
                           u32 pixel_stride, ScreenInfo& screen_info) override;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user