Browse Source

Fix Maxwell3D register processing to always mark dirty flags

maxwell_3d
MaranBr 4 days ago
committed by crueter
parent
commit
346c333d42
  1. 11
      src/video_core/engines/maxwell_3d.cpp

11
src/video_core/engines/maxwell_3d.cpp

@ -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];
auto const& table1 = dirty.tables[1];
u8 const flag0 = table0[method];
u8 const flag1 = table1[method];
dirty.flags[flag0] = true;
if (flag1 != flag0)
dirty.flags[flag1] = true;
for (const auto& table : dirty.tables) {
dirty.flags[table[method]] = true;
} }
} }

Loading…
Cancel
Save