Maxwell3D: Restrict topology override effect to after the register is set

This commit is contained in:
Liam 2022-03-11 17:16:56 -05:00
parent 70e632f153
commit 56c646d82c
2 changed files with 5 additions and 1 deletions

View File

@ -214,6 +214,9 @@ void Maxwell3D::ProcessMethodCall(u32 method, u32 argument, u32 nonshadow_argume
regs.index_array.first = regs.small_index.first; regs.index_array.first = regs.small_index.first;
dirty.flags[VideoCommon::Dirty::IndexBuffer] = true; dirty.flags[VideoCommon::Dirty::IndexBuffer] = true;
return DrawArrays(); return DrawArrays();
case MAXWELL3D_REG_INDEX(topology_override):
use_topology_override = true;
return;
case MAXWELL3D_REG_INDEX(clear_buffers): case MAXWELL3D_REG_INDEX(clear_buffers):
return ProcessClearBuffers(); return ProcessClearBuffers();
case MAXWELL3D_REG_INDEX(query.query_get): case MAXWELL3D_REG_INDEX(query.query_get):
@ -367,7 +370,7 @@ void Maxwell3D::CallMethodFromMME(u32 method, u32 method_argument) {
} }
void Maxwell3D::ProcessTopologyOverride() { void Maxwell3D::ProcessTopologyOverride() {
if (regs.draw.topology != regs.topology_override) { if (use_topology_override) {
regs.draw.topology.Assign(regs.topology_override); regs.draw.topology.Assign(regs.topology_override);
} }
} }

View File

@ -1581,6 +1581,7 @@ private:
Upload::State upload_state; Upload::State upload_state;
bool execute_on{true}; bool execute_on{true};
bool use_topology_override{false};
}; };
#define ASSERT_REG_POSITION(field_name, position) \ #define ASSERT_REG_POSITION(field_name, position) \