Display: Don't clear display callback listeners when starting a new exec.

Fixes https://github.com/RetroAchievements/RAIntegration/issues/1186
This commit is contained in:
Henrik Rydgård committed 2025-06-07 17:43:18 +02:00
1 parent 04684cc88b
commit d00f8f9401
4 files changed
+10 -3

No files matched your search

+1 -2
View File
@@ -175,7 +175,7 @@ static void ScheduleLagSync(int over = 0) {
void __DisplayInit() {
__DisplaySetFramerate();
DisplayHWInit();
DisplayHWReset();
hasSetMode = false;
mode = 0;
resumeMode = 0;
@@ -296,7 +296,6 @@ void __DisplayDoState(PointerWrap &p) {
}
void __DisplayShutdown() {
DisplayHWShutdown();
vblankWaitingThreads.clear();
}
+3 -1
View File
@@ -308,7 +308,7 @@ int DisplayCalculateFrameSkip() {
return frameSkipNum;
}
void DisplayHWInit() {
void DisplayHWReset() {
frameStartTicks = 0;
numVBlanks = 0;
isVblank = 0;
@@ -329,6 +329,8 @@ void DisplayHWInit() {
lastFrameTimeHistory = 0.0;
}
void DisplayHWInit() {}
void DisplayHWShutdown() {
std::lock_guard<std::mutex> guard(listenersLock);
vblankListeners.clear();
+1
View File
@@ -55,5 +55,6 @@ void DisplayFireActualFlip();
int DisplayCalculateFrameSkip();
void DisplayHWInit();
void DisplayHWReset();
void DisplayHWShutdown();
void DisplayHWDoState(PointerWrap &p, int hleCompatV2);
+5
View File
@@ -54,6 +54,7 @@
#include "Core/HLE/Plugins.h"
#include "Core/HLE/ReplaceTables.h"
#include "Core/HLE/sceKernel.h"
#include "Core/HW/Display.h"
#include "Core/Config.h"
#include "Core/Core.h"
#include "Core/CoreTiming.h"
@@ -409,6 +410,8 @@ static bool CPU_Init(FileLoader *fileLoader, IdentifiedFileType type, std::strin
CoreTiming::Init();
DisplayHWInit();
// Init all the HLE modules
HLEInit();
@@ -496,6 +499,8 @@ void CPU_Shutdown(bool success) {
__KernelShutdown();
HLEShutdown();
DisplayHWShutdown();
pspFileSystem.Shutdown();
mipsr4k.Shutdown();
Memory::Shutdown();