diff options
| author | comex <comexk@gmail.com> | 2014-09-06 17:26:40 -0400 |
|---|---|---|
| committer | comex <comexk@gmail.com> | 2014-09-28 21:34:31 -0400 |
| commit | 3a2048ea570b428ea34adbfea6b71280e1ae5cc0 (patch) | |
| tree | f5d4207a6b17c315c46af6e4bedf48ddea46efb2 /Source/Core/VideoCommon/VideoBackendBase.h | |
| parent | 65af90669bd5f9e02bbaa994d51d5c83d147b868 (diff) | |
Add a central variable g_want_determinism which controls whether to try to make things deterministic.
It now affects the GPU determinism mode as well as some miscellaneous
things that were calling IsNetPlayRunning. Probably incomplete.
Notably, this can change while paused, if the user starts recording a
movie. The movie code appears to have been missing locking between
setting g_playMode and doing other things, which probably had a small
chance of causing crashes or even desynced movies; fix that with
PauseAndLock.
The next commit will add a hidden config variable to override GPU
determinism mode.
Diffstat (limited to 'Source/Core/VideoCommon/VideoBackendBase.h')
| -rw-r--r-- | Source/Core/VideoCommon/VideoBackendBase.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/VideoBackendBase.h b/Source/Core/VideoCommon/VideoBackendBase.h index 6ab9fce8f2..7d62dda37b 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.h +++ b/Source/Core/VideoCommon/VideoBackendBase.h @@ -116,6 +116,8 @@ public: virtual void DoState(PointerWrap &p) = 0; virtual void CheckInvalidState() = 0; + + virtual void UpdateWantDeterminism(bool want) {} }; extern std::vector<VideoBackend*> g_available_video_backends; @@ -151,6 +153,8 @@ class VideoBackendHardware : public VideoBackend void PauseAndLock(bool doLock, bool unpauseOnUnlock=true) override; void DoState(PointerWrap &p) override; + void UpdateWantDeterminism(bool want) override; + bool m_invalid; public: |
