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.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/video_core/engines/maxwell_3d.cpp') diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index 9f699399f..842c5a014 100644 --- a/src/video_core/engines/maxwell_3d.cpp +++ b/src/video_core/engines/maxwell_3d.cpp @@ -19,6 +19,10 @@ void Maxwell3D::WriteReg(u32 method, u32 value) { #define MAXWELL3D_REG_INDEX(field_name) (offsetof(Regs, field_name) / sizeof(u32)) switch (method) { + case MAXWELL3D_REG_INDEX(draw.vertex_end_gl): { + DrawArrays(); + break; + } case MAXWELL3D_REG_INDEX(query.query_get): { ProcessQueryGet(); break; @@ -47,5 +51,10 @@ void Maxwell3D::ProcessQueryGet() { UNIMPLEMENTED_MSG("Query mode %u not implemented", regs.query.query_get.mode.Value()); } } + +void Maxwell3D::DrawArrays() { + LOG_WARNING(HW_GPU, "Game requested a DrawArrays, ignoring"); +} + } // namespace Engines } // namespace Tegra -- cgit v1.2.3