Merge pull request #230 from Subv/gpu_draw
GPU: Intercept writes to the VERTEX_END_GL register.
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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; | ||||
| }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user