From 5fb4c718cc831c31fb1e049aa015df7576f7e0f8 Mon Sep 17 00:00:00 2001 From: Subv Date: Sun, 4 Mar 2018 19:13:15 -0500 Subject: GPU: Intercept writes to the VERTEX_END_GL register. This is the register that gets written after a game calls DrawArrays(). We should collect all GPU state and draw using our graphics API here. --- src/video_core/engines/maxwell_3d.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (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 1eeef6857..93f7698a0 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h @@ -32,7 +32,12 @@ public: union { struct { - INSERT_PADDING_WORDS(0x6C0); + INSERT_PADDING_WORDS(0x585); + struct { + u32 vertex_end_gl; + u32 vertex_begin_gl; + } draw; + INSERT_PADDING_WORDS(0x139); struct { u32 query_address_high; u32 query_address_low; @@ -61,6 +66,9 @@ private: /// Handles a write to the QUERY_GET register. void ProcessQueryGet(); + /// Handles a write to the VERTEX_END_GL register, triggering a draw. + void DrawArrays(); + MemoryManager& memory_manager; }; -- cgit v1.2.3