Async GPU: Correct flushing behavior to be similar to old async GPU behavior.
This commit is contained in:
		
							parent
							
								
									1b3be8a8f8
								
							
						
					
					
						commit
						39e5b72948
					
				@ -84,6 +84,10 @@ void ThreadManager::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ThreadManager::FlushRegion(VAddr addr, u64 size) {
 | 
			
		||||
    if (!Settings::IsGPULevelHigh()) {
 | 
			
		||||
        PushCommand(FlushRegionCommand(addr, size));
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    if (!Settings::IsGPULevelExtreme()) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -653,6 +653,9 @@ void RasterizerOpenGL::FlushRegion(VAddr addr, u64 size) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool RasterizerOpenGL::MustFlushRegion(VAddr addr, u64 size) {
 | 
			
		||||
    if (!Settings::IsGPULevelHigh()) {
 | 
			
		||||
        return buffer_cache.MustFlushRegion(addr, size);
 | 
			
		||||
    }
 | 
			
		||||
    return texture_cache.MustFlushRegion(addr, size) || buffer_cache.MustFlushRegion(addr, size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,7 @@
 | 
			
		||||
#include "common/microprofile.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "core/settings.h"
 | 
			
		||||
#include "video_core/engines/kepler_compute.h"
 | 
			
		||||
#include "video_core/engines/maxwell_3d.h"
 | 
			
		||||
#include "video_core/renderer_vulkan/fixed_pipeline_state.h"
 | 
			
		||||
@ -519,6 +520,9 @@ void RasterizerVulkan::FlushRegion(VAddr addr, u64 size) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool RasterizerVulkan::MustFlushRegion(VAddr addr, u64 size) {
 | 
			
		||||
    if (!Settings::IsGPULevelHigh()) {
 | 
			
		||||
        return buffer_cache.MustFlushRegion(addr, size);
 | 
			
		||||
    }
 | 
			
		||||
    return texture_cache.MustFlushRegion(addr, size) || buffer_cache.MustFlushRegion(addr, size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user