OpenGL: Implement Fencing backend.

This commit is contained in:
Fernando Sahmkow 2020-02-17 18:10:23 -04:00
parent ed7e965712
commit 487379c593
12 changed files with 94 additions and 19 deletions

View file

@ -70,9 +70,12 @@ struct FlushAndInvalidateRegionCommand final {
u64 size;
};
/// Command to signal to the GPU thread that processing has ended
struct OnCommandListEndCommand final {};
using CommandData =
std::variant<EndProcessingCommand, SubmitListCommand, SwapBuffersCommand, FlushRegionCommand,
InvalidateRegionCommand, FlushAndInvalidateRegionCommand>;
InvalidateRegionCommand, FlushAndInvalidateRegionCommand, OnCommandListEndCommand>;
struct CommandDataContainer {
CommandDataContainer() = default;
@ -122,6 +125,8 @@ public:
// Wait until the gpu thread is idle.
void WaitIdle() const;
void OnCommandListEnd();
private:
/// Pushes a command to be executed by the GPU thread
u64 PushCommand(CommandData&& command_data);