mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-29 13:15:29 +03:00
Invalidate HLE macro state on macro updates
This commit is contained in:
parent
2360ca24da
commit
b810470601
@ -161,6 +161,7 @@ namespace skyline::soc::gm20b::engine::maxwell3d {
|
||||
throw exception("Macro memory is full!");
|
||||
|
||||
macroState.macroCode[registers.mme->instructionRamPointer++] = instructionRamLoad;
|
||||
macroState.Invalidate();
|
||||
|
||||
// Wraparound writes
|
||||
// This works on HW but will also generate an error interrupt
|
||||
@ -172,6 +173,7 @@ namespace skyline::soc::gm20b::engine::maxwell3d {
|
||||
throw exception("Maximum amount of macros reached!");
|
||||
|
||||
macroState.macroPositions[registers.mme->startAddressRamPointer++] = startAddressRamLoad;
|
||||
macroState.Invalidate();
|
||||
})
|
||||
|
||||
ENGINE_STRUCT_CASE(i2m, launchDma, {
|
||||
|
@ -65,8 +65,10 @@ namespace skyline::soc::gm20b {
|
||||
void MacroState::Execute(u32 position, span<u32> args, engine::MacroEngineBase *targetEngine) {
|
||||
size_t offset{macroPositions[position]};
|
||||
|
||||
if (invalidatePending)
|
||||
if (invalidatePending) {
|
||||
macroHleFunctions.fill({});
|
||||
invalidatePending = false;
|
||||
}
|
||||
|
||||
auto &hleEntry{macroHleFunctions[position]};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user