|
|
|
@ -40,7 +40,7 @@ static void RunThread(VideoCore::RendererBase& renderer, Core::Frontend::Graphic |
|
|
|
} else if (const auto data = std::get_if<FlushRegionCommand>(&next.data)) { |
|
|
|
renderer.Rasterizer().FlushRegion(data->addr, data->size); |
|
|
|
} else if (const auto data = std::get_if<InvalidateRegionCommand>(&next.data)) { |
|
|
|
renderer.Rasterizer().InvalidateRegion(data->addr, data->size); |
|
|
|
renderer.Rasterizer().OnCPUWrite(data->addr, data->size); |
|
|
|
} else if (std::holds_alternative<EndProcessingCommand>(next.data)) { |
|
|
|
return; |
|
|
|
} else { |
|
|
|
@ -82,12 +82,12 @@ void ThreadManager::FlushRegion(VAddr addr, u64 size) { |
|
|
|
} |
|
|
|
|
|
|
|
void ThreadManager::InvalidateRegion(VAddr addr, u64 size) { |
|
|
|
system.Renderer().Rasterizer().InvalidateRegion(addr, size); |
|
|
|
system.Renderer().Rasterizer().OnCPUWrite(addr, size); |
|
|
|
} |
|
|
|
|
|
|
|
void ThreadManager::FlushAndInvalidateRegion(VAddr addr, u64 size) { |
|
|
|
// Skip flush on asynch mode, as FlushAndInvalidateRegion is not used for anything too important
|
|
|
|
InvalidateRegion(addr, size); |
|
|
|
system.Renderer().Rasterizer().OnCPUWrite(addr, size); |
|
|
|
} |
|
|
|
|
|
|
|
void ThreadManager::WaitIdle() const { |
|
|
|
|