GPU_Async: Correct fences, display events and more.

This commit uses guest fences on vSync event instead of an articial fake 
fence we had.
It also corrects to keep signaling display events while loading the game 
as the OS is suppose to send buffers to vSync during that time.
This commit is contained in:
Fernando Sahmkow 2019-09-25 19:43:23 -04:00 committed by FernandoS27
parent 4e9f975935
commit 5b5e60ffec
6 changed files with 38 additions and 21 deletions

View file

@ -21,9 +21,6 @@ class DmaPusher;
namespace Core {
class System;
namespace Timing {
struct EventType;
} // namespace Timing
} // namespace Core
namespace VideoCommon::GPUThread {
@ -89,8 +86,6 @@ struct CommandDataContainer {
struct SynchState final {
std::atomic_bool is_running{true};
void WaitForSynchronization(u64 fence);
using CommandQueue = Common::SPSCQueue<CommandDataContainer>;
CommandQueue queue;
u64 last_fence{};
@ -128,7 +123,6 @@ private:
private:
SynchState state;
Core::System& system;
Core::Timing::EventType* synchronization_event{};
std::thread thread;
std::thread::id thread_id;
};