Fix Maxwell3D register processing to always mark dirty flags

This commit is contained in:
MaranBr 2026-03-10 18:51:49 -04:00 committed by crueter
parent f0a4ac7359
commit 7c829e9db0

View file

@ -315,15 +315,10 @@ void Maxwell3D::ConsumeSinkImpl() {
} }
void Maxwell3D::ProcessDirtyRegisters(u32 method, u32 argument) { void Maxwell3D::ProcessDirtyRegisters(u32 method, u32 argument) {
if (regs.reg_array[method] != argument) { regs.reg_array[method] = argument;
regs.reg_array[method] = argument;
auto const& table0 = dirty.tables[0]; for (const auto& table : dirty.tables) {
auto const& table1 = dirty.tables[1]; dirty.flags[table[method]] = true;
u8 const flag0 = table0[method];
u8 const flag1 = table1[method];
dirty.flags[flag0] = true;
if (flag1 != flag0)
dirty.flags[flag1] = true;
} }
} }