GPU: Assert that we get a 0 CODE_ADDRESS register in the 3D engine.
Shader address calculation depends on this value to some extent, we do not currently know what it being 0 entails.
This commit is contained in:
		| @@ -19,6 +19,14 @@ void Maxwell3D::WriteReg(u32 method, u32 value) { | |||||||
| #define MAXWELL3D_REG_INDEX(field_name) (offsetof(Regs, field_name) / sizeof(u32)) | #define MAXWELL3D_REG_INDEX(field_name) (offsetof(Regs, field_name) / sizeof(u32)) | ||||||
|  |  | ||||||
|     switch (method) { |     switch (method) { | ||||||
|  |     case MAXWELL3D_REG_INDEX(code_address.code_address_high): | ||||||
|  |     case MAXWELL3D_REG_INDEX(code_address.code_address_low): { | ||||||
|  |         // Note: For some reason games (like Puyo Puyo Tetris) seem to write 0 to the CODE_ADDRESS | ||||||
|  |         // register, we do not currently know if that's intended or a bug, so we assert it lest | ||||||
|  |         // stuff breaks in other places (like the shader address calculation). | ||||||
|  |         ASSERT_MSG(regs.code_address.CodeAddress() == 0, "Unexpected CODE_ADDRESS register value."); | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|     case MAXWELL3D_REG_INDEX(draw.vertex_end_gl): { |     case MAXWELL3D_REG_INDEX(draw.vertex_end_gl): { | ||||||
|         DrawArrays(); |         DrawArrays(); | ||||||
|         break; |         break; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user