mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	Merge pull request #2103 from wwylele/gpu-reg-cleanup
GPU: DisplayTransfer & MemoryFill cleanup and param check
This commit is contained in:
		@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -709,11 +709,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;
 | 
			
		||||
@@ -768,6 +763,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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user