From eed789d0d134fbeef1c16f9829b5c1b4b7dabb17 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 22:14:10 -0300 Subject: video_core: Reintroduce dirty flags infrastructure --- src/video_core/engines/maxwell_3d.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/video_core/engines/maxwell_3d.h') diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index b0fb0fb7d..72848b1e8 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -1274,6 +1275,13 @@ public: return execute_on; } + /// Notify a memory write has happened. + void OnMemoryWrite() { + for (const u8 store : dirty.on_write_stores) { + dirty.flags[store] = true; + } + } + enum class MMEDrawMode : u32 { Undefined, Array, @@ -1289,6 +1297,12 @@ public: u32 gl_end_count{}; } mme_draw; + struct { + std::bitset::max()> flags; + std::array, 3> tables{}; + std::array on_write_stores{}; + } dirty; + private: void InitializeRegisterDefaults(); -- cgit v1.2.3