Maxwell3D: Restrict topology override effect to after the register is set
This commit is contained in:
parent
70e632f153
commit
56c646d82c
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) \
|
||||||
|
|
Reference in New Issue