forked from eden-emu/eden
		
	RasterizerMemory: Add filtering for flushing/invalidation operations.
This commit is contained in:
		
							parent
							
								
									2793304117
								
							
						
					
					
						commit
						3630bfaef3
					
				
					 14 changed files with 189 additions and 96 deletions
				
			
		|  | @ -8,6 +8,7 @@ | |||
| #include <span> | ||||
| #include "common/common_types.h" | ||||
| #include "common/polyfill_thread.h" | ||||
| #include "video_core/cache_types.h" | ||||
| #include "video_core/engines/fermi_2d.h" | ||||
| #include "video_core/gpu.h" | ||||
| 
 | ||||
|  | @ -83,13 +84,16 @@ public: | |||
|     virtual void FlushAll() = 0; | ||||
| 
 | ||||
|     /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory
 | ||||
|     virtual void FlushRegion(VAddr addr, u64 size) = 0; | ||||
|     virtual void FlushRegion(VAddr addr, u64 size, | ||||
|                              VideoCommon::CacheType which = VideoCommon::CacheType::All) = 0; | ||||
| 
 | ||||
|     /// Check if the the specified memory area requires flushing to CPU Memory.
 | ||||
|     virtual bool MustFlushRegion(VAddr addr, u64 size) = 0; | ||||
|     virtual bool MustFlushRegion(VAddr addr, u64 size, | ||||
|                                  VideoCommon::CacheType which = VideoCommon::CacheType::All) = 0; | ||||
| 
 | ||||
|     /// Notify rasterizer that any caches of the specified region should be invalidated
 | ||||
|     virtual void InvalidateRegion(VAddr addr, u64 size) = 0; | ||||
|     virtual void InvalidateRegion(VAddr addr, u64 size, | ||||
|                                   VideoCommon::CacheType which = VideoCommon::CacheType::All) = 0; | ||||
| 
 | ||||
|     /// Notify rasterizer that any caches of the specified region are desync with guest
 | ||||
|     virtual void OnCPUWrite(VAddr addr, u64 size) = 0; | ||||
|  | @ -105,7 +109,8 @@ public: | |||
| 
 | ||||
|     /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory
 | ||||
|     /// and invalidated
 | ||||
|     virtual void FlushAndInvalidateRegion(VAddr addr, u64 size) = 0; | ||||
|     virtual void FlushAndInvalidateRegion( | ||||
|         VAddr addr, u64 size, VideoCommon::CacheType which = VideoCommon::CacheType::All) = 0; | ||||
| 
 | ||||
|     /// Notify the host renderer to wait for previous primitive and compute operations.
 | ||||
|     virtual void WaitForIdle() = 0; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fernando Sahmkow
						Fernando Sahmkow