mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #2769 from FernandoS27/commands-flush
GPU: Flush commands on every dma pusher step.
This commit is contained in:
		
						commit
						d654b3d82e
					
				| @ -31,6 +31,7 @@ void DmaPusher::DispatchCalls() { | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     gpu.FlushCommands(); | ||||
| } | ||||
| 
 | ||||
| bool DmaPusher::Step() { | ||||
|  | ||||
| @ -120,6 +120,10 @@ bool GPU::CancelSyncptInterrupt(const u32 syncpoint_id, const u32 value) { | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| void GPU::FlushCommands() { | ||||
|     renderer.Rasterizer().FlushCommands(); | ||||
| } | ||||
| 
 | ||||
| u32 RenderTargetBytesPerPixel(RenderTargetFormat format) { | ||||
|     ASSERT(format != RenderTargetFormat::NONE); | ||||
| 
 | ||||
|  | ||||
| @ -153,6 +153,8 @@ public: | ||||
|     /// Calls a GPU method.
 | ||||
|     void CallMethod(const MethodCall& method_call); | ||||
| 
 | ||||
|     void FlushCommands(); | ||||
| 
 | ||||
|     /// Returns a reference to the Maxwell3D GPU engine.
 | ||||
|     Engines::Maxwell3D& Maxwell3D(); | ||||
| 
 | ||||
|  | ||||
| @ -50,6 +50,9 @@ public: | ||||
|     /// and invalidated
 | ||||
|     virtual void FlushAndInvalidateRegion(CacheAddr addr, u64 size) = 0; | ||||
| 
 | ||||
|     // Notify the rasterizer to send all written commands to the host GPU.
 | ||||
|     virtual void FlushCommands() = 0; | ||||
| 
 | ||||
|     /// Notify rasterizer that a frame is about to finish
 | ||||
|     virtual void TickFrame() = 0; | ||||
| 
 | ||||
|  | ||||
| @ -863,6 +863,10 @@ void RasterizerOpenGL::FlushAndInvalidateRegion(CacheAddr addr, u64 size) { | ||||
|     InvalidateRegion(addr, size); | ||||
| } | ||||
| 
 | ||||
| void RasterizerOpenGL::FlushCommands() { | ||||
|     glFlush(); | ||||
| } | ||||
| 
 | ||||
| void RasterizerOpenGL::TickFrame() { | ||||
|     buffer_cache.TickFrame(); | ||||
| } | ||||
|  | ||||
| @ -63,6 +63,7 @@ public: | ||||
|     void FlushRegion(CacheAddr addr, u64 size) override; | ||||
|     void InvalidateRegion(CacheAddr addr, u64 size) override; | ||||
|     void FlushAndInvalidateRegion(CacheAddr addr, u64 size) override; | ||||
|     void FlushCommands() override; | ||||
|     void TickFrame() override; | ||||
|     bool AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Regs::Surface& src, | ||||
|                                const Tegra::Engines::Fermi2D::Regs::Surface& dst, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei