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

master
Liam 2022-03-11 17:16:56 +07:00
parent 70e632f153
commit 56c646d82c
2 changed files with 5 additions and 1 deletions

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

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