Windows: Add "Restart Graphics" to the debug menu. Useful to debug resource lifetime issues.

This commit is contained in:
Henrik Rydgård 2024-01-18 15:57:45 +01:00
parent 7918e49a24
commit d51da3ca60
48 changed files with 63 additions and 0 deletions

View file

@ -61,6 +61,7 @@ static std::set<CoreLifecycleFunc> lifecycleFuncs;
static std::set<CoreStopRequestFunc> stopFuncs;
static bool windowHidden = false;
static bool powerSaving = false;
static bool g_restartGraphics = false;
static MIPSExceptionInfo g_exceptionInfo;
@ -211,6 +212,10 @@ void UpdateRunLoop(GraphicsContext *ctx) {
}
}
void Core_DebugRestartGraphics() {
g_restartGraphics = true;
}
// Note: not used on Android.
void Core_RunLoop(GraphicsContext *ctx) {
if (windowHidden && g_Config.bPauseWhenMinimized) {
@ -218,6 +223,13 @@ void Core_RunLoop(GraphicsContext *ctx) {
return;
}
if (g_restartGraphics) {
// Used for debugging only.
NativeShutdownGraphics();
NativeInitGraphics(ctx);
g_restartGraphics = false;
}
NativeFrame(ctx);
}

View file

@ -44,6 +44,8 @@ bool Core_NextFrame();
void Core_DoSingleStep();
void Core_UpdateSingleStep();
void Core_ProcessStepping();
void Core_DebugRestartGraphics();
// Changes every time we enter stepping.
int Core_GetSteppingCounter();
struct SteppingReason {

View file

@ -925,6 +925,10 @@ namespace MainWindow {
g_TakeScreenshot = true;
break;
case ID_DEBUG_RESTARTGRAPHICS:
Core_DebugRestartGraphics();
break;
case ID_FILE_DUMPFRAMES:
g_Config.bDumpFrames = !g_Config.bDumpFrames;
break;

View file

@ -578,6 +578,7 @@ BEGIN
MENUITEM "Take Screenshot", ID_DEBUG_TAKESCREENSHOT
MENUITEM "Dump Next Frame to Log", ID_DEBUG_DUMPNEXTFRAME
MENUITEM "Show Debug Statistics", ID_DEBUG_SHOWDEBUGSTATISTICS
MENUITEM "Restart Graphics", ID_DEBUG_RESTARTGRAPHICS,
MENUITEM "", 0, MFT_SEPARATOR
MENUITEM "Disassembly", ID_DEBUG_DISASSEMBLY
MENUITEM "GE Debugger...", ID_DEBUG_GEDEBUGGER

View file

@ -190,6 +190,7 @@
#define ID_HELP_OPENFORUM 40064
#define ID_OPTIONS_VSYNC 40065
#define ID_DEBUG_TAKESCREENSHOT 40066
#define ID_DEBUG_RESTARTGRAPHICS 40070
#define ID_OPTIONS_TEXTUREFILTERING_AUTO 40067
#define ID_OPTIONS_NEARESTFILTERING 40068
#define ID_DISASM_DISASSEMBLETOFILE 40069

View file

@ -241,6 +241,7 @@ Memory View... = ‎عرض الرام...
More Settings... = &إعدادات إضافية...
Nearest = &الأقرب
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &تخطي تأثيرات الصقل (غير مصقول, أسرع)
Off = &مغلق
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Memory &View...
More Settings... = &More Settings...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Памет изглед...
More Settings... = Още настройки...
Nearest = &Най-близко
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Изключено
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Visor de &memòria...
More Settings... = Més &paràmetres...
Nearest = &El més proper
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Renderitzat sense memòria intermèdia (més ràpid)
Off = &No
Open Chat = Obrir xat

View file

@ -233,6 +233,7 @@ Memory View... = &Zobrazení paměti...
More Settings... = D&alší nastavení...
Nearest = &Nejbližší
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Přeskočit efekty vyrovnávací paměti
Off = &Vypnuto
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Hukommelseso&versigt...
More Settings... = &Flere indstillinger...
Nearest = &Nærmest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effekter
Off = &Slukket
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Speicheransicht...
More Settings... = Mehr Einstellungen...
Nearest = Nächster Nachbar
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = Überspringe Puffereffekte
Off = Aus
Open Chat = Öffne Chat

View file

@ -233,6 +233,7 @@ Memory View... = Pempakitan &Memory...
More Settings... = &More Settings...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Mate
Open Chat = Open Chat

View file

@ -256,6 +256,7 @@ Log Console = &Log console
Memory View... = Memory &view...
More Settings... = &More settings...
Nearest = &Nearest
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Visor de &memoria...
More Settings... = Más &opciones...
Nearest = &Cercano
Recent = &Reciente
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Saltar efectos del búfer (rápido)
Off = &No
Open Chat = Abrir ventana de chat

View file

@ -233,6 +233,7 @@ Memory View... = Visor de &memoria...
More Settings... = Más &opciones...
Nearest = &Cercano
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Saltar efectos por búfer (rápido)
Off = &No
Open Chat = Abrir ventana de chat

View file

@ -233,6 +233,7 @@ Memory View... = ...نمایش مموری
More Settings... = ...تنظیمات بیشتر
Nearest = ‎نزدیک ترین
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = ‎رد کردن اثرات بافر (سریع تر)
Off = ‎خاموش
Open Chat = باز کردن چت

View file

@ -233,6 +233,7 @@ Memory View... = Memory &View...
More Settings... = &More Settings...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = &Visionneur de mémoire
More Settings... = &Plus de paramètres...
Nearest = Le plus &proche
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Pas d'effets en mémoire tampon (hack de vitesse)
Off = &Désactivé
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Visor de &memoria...
More Settings... = Máis &opcións...
Nearest = &Cercano
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Non
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Προβολή Μνήμης...
More Settings... = Περισσότερες Ρυθμίσεις...
Nearest = Κοντινότερο
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Παράκαμψη εφέ buffer (γρηγορότερο)
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = הצג &זיכרון...
More Settings... = &More Settings...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Memory &View...
More Settings... = &More Settings...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Pregled &memorije...
More Settings... = &Više postavki...
Nearest = &Najbliže
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Preskoči bufferane efekte
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Memória &nézet…
More Settings... = &Egyéb beállítások…
Nearest = Leg&közelebbi
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = Bufferelt effektek kihagyá&sa (nem bufferelt, gyorsabb)
Off = &Ki
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Tampilan memori...
More Settings... = Pengaturan lainnya...
Nearest = Terdekat
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = Lewati efek penyangga (tak-tersangga, lebih cepat)
Off = Mati
Open Chat = Buka opsi obrolan

View file

@ -233,6 +233,7 @@ Memory View... = Visualizzazione Memoria...
More Settings... = Altre Impostazioni...
Nearest = Pixel perfect
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = Salta effetti di buffer (niente buffer, più velocità)
Off = Disattiva
Open Chat = Apri Chat

View file

@ -233,6 +233,7 @@ Memory View... = メモリビュー(&V)...
More Settings... = 詳細設定(&M)...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = ノンバッファレンダリング (高速化)(&S)
Off = オフ(&O)
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Tampilan &Memory...
More Settings... = Setelan sing luwih ...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = Skip efek buffer (ora yakuwi,luwih cepet)
Off = &Mati
Open Chat = Open Chat

View file

@ -232,6 +232,7 @@ Log Console = 콘솔 로그(&L)
Memory View... = 메모리 보기(&V)...
More Settings... = 기타 설정(&M)...
Nearest = 근접 필터링(&N)
Restart Graphics = Restart Graphics
Skip Buffer Effects = 버퍼 효과 건너뛰기(&S)
Off = 끔(&O)
Open Chat = 채팅 열기

View file

@ -233,6 +233,7 @@ Memory View... = &ມຸມມອງຄ່າຄວາມຈຳ...
More Settings... = &ການຕັ້ງຄ່າອື່ນໆ...
Nearest = &ພາບເປັນຮອຍຍັກໄດ້
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &ຂ້າມການໃຊ້ເອັບເຟັກບັບເຟີ້ (ບໍ່ມີບັບເຟີ້, ໄວຂຶ້ນ)
Off = &ປິດ
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Atminties &rodymas...
More Settings... = &Daugiau parametrų...
Nearest = &Arčiausias
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Išjungti
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Lihat &Memori...
More Settings... = &Tetapan lanjutan...
Nearest = &Terdekat
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Tutup
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = &Geheugenweergave...
More Settings... = &Meer instellingen...
Nearest = &Naaste buur
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Buffereffecten nalaten (niet-gebufferd, sneller)
Off = &Uit
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Memory &View...
More Settings... = &More Settings...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Podgląd pamięci...
More Settings... = Więcej ustawień...
Nearest = Najbliższe
Recent = &Ostatnie
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Nie renderuj efektów z bufora (niebuforowane, szybsze)
Off = Wyłącz
Open Chat = Otwórz Chat

View file

@ -256,6 +256,7 @@ Log Console = &Console dos registros
Memory View... = Visualização da &memória...
More Settings... = &Mais configurações...
Nearest = &Mais próximo
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Ignorar efeitos do buffer
Off = &Desligado
Open Chat = Abrir Bate-Papo

View file

@ -257,6 +257,7 @@ Memory View... = Visualização da &memória...
More Settings... = &Mais Definições...
Nearest = &Mais próximo
Recent = &Recente
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Ignorar efeitos de buffer (sem buffer, mais rápido)
Off = &Desativado
Open Chat = Abrir Bate-Papo

View file

@ -234,6 +234,7 @@ Memory View... = Memory &View...
More Settings... = &More Settings...
Nearest = &Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skip buffer effects
Off = &Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Просмотрщик па&мяти...
More Settings... = &Ещё настройки...
Nearest = &Ближайший
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Пропускать эффекты (небуферированный, быстрее)
Off = В&ыключено
Open Chat = Открыть чат

View file

@ -233,6 +233,7 @@ Memory View... = Minnesvy...
More Settings... = Mer inställningar...
Nearest = Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Skippa buffereffekter
Off = Av
Open Chat = Öppna chat

View file

@ -233,6 +233,7 @@ Memory View... = Memory View...
More Settings... = Karagdagang settings...
Nearest = Nearest
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = Skip buffer effects
Off = Off
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = มุมมองค่าความจำ...
More Settings... = การตั้งค่าอื่นๆ...
Nearest = แบบใกล้เคียง
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = ข้ามการใช้บัฟเฟอร์เอฟเฟ็คท์ (ปิดบัฟเฟอร์)
Off = ปิด
Open Chat = เปิดหน้าต่างแชท

View file

@ -235,6 +235,7 @@ Memory View... = Bellek &Görünümü...
More Settings... = &Daha Fazla Ayar...
Nearest = &En Yakın
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Arabellek efektlerini atla (arabelleğe alınmaz, daha hızlıdır)
Off = &Kapalı
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Переглядач па&м'яті...
More Settings... = &Ще налаштування...
Nearest = &Найближчий
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = &Пропустити ефекти (небуферований, швидше)
Off = В&имкнено
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = Xem bộ nhớ...
More Settings... = Các thiết lập khác...
Nearest = Gần nhất
Recent = &Recent
Restart Graphics = Restart Graphics
Skip Buffer Effects = Bỏ qua hiệu ứng đệm (Không bộ nhớ đệm, nhanh hơn)
Off = Tắt
Open Chat = Open Chat

View file

@ -233,6 +233,7 @@ Memory View... = 查看内存…(&V)
More Settings... = 更多设置…(&M)
Nearest = 邻近取样(&N)
Recent = 最近游戏(&R)
Restart Graphics = Restart Graphics
Skip Buffer Effects = 跳过缓冲效果(更快)(&S)
Off = 关闭(&O)
Open Chat = 聊天窗口

View file

@ -233,6 +233,7 @@ Memory View... = 記憶體檢視(&V)…
More Settings... = 更多設定(&M)…
Nearest = 鄰近取樣(&N)
Recent = 最近(&R)
Restart Graphics = Restart Graphics
Skip Buffer Effects = 跳過緩衝區效果(&S)
Off = 關閉(&O)
Open Chat = 開啟聊天