[GUI/CLI] Add option to disable Vulkan implicit layers (#900)
This commit is contained in:
parent
d9433ff185
commit
f70e333c08
|
|
@ -12,7 +12,7 @@ The GUI shows 14 variables on its **Options** and **Game options** pages. This l
|
|||
`SHARPEMU_BTHID_UNAVAILABLE`, `SHARPEMU_CRASH_CAPTURE`, `SHARPEMU_DEFAULT_PROFILE`,
|
||||
`SHARPEMU_DISABLE_IMPORT_LOOP_GUARD`, `SHARPEMU_DUMP_SPIRV`, `SHARPEMU_LOG_DIRECT_MEMORY`, `SHARPEMU_LOG_IO`,
|
||||
`SHARPEMU_LOG_NP`, `SHARPEMU_PROFILE_PERFORMANCE`, `SHARPEMU_PROFILE_PERFORMANCE_FRAME_TRACE`,
|
||||
`SHARPEMU_RENDERDOC`, `SHARPEMU_STRICT_COMPUTE`, `SHARPEMU_VK_VALIDATION`, `SHARPEMU_WRITABLE_APP0`.
|
||||
`SHARPEMU_RENDERDOC`, `SHARPEMU_VK_DISABLE_IMPLICITS`, `SHARPEMU_STRICT_COMPUTE`, `SHARPEMU_VK_VALIDATION`, `SHARPEMU_WRITABLE_APP0`.
|
||||
|
||||
The list contains 252 variables. The source was examined on 2026-09-19, branch `dev`.
|
||||
The descriptions come from the code that reads each variable. The emulator was not started for this list.
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ internal static partial class Program
|
|||
if (args.Length > 0 && args[0] == SharpEmu.Core.Diagnostics.WindowsCrashCapture.HelperArgument)
|
||||
return SharpEmu.Core.Diagnostics.WindowsCrashCapture.RunHelper(args);
|
||||
|
||||
RenderDocCapture.ApplyVulkanLoaderEnvironment();
|
||||
SharpEmu.Libs.VideoOut.RenderDocCapture.Initialize();
|
||||
|
||||
try
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@
|
|||
"Options.Env.Group.Debug": "تصحيح الأخطاء",
|
||||
"Options.Env.Group.General": "عام",
|
||||
"Options.Env.RenderDoc.Desc": "يحمّل واجهة RenderDoc داخل التطبيق حتى يمكن التقاط الإطارات من داخل المحاكي.\nاضغط F12 أثناء تشغيل اللعبة لالتقاط إطار واحد؛ تُحفظ اللقطات في user/logs/capture_logs/<TITLE_ID>.\nيتطلب تثبيت RenderDoc. يبطئ وحدة معالجة الرسوميات ويسبب تعليق بعض الألعاب، لذا اتركه معطلاً ما لم تكن تصحح الأخطاء.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "عند تفعيل RenderDoc، قد تتسبب التراكبات الأخرى المتعارضة في فقدان الجهاز. قد يؤدي تفعيل هذا الخيار إلى حل المشكلة.",
|
||||
"Common.Save": "حفظ",
|
||||
"Common.Cancel": "إلغاء",
|
||||
"Options.About": "حول",
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
"Options.Env.Group.Debug": "Xətaların araşdırılması",
|
||||
"Options.Env.Group.General": "Ümumi",
|
||||
"Options.Env.RenderDoc.Desc": "Kadrları emulyatorun daxilindən çəkmək üçün RenderDoc tətbiqdaxili API-sini yükləyin.\nOyun işləyərkən bir kadr çəkmək üçün F10 düyməsini basın; çəkilən kadrlar user/logs/capture_logs/<TITLE_ID> qovluğunda saxlanılır.\nRenderDoc quraşdırılmalıdır. GPU-nu ləngidir və bəzi oyunların donmasına səbəb olur, buna görə xətaları araşdırmadıqda söndürülmüş saxlayın.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "RenderDoc aktiv olduqda digər ziddiyyətli overlay-lər device loss-a səbəb ola bilər. Bu seçimi aktivləşdirmək problemi həll edə bilər.",
|
||||
"Options.Env.GuestImageCpuSync.Desc": "Emulyasiya olunan sistemdə oyunun öz CPU kodunun yenidən yazdığı təsvir səthlərini təkrar yükləyin.\nAdətən söndürülmüş saxlayın. CPU ilə çəkilən səthləri ekranda görünməyən oyunlar üçün aktivləşdirin.\nPerformansı azaldır və GTA V kimi bəzi oyunların işini pisləşdirir.",
|
||||
"Options.Env.ForceSubmitOrphanPreambles.Desc": "GPU əmr buferlərinin giriş əmrlərini hədəf növbəsi onları qəbul etmədikdə belə ötürün.\nAdətən söndürülmüş saxlayın. Heç vaxt siqnal verməyən GPU sinxronlaşdırma səddini gözləyərkən donan oyunlar üçün aktivləşdirin.",
|
||||
"Options.DefaultProfile.Label": "Standart profil adı",
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
"Options.Env.Group.Debug": "Depuração",
|
||||
"Options.Env.Group.General": "Geral",
|
||||
"Options.Env.RenderDoc.Desc": "Carrega a API in-application do RenderDoc para capturar frames de dentro do emulador.\nPressione F12 enquanto o jogo roda para capturar um frame; as capturas vão para user/logs/capture_logs/<TITLE_ID>.\nExige o RenderDoc instalado. Deixa a GPU mais lenta e trava alguns títulos, então mantenha desativado a menos que esteja depurando.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Quando o RenderDoc está ativado, outros overlays conflitantes podem causar device loss. Ativar esta opção pode corrigir o problema.",
|
||||
"Options.Section.Emulation": "EMULAÇÃO",
|
||||
"Options.Section.Logging": "LOGS",
|
||||
"Options.Section.Launcher": "INICIALIZADOR",
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@
|
|||
"Options.Env.Group.Debug": "Debug",
|
||||
"Options.Env.Group.General": "Allgemein",
|
||||
"Options.Env.RenderDoc.Desc": "Lädt die RenderDoc-In-Application-API, damit Frames aus dem Emulator heraus aufgezeichnet werden können.\nDrücke F12 während das Spiel läuft, um ein Frame aufzuzeichnen; Aufzeichnungen landen in user/logs/capture_logs/<TITLE_ID>.\nErfordert eine RenderDoc-Installation. Verlangsamt die GPU und lässt manche Titel hängen, lass es also aus, wenn du nicht debuggst.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Wenn RenderDoc aktiviert ist, können andere kollidierende Overlays einen Device Loss verursachen. Das Aktivieren dieser Option kann das Problem beheben.",
|
||||
"Common.Save": "Speichern",
|
||||
"Common.Cancel": "Abbrechen",
|
||||
"Options.About": "Über",
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@
|
|||
"Options.Env.Group.Debug": "Fejlfinding",
|
||||
"Options.Env.Group.General": "Generelt",
|
||||
"Options.Env.RenderDoc.Desc": "Indlæser RenderDocs in-application-API, så frames kan optages inde fra emulatoren.\nTryk på F12 mens spillet kører for at optage ét frame; optagelser havner i user/logs/capture_logs/<TITLE_ID>.\nKræver at RenderDoc er installeret. Gør GPU'en langsommere og får nogle titler til at hænge, så lad den være slået fra, medmindre du fejlfinder.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Når RenderDoc er aktiveret, kan andre konflikterende overlays forårsage device loss. Aktivering af denne indstilling kan løse problemet.",
|
||||
"Common.Save": "Gem",
|
||||
"Common.Cancel": "Annuller",
|
||||
"Options.About": "Om",
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
"Options.Env.Group.Debug": "Silumine",
|
||||
"Options.Env.Group.General": "Üldine",
|
||||
"Options.Env.RenderDoc.Desc": "Laadib RenderDoc'i rakendusesisese API, et kaadreid saaks hõivata otse emulaatorist.\nVajuta mängu käigus F12 ühe kaadri hõivamiseks; hõivatised salvestatakse kausta user/logs/capture_logs/<TITLE_ID>.\nNõuab paigaldatud RenderDoc'i. Aeglustab GPU-d ja põhjustab mõningate mängude hangumist, seega hoia välja lülitatuna, kui sa ei silu.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Kui RenderDoc on lubatud, võivad teised konfliktis overlay'd põhjustada device loss'i. Selle valiku lubamine võib probleemi lahendada.",
|
||||
"Options.DefaultProfile.Label": "Vaikimisi profiili nimi",
|
||||
"Options.DefaultProfile.Desc": "Nimi, mida kasutatakse, kui mäng küsib tekstisisestust. Vaikimisi Sharp.",
|
||||
"Options.Section.Emulation": "EMULATSIOON",
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
"Options.Env.Group.Debug": "Debug",
|
||||
"Options.Env.Group.General": "General",
|
||||
"Options.Env.RenderDoc.Desc": "Load the RenderDoc in-application API so frames can be captured from inside the emulator.\nPress F12 while the game runs to capture one frame; captures land in user/logs/capture_logs/<TITLE_ID>.\nRequires RenderDoc to be installed. Slows the GPU down and hangs some titles, so leave it off unless you are debugging.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "When RenderDoc is enabled, other conflicting overlays can cause device loss. Enabling this option may fix it.",
|
||||
"Options.DefaultProfile.Label": "Default profile name",
|
||||
"Options.DefaultProfile.Desc": "Name used when a game asks for text input. Defaults to Sharp.",
|
||||
"Options.Section.Emulation": "EMULATION",
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@
|
|||
"Options.Env.Group.Debug": "Depuración",
|
||||
"Options.Env.Group.General": "General",
|
||||
"Options.Env.RenderDoc.Desc": "Carga la API in-application de RenderDoc para poder capturar fotogramas desde el emulador.\nPulsa F12 mientras el juego se ejecuta para capturar un fotograma; las capturas se guardan en user/logs/capture_logs/<TITLE_ID>.\nRequiere tener RenderDoc instalado. Ralentiza la GPU y bloquea algunos títulos, así que déjalo desactivado salvo que estés depurando.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Cuando RenderDoc está activado, otros overlays en conflicto pueden provocar una pérdida del dispositivo. Activar esta opción puede solucionar el problema.",
|
||||
"Common.Save": "Guardar",
|
||||
"Common.Cancel": "Cancelar",
|
||||
"Updater.Auto.Label": "Buscar actualizaciones al iniciar",
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
"Options.Env.Group.Debug": "Débogage",
|
||||
"Options.Env.Group.General": "Général",
|
||||
"Options.Env.RenderDoc.Desc": "Charge l'API in-application de RenderDoc afin de capturer des images depuis l'émulateur.\nAppuyez sur F12 pendant le jeu pour capturer une image ; les captures sont écrites dans user/logs/capture_logs/<TITLE_ID>.\nNécessite l'installation de RenderDoc. Ralentit le GPU et bloque certains jeux : laissez cette option désactivée sauf en cas de débogage.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Lorsque RenderDoc est activé, d'autres overlays en conflit peuvent provoquer une perte du périphérique. Activer cette option peut corriger le problème.",
|
||||
"Options.Section.Emulation": "ÉMULATION",
|
||||
"Options.Section.Logging": "JOURNALISATION",
|
||||
"Options.Section.Launcher": "LANCEUR",
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
"Options.Env.Group.Debug": "Hibakeresés",
|
||||
"Options.Env.Group.General": "Általános",
|
||||
"Options.Env.RenderDoc.Desc": "Betölti a RenderDoc alkalmazáson belüli API-ját, így képkockák rögzíthetők az emulátorból.\nNyomd meg az F12-et futó játék közben egy képkocka rögzítéséhez; a felvételek a user/logs/capture_logs/<TITLE_ID> mappába kerülnek.\nTelepített RenderDocot igényel. Lassítja a GPU-t és egyes játékokat lefagyaszt, ezért hagyd kikapcsolva, hacsak nem hibakeresel.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Ha a RenderDoc engedélyezve van, más ütköző overlayek device loss hibát okozhatnak. Ennek a beállításnak az engedélyezése megoldhatja a problémát.",
|
||||
"Options.Section.Emulation": "EMULÁCIÓ",
|
||||
"Options.Section.Logging": "LOGOLÁS",
|
||||
"Options.Section.Launcher": "INDITÓ",
|
||||
|
|
|
|||
|
|
@ -182,6 +182,7 @@
|
|||
"Options.Env.Group.Debug": "Debug",
|
||||
"Options.Env.Group.General": "Generale",
|
||||
"Options.Env.RenderDoc.Desc": "Carica l'API in-application di RenderDoc per catturare i frame dall'interno dell'emulatore.\nPremi F12 mentre il gioco è in esecuzione per catturare un frame; le catture finiscono in user/logs/capture_logs/<TITLE_ID>.\nRichiede RenderDoc installato. Rallenta la GPU e blocca alcuni titoli, quindi lascialo disattivato se non stai facendo debug.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Quando RenderDoc è attivo, altri overlay in conflitto possono causare una perdita del dispositivo. Abilitare questa opzione può risolvere il problema.",
|
||||
"Common.Save": "Salva",
|
||||
"Common.Cancel": "Annulla",
|
||||
"Options.About": "Informazioni",
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@
|
|||
"Options.Env.Group.Debug": "デバッグ",
|
||||
"Options.Env.Group.General": "一般",
|
||||
"Options.Env.RenderDoc.Desc": "RenderDoc のアプリ内 API を読み込み、エミュレーター内からフレームをキャプチャできるようにします。\nゲーム実行中に F12 を押すと 1 フレームをキャプチャします。保存先は user/logs/capture_logs/<TITLE_ID> です。\nRenderDoc のインストールが必要です。GPU が遅くなり一部のタイトルはハングするため、デバッグ時以外はオフのままにしてください。",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "RenderDoc が有効な場合、競合する他のオーバーレイによって device loss が発生することがあります。この設定を有効にすると解決する場合があります。",
|
||||
"Common.Save": "保存",
|
||||
"Common.Cancel": "キャンセル",
|
||||
"Options.About": "情報",
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@
|
|||
"Options.Env.Group.Debug": "디버그",
|
||||
"Options.Env.Group.General": "일반",
|
||||
"Options.Env.RenderDoc.Desc": "RenderDoc의 인앱 API를 로드하여 에뮬레이터 내부에서 프레임을 캡처할 수 있게 합니다.\n게임 실행 중 F12을 누르면 한 프레임을 캡처하며, 캡처 파일은 user/logs/capture_logs/<TITLE_ID>에 저장됩니다.\nRenderDoc이 설치되어 있어야 합니다. GPU 속도가 느려지고 일부 타이틀은 멈추므로 디버깅할 때가 아니면 꺼 두세요.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "RenderDoc이 활성화된 경우 다른 충돌하는 오버레이로 인해 device loss가 발생할 수 있습니다. 이 옵션을 활성화하면 문제가 해결될 수 있습니다.",
|
||||
"Common.Save": "저장",
|
||||
"Common.Cancel": "취소",
|
||||
"Options.About": "정보",
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@
|
|||
"Options.Env.Group.Debug": "Debuggen",
|
||||
"Options.Env.Group.General": "Algemeen",
|
||||
"Options.Env.RenderDoc.Desc": "Laadt de RenderDoc in-application-API zodat frames vanuit de emulator kunnen worden vastgelegd.\nDruk op F12 terwijl het spel draait om één frame vast te leggen; opnamen komen in user/logs/capture_logs/<TITLE_ID>.\nVereist een geïnstalleerde RenderDoc. Vertraagt de GPU en laat sommige games vastlopen, dus laat dit uit tenzij je aan het debuggen bent.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Wanneer RenderDoc is ingeschakeld, kunnen andere conflicterende overlays device loss veroorzaken. Het inschakelen van deze optie kan het probleem oplossen.",
|
||||
"Common.Save": "Opslaan",
|
||||
"Common.Cancel": "Annuleren",
|
||||
"Options.About": "Over",
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
"Options.Env.Group.Debug": "Debugowanie",
|
||||
"Options.Env.Group.General": "Ogólne",
|
||||
"Options.Env.RenderDoc.Desc": "Załaduj API RenderDoc w aplikacji, aby można było przechwytywać klatki z wnętrza emulatora.\nNaciśnij F12 podczas działania gry, aby przechwycić jedną klatkę; przechwycone klatki trafiają do user/logs/capture_logs/<TITLE_ID>.\nWymaga zainstalowanego RenderDoc. Spowalnia GPU i zawiesza niektóre tytuły, więc zostaw wyłączone, chyba że debugujesz.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Gdy RenderDoc jest włączony, inne konfliktujące nakładki mogą powodować utratę urządzenia. Włączenie tej opcji może rozwiązać problem.",
|
||||
"Options.DefaultProfile.Label": "Domyślna nazwa profilu",
|
||||
"Options.DefaultProfile.Desc": "Nazwa używana, gdy gra prosi o wprowadzenie tekstu. Domyślnie Sharp.",
|
||||
"Options.Section.Emulation": "EMULACJA",
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
"Options.Env.Group.Debug": "Depuração",
|
||||
"Options.Env.Group.General": "Geral",
|
||||
"Options.Env.RenderDoc.Desc": "Carrega a API in-application do RenderDoc para capturar frames a partir do emulador.\nPrime F12 enquanto o jogo corre para capturar um frame; as capturas vão para user/logs/capture_logs/<TITLE_ID>.\nRequer o RenderDoc instalado. Torna a GPU mais lenta e bloqueia alguns títulos, por isso deixa desativado a menos que estejas a depurar.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Quando o RenderDoc está ativado, outros overlays em conflito podem causar perda do dispositivo. Ativar esta opção pode corrigir o problema.",
|
||||
"Options.Section.Emulation": "EMULAÇÃO",
|
||||
"Options.Section.Logging": "REGISTOS",
|
||||
"Options.Section.Launcher": "LANÇADOR",
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
"Options.Env.Group.Debug": "Отладка",
|
||||
"Options.Env.Group.General": "Общие",
|
||||
"Options.Env.RenderDoc.Desc": "Загружает внутренний API RenderDoc, чтобы кадры можно было захватывать из эмулятора.\nНажмите F12 во время игры, чтобы захватить один кадр; захваты сохраняются в user/logs/capture_logs/<TITLE_ID>.\nТребует установленного RenderDoc. Замедляет GPU и подвешивает некоторые игры, поэтому оставьте выключенным, если не занимаетесь отладкой.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "Когда RenderDoc включён, другие конфликтующие оверлеи могут вызвать потерю устройства. Включение этой настройки может решить проблему.",
|
||||
"Options.Section.Emulation": "ЭМУЛЯЦИЯ",
|
||||
"Options.Section.Logging": "ЛОГГИРОВАНИЕ",
|
||||
"Options.Section.Launcher": "ЛАУНЧЕР",
|
||||
|
|
|
|||
|
|
@ -211,6 +211,7 @@
|
|||
"Options.Env.Group.Debug": "Hata Ayıklama",
|
||||
"Options.Env.Group.General": "Genel",
|
||||
"Options.Env.RenderDoc.Desc": "RenderDoc uygulama içi API'sini yükler, böylece kareler emülatörün içinden yakalanabilir.\nOyun çalışırken F12'a basınca bir kare yakalanır; kayıtlar user/logs/capture_logs/<TITLE_ID> altına düşer.\nRenderDoc'un kurulu olmasını gerektirir. GPU'yu yavaşlatır ve bazı oyunları kilitler, hata ayıklamıyorsanız kapalı bırakın.",
|
||||
"Options.Env.DisableVkImplicitLayers.Desc": "RenderDoc ayarı açıkken diğer çakışan overlayler device loss'a sebebiyet verebiliyor. Bu ayarı açmak bunu düzeltebilir.",
|
||||
"Options.DefaultProfile.Label": "Varsayilan profil adi",
|
||||
"Options.DefaultProfile.Desc": "Oyun metin girisi istediginde kullanilacak ad. Varsayilan deger Sharp'tir.",
|
||||
"Common.Save": "Kaydet",
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ public partial class MainWindow
|
|||
"SHARPEMU_LOG_IO",
|
||||
"SHARPEMU_LOG_NP",
|
||||
"SHARPEMU_RENDERDOC",
|
||||
"SHARPEMU_VK_DISABLE_IMPLICITS",
|
||||
"SHARPEMU_CRASH_CAPTURE",
|
||||
];
|
||||
|
||||
|
|
@ -502,6 +503,7 @@ public partial class MainWindow
|
|||
("SHARPEMU_LOG_IO", GameEnvLogIoToggle),
|
||||
("SHARPEMU_LOG_NP", GameEnvLogNpToggle),
|
||||
("SHARPEMU_RENDERDOC", GameEnvRenderDocToggle),
|
||||
("SHARPEMU_VK_DISABLE_IMPLICITS", GameEnvDisableVkImplicitLayersToggle),
|
||||
("SHARPEMU_CRASH_CAPTURE", GameCrashDumpToggle),
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -992,6 +992,14 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|||
<ToggleSwitch x:Name="GameEnvRenderDocToggle"
|
||||
Classes="optionToggle" />
|
||||
</local:SettingRow>
|
||||
<local:SettingRow Classes="optionRow"
|
||||
Label="SHARPEMU_VK_DISABLE_IMPLICITS"
|
||||
Description="{Binding [Options.Env.DisableVkImplicitLayers.Desc],
|
||||
Source={x:Static local:Localization.Instance},
|
||||
x:CompileBindings=False}">
|
||||
<ToggleSwitch x:Name="GameEnvDisableVkImplicitLayersToggle"
|
||||
Classes="optionToggle" />
|
||||
</local:SettingRow>
|
||||
<local:SettingRow Classes="optionRow"
|
||||
Label="SHARPEMU_VK_VALIDATION"
|
||||
Description="{Binding [Options.Env.VkValidation.Desc],
|
||||
|
|
@ -1562,6 +1570,13 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|||
<ToggleSwitch x:Name="EnvRenderDocToggle" Classes="optionToggle" />
|
||||
</local:SettingRow>
|
||||
|
||||
<local:SettingRow Classes="optionRow"
|
||||
LabelFontFamily="Consolas,monospace"
|
||||
Label="SHARPEMU_VK_DISABLE_IMPLICITS"
|
||||
Description="{Binding [Options.Env.DisableVkImplicitLayers.Desc], Source={x:Static local:Localization.Instance}}">
|
||||
<ToggleSwitch x:Name="EnvDisableVkImplicitLayersToggle" Classes="optionToggle" />
|
||||
</local:SettingRow>
|
||||
|
||||
<local:SettingRow x:Name="EnvVkValidationRow" Classes="optionRow" LabelFontFamily="Consolas,monospace" Label="SHARPEMU_VK_VALIDATION"
|
||||
Description="{Binding [Options.Env.VkValidation.Desc], Source={x:Static local:Localization.Instance}}">
|
||||
<ToggleSwitch x:Name="EnvVkValidationToggle" Classes="optionToggle" />
|
||||
|
|
|
|||
|
|
@ -342,6 +342,10 @@ public partial class MainWindow : Window
|
|||
SetEnvironmentToggle(
|
||||
"SHARPEMU_RENDERDOC",
|
||||
EnvRenderDocToggle.IsChecked == true);
|
||||
EnvDisableVkImplicitLayersToggle.IsCheckedChanged += (_, _) =>
|
||||
SetEnvironmentToggle(
|
||||
"SHARPEMU_VK_DISABLE_IMPLICITS",
|
||||
EnvDisableVkImplicitLayersToggle.IsChecked == true);
|
||||
DefaultProfileBox.TextChanged += (_, _) =>
|
||||
_settings.DefaultProfile = GuiSettings.NormalizeDefaultProfile(DefaultProfileBox.Text);
|
||||
LanguageBox.SelectionChanged += (_, _) => OnLanguageChanged();
|
||||
|
|
@ -1261,6 +1265,8 @@ public partial class MainWindow : Window
|
|||
EnvLogNpToggle.IsChecked = _settings.EnvironmentToggles.Contains("SHARPEMU_LOG_NP");
|
||||
EnvRenderDocToggle.IsChecked =
|
||||
_settings.EnvironmentToggles.Contains("SHARPEMU_RENDERDOC");
|
||||
EnvDisableVkImplicitLayersToggle.IsChecked =
|
||||
_settings.EnvironmentToggles.Contains("SHARPEMU_VK_DISABLE_IMPLICITS");
|
||||
DefaultProfileBox.Text = _settings.DefaultProfile;
|
||||
WindowModeBox.SelectedIndex = ChoiceIndex(_settings.WindowMode, "Windowed", "Borderless", "Exclusive");
|
||||
LoadHostDisplayOptions();
|
||||
|
|
@ -2471,6 +2477,13 @@ public partial class MainWindow : Window
|
|||
_appliedEnvironmentVariables.Add(name);
|
||||
}
|
||||
|
||||
if (RenderDocCapture.ApplyVulkanLoaderEnvironment())
|
||||
{
|
||||
_appliedEnvironmentVariables.Add("VK_LOADER_DEBUG");
|
||||
_appliedEnvironmentVariables.Add("VK_LOADER_LAYERS_DISABLE");
|
||||
_appliedEnvironmentVariables.Add("VK_LOADER_LAYERS_ALLOW");
|
||||
}
|
||||
|
||||
Environment.SetEnvironmentVariable(
|
||||
DefaultProfileEnvironmentName,
|
||||
GuiSettings.NormalizeDefaultProfile(_settings.DefaultProfile));
|
||||
|
|
|
|||
|
|
@ -37,6 +37,22 @@ public static unsafe class RenderDocCapture
|
|||
|
||||
public static bool IsAvailable => _api is not null;
|
||||
|
||||
public static bool ApplyVulkanLoaderEnvironment()
|
||||
{
|
||||
if (!string.Equals(
|
||||
Environment.GetEnvironmentVariable("SHARPEMU_VK_DISABLE_IMPLICITS"),
|
||||
"1",
|
||||
StringComparison.Ordinal))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Environment.SetEnvironmentVariable("VK_LOADER_DEBUG", "error,warn,layer");
|
||||
Environment.SetEnvironmentVariable("VK_LOADER_LAYERS_DISABLE", "~implicit~");
|
||||
Environment.SetEnvironmentVariable("VK_LOADER_LAYERS_ALLOW", "*RENDERDOC*");
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
if (_initialized)
|
||||
|
|
|
|||
Loading…
Reference in New Issue