From 9705410657691555d86b6472dfe71d791e4f240e Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Tue, 17 Feb 2026 13:15:33 -0300 Subject: [PATCH] settings: Remove use_asynchronous_shaders Signed-off-by: Caio Oliveira --- .../features/settings/model/BooleanSetting.kt | 1 - .../settings/model/view/SettingsItem.kt | 7 ---- .../settings/ui/SettingsFragmentPresenter.kt | 1 - .../app/src/main/res/values-ar/strings.xml | 2 -- .../app/src/main/res/values-ckb/strings.xml | 2 -- .../app/src/main/res/values-cs/strings.xml | 2 -- .../app/src/main/res/values-de/strings.xml | 2 -- .../app/src/main/res/values-es/strings.xml | 2 -- .../app/src/main/res/values-fa/strings.xml | 2 -- .../app/src/main/res/values-fr/strings.xml | 2 -- .../app/src/main/res/values-he/strings.xml | 2 -- .../app/src/main/res/values-hu/strings.xml | 2 -- .../app/src/main/res/values-id/strings.xml | 2 -- .../app/src/main/res/values-it/strings.xml | 2 -- .../app/src/main/res/values-ja/strings.xml | 2 -- .../app/src/main/res/values-ko/strings.xml | 2 -- .../app/src/main/res/values-nb/strings.xml | 2 -- .../app/src/main/res/values-pl/strings.xml | 2 -- .../src/main/res/values-pt-rBR/strings.xml | 2 -- .../src/main/res/values-pt-rPT/strings.xml | 2 -- .../app/src/main/res/values-ru/strings.xml | 2 -- .../app/src/main/res/values-sr/strings.xml | 2 -- .../app/src/main/res/values-uk/strings.xml | 2 -- .../app/src/main/res/values-vi/strings.xml | 2 -- .../src/main/res/values-zh-rCN/strings.xml | 2 -- .../src/main/res/values-zh-rTW/strings.xml | 2 -- .../app/src/main/res/values/strings.xml | 2 -- src/common/settings.h | 3 -- src/qt_common/config/shared_translation.cpp | 4 --- src/video_core/renderer_opengl/gl_device.cpp | 16 ---------- src/video_core/renderer_opengl/gl_device.h | 5 --- .../renderer_opengl/gl_shader_cache.cpp | 32 +++---------------- .../renderer_opengl/gl_shader_cache.h | 3 -- .../renderer_vulkan/vk_pipeline_cache.cpp | 22 ++----------- .../renderer_vulkan/vk_pipeline_cache.h | 3 -- 35 files changed, 6 insertions(+), 139 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt index eca1d00fbe..37af549c76 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt @@ -22,7 +22,6 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting { USE_AUTO_STUB("use_auto_stub"), RENDERER_USE_DISK_SHADER_CACHE("use_disk_shader_cache"), RENDERER_FORCE_MAX_CLOCK("force_max_clock"), - RENDERER_ASYNCHRONOUS_SHADERS("use_asynchronous_shaders"), RENDERER_REACTIVE_FLUSHING("use_reactive_flushing"), ENABLE_BUFFER_HISTORY("enable_buffer_history"), SYNC_MEMORY_OPERATIONS("sync_memory_operations"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index 02289edeae..2d9d80d467 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -672,13 +672,6 @@ abstract class SettingsItem( valuesId = R.array.framePacingModeValues ) ) - put( - SwitchSetting( - BooleanSetting.RENDERER_ASYNCHRONOUS_SHADERS, - titleId = R.string.renderer_asynchronous_shaders, - descriptionId = R.string.renderer_asynchronous_shaders_description - ) - ) put( SingleChoiceSetting( IntSetting.FAST_GPU_TIME, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index 61b86c70d0..3628a5db68 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -284,7 +284,6 @@ class SettingsFragmentPresenter( add(IntSetting.FAST_GPU_TIME.key) add(BooleanSetting.SKIP_CPU_INNER_INVALIDATION.key) add(BooleanSetting.FIX_BLOOM_EFFECTS.key) - add(BooleanSetting.RENDERER_ASYNCHRONOUS_SHADERS.key) add(SettingsItem.GPU_UNSWIZZLE_COMBINED) add(HeaderSetting(R.string.extensions)) diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml index 05f65ecf78..73be0b104d 100644 --- a/src/android/app/src/main/res/values-ar/strings.xml +++ b/src/android/app/src/main/res/values-ar/strings.xml @@ -491,8 +491,6 @@ يتخطى بعض عمليات إبطال ذاكرة التخزين المؤقتة من جانب وحدة المعالجة المركزية أثناء تحديثات الذاكرة، مما يقلل من استخدام وحدة المعالجة المركزية ويحسن أداءها. قد يتسبب ذلك في حدوث أعطال أو تعطل في بعض الألعاب. إصلاح تأثيرات التوهج يقلل من ضبابية التوهج في وضع LA/EOW (مخصص ل Adreno 700)، ويزيل التوهج في وضع الإحتراق - استخدم تظليل غير متزامن - يقوم بتجميع التظليل بشكل غير متزامن. قد يقلل ذلك من التقطعات ولكنه قد يؤدي أيضًا إلى حدوث أخطاء. الحد الأقصى لحجم النسيج في وحدة معالجة الرسومات بعد إعادة ترتيب البيانات يُحدد هذا الخيار الحد الأقصى لحجم (ميغابايت) معالجة الصور باستخدام وحدة معالجة الرسومات. مع أن وحدة معالجة الرسومات أسرع في معالجة الصور المتوسطة والكبيرة، إلا أن وحدة المعالجة المركزية قد تكون أكثر كفاءة في معالجة الصور الصغيرة جدًا. اضبط هذا الخيار لتحقيق التوازن الأمثل بين سرعة معالجة الرسومات واستهلاك وحدة المعالجة المركزية. حجم تدفق إلغاء ترتيب بيانات وحدة معالجة الرسومات diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml index ea5208a26b..374d5f8916 100644 --- a/src/android/app/src/main/res/values-ckb/strings.xml +++ b/src/android/app/src/main/res/values-ckb/strings.xml @@ -361,8 +361,6 @@ بازنەکردنی ناوەکی CPU هەندێک لە بازنەکردنەکانی هەڵگر لە کاتی نوێکردنەوەی بیرگە دەنێرێت، کەمکردنەوەی بەکارهێنانی CPU و باشترکردنی کارایی. لەوانەیە لە هەندێک یاری کێشە درووست بکات. - بەکارهێنانی سێبەری ناهاوسەنگ - کۆمپایلکردنی شادەرەکان بەشێوەی ناڕێک. ئەمە ڕەنگە کەمکردنەوەی ستەتەر بکات بەڵام لەوانەیە هەڵەش دروست بکات. الحالة الديناميكية الممتدة ناچالاک الرأس المثير diff --git a/src/android/app/src/main/res/values-cs/strings.xml b/src/android/app/src/main/res/values-cs/strings.xml index b56c21c9b0..9599d049f5 100644 --- a/src/android/app/src/main/res/values-cs/strings.xml +++ b/src/android/app/src/main/res/values-cs/strings.xml @@ -481,8 +481,6 @@ Nutí většinu her běžet v nejvyšším nativním rozlišení. Použijte hodnotu 256 pro maximální výkon a 512 pro nejlepší kvalitu. Přeskočit vnitřní invalidaci CPU Přeskočí určité invalidace mezipaměti procesoru při aktualizacích paměti, čímž snižuje vytížení CPU a zvyšuje jeho výkon. Může způsobit chyby nebo pády některých hrách. - Asynchronní kompilace shaderů - Kompiluje shadery asynchronně. To může zlepšit planulost, ale také způsobit grafické chyby. Rozšíření Úroveň EDS diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml index 7524402e6e..43aa7224e8 100644 --- a/src/android/app/src/main/res/values-de/strings.xml +++ b/src/android/app/src/main/res/values-de/strings.xml @@ -479,8 +479,6 @@ Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die Erzwingt bei den meisten Spielen die höchste native Auflösung. Verwende 256 für maximale Leistung und 512 für maximale Grafikqualität CPU-interne Invalidierung überspringen Überspringt bestimmte Cache-Invalidierungen auf CPU-Seite während Speicherupdates, reduziert die CPU-Auslastung und verbessert die Leistung. Kann in einigen Spielen zu Fehlern oder Abstürzen führen. - Asynchrone Shader - Kompiliert Shader asynchron. Dies kann Ruckler reduzieren, aber auch Grafikfehler verursachen. Erweiterungen Erweiterter dynamischer Status diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml index c0334ba8ba..6c9594ceee 100644 --- a/src/android/app/src/main/res/values-es/strings.xml +++ b/src/android/app/src/main/res/values-es/strings.xml @@ -418,8 +418,6 @@ Omitir invalidación interna de la CPU Omite ciertas invalidaciones de caché de la CPU durante las actualizaciones de memoria, lo que reduce el uso de la CPU y mejora su rendimiento. Esto puede causar fallos o bloqueos en algunos juegos. - Usar shaders asíncronos - Compila los shaders de forma asíncrona. Esto puede reducir los tirones, pero también puede introducir errores gráficos. Estado dinámico extendido Desactivado Vértice provocante diff --git a/src/android/app/src/main/res/values-fa/strings.xml b/src/android/app/src/main/res/values-fa/strings.xml index 80e40444c2..1601e7fbc8 100644 --- a/src/android/app/src/main/res/values-fa/strings.xml +++ b/src/android/app/src/main/res/values-fa/strings.xml @@ -435,8 +435,6 @@ حالت ضدپلگی اجبار به حداکثر فرکانس (فقط برای Adreno) پردازنده گرافیکی را مجبور می‌کند تا با بیشترین فرکانس کار کند (محدودیت‌های حرارتی همچنان اعمال خواهند شد). - استفاده از سایه‌زن‌های ناهمزمان - کامپایل شیدرها به صورت ناهمزمان. این ممکن است باعث کاهش مکث شود اما ممکن است مشکلات گرافیکی نیز ایجاد کند. استفاده از فلاش کردن واکنشی دقت تفسیر تصاویر را در برخی از بازی‌ها به قیمت عملکرد بهبود می‌بخشد. ذخیره سایه‌زنی‌ها در حافظه diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml index add275870d..1cea308bc0 100644 --- a/src/android/app/src/main/res/values-fr/strings.xml +++ b/src/android/app/src/main/res/values-fr/strings.xml @@ -432,8 +432,6 @@ Ignorer l\'invalidation interne du CPU Ignore certaines invalidations de cache côté CPU lors des mises à jour mémoire, réduisant l\'utilisation du CPU et améliorant ses performances. Peut causer des bugs ou plantages sur certains jeux. - Utiliser les shaders asynchrones - Compile les shaders de manière asynchrone. Cela peut réduire les saccades mais peut aussi provoquer des problèmes graphiques. État dynamique étendu Désactivé État dynamique d\'entrée de sommet diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml index bb156ba308..24b6961727 100644 --- a/src/android/app/src/main/res/values-he/strings.xml +++ b/src/android/app/src/main/res/values-he/strings.xml @@ -392,8 +392,6 @@ דלג על איפוס מטמון פנימי של המעבד מדלג על איפוסי מטמון מסוימים במהלך עדכוני זיכרון, מפחית שימוש במעבד ומשפר ביצועים. עלול לגרום לתקלות או קריסות בחלק מהמשחקים. - השתמש בשיידרים אסינכרונים - מקמפל שיידרים באופן אסינכרוני. זה עשוי להפחית קפיצות אך גם עלול לגרום לתקלות גרפיות. מצב דינמי מורחב מושבת קודקוד מעורר diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml index 606da0b470..0ce51b986a 100644 --- a/src/android/app/src/main/res/values-hu/strings.xml +++ b/src/android/app/src/main/res/values-hu/strings.xml @@ -380,8 +380,6 @@ CPU belső érvénytelenítés kihagyása Kihagy néhány CPU-oldali gyorsítótár-érvénytelenítést memóriafrissítések közben, csökkentve a CPU használatát és javítva a teljesítményt. Néhány játékban hibákat vagy összeomlást okozhat. - Aszinkron árnyékolók használata - A shaderek aszinkron fordítása. Csökkentheti a belassulásokat, de hibákat is okozhat. Kiterjesztett Dinamikus Állapot Letiltva Provokáló csúcs diff --git a/src/android/app/src/main/res/values-id/strings.xml b/src/android/app/src/main/res/values-id/strings.xml index 1189e7444b..ae18ccdd06 100644 --- a/src/android/app/src/main/res/values-id/strings.xml +++ b/src/android/app/src/main/res/values-id/strings.xml @@ -412,8 +412,6 @@ Lewati Pembatalan Internal CPU Melewati beberapa pembatalan cache sisi CPU selama pembaruan memori, mengurangi penggunaan CPU dan meningkatkan kinerjanya. Mungkin menyebabkan gangguan atau crash pada beberapa game. - Gunakan shader asinkron - Kompilasi shader secara asinkron. Ini dapat mengurangi lag tetapi juga dapat menyebabkan glitch. Status Dinamis Ekstensi Dinonaktifkan Vertex Provokasi diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml index cf0efab261..9deecc7f4c 100644 --- a/src/android/app/src/main/res/values-it/strings.xml +++ b/src/android/app/src/main/res/values-it/strings.xml @@ -419,8 +419,6 @@ Salta invalidamento interno CPU Salta alcuni invalidamenti della cache lato CPU durante gli aggiornamenti di memoria, riducendo l\'uso della CPU e migliorandone le prestazioni. Potrebbe causare glitch o crash in alcuni giochi. - Usa shaders asincrone - Compila gli shader in modo asincrono. Può ridurre gli scatti, ma può anche causare glitch grafici. Stato dinamico esteso Disabilitato Vertice provocante diff --git a/src/android/app/src/main/res/values-ja/strings.xml b/src/android/app/src/main/res/values-ja/strings.xml index cf382a9792..79275c42e3 100644 --- a/src/android/app/src/main/res/values-ja/strings.xml +++ b/src/android/app/src/main/res/values-ja/strings.xml @@ -378,8 +378,6 @@ CPU内部無効化をスキップ メモリ更新時のCPU側キャッシュ無効化をスキップし、CPU使用率を減らして性能を向上させます。一部のゲームで不具合やクラッシュが発生する可能性があります。 - 非同期シェーダー - シェーダーを非同期でコンパイルします。これによりカクつきが減る可能性がありますが、グラフィックの不具合が発生する場合もあります。 拡張ダイナミックステート 無効 プロボーキング頂点 diff --git a/src/android/app/src/main/res/values-ko/strings.xml b/src/android/app/src/main/res/values-ko/strings.xml index 173d9b5678..0806035e6d 100644 --- a/src/android/app/src/main/res/values-ko/strings.xml +++ b/src/android/app/src/main/res/values-ko/strings.xml @@ -378,8 +378,6 @@ CPU 내부 무효화 건너뛰기 메모리 업데이트 시 일부 CPU 측 캐시 무효화를 건너뛰어 CPU 사용량을 줄이고 성능을 향상시킵니다. 일부 게임에서 오류 또는 충돌을 일으킬 수 있습니다. - 비동기 셰이더 사용 - 셰이더를 비동기적으로 컴파일합니다. 이로 인해 끊김 현상이 줄어들 수 있지만 그래픽 오류가 발생할 수도 있습니다. 확장 동적 상태 비활성화됨 프로보킹 버텍스 diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml index b3f8f4902c..a7680383a9 100644 --- a/src/android/app/src/main/res/values-nb/strings.xml +++ b/src/android/app/src/main/res/values-nb/strings.xml @@ -361,8 +361,6 @@ Hopp over CPU intern invalidering Hopper over enkelte CPU-side cache-invalideringer under minneoppdateringer, reduserer CPU-bruk og forbedrer ytelsen. Kan forårsake feil eller krasj i noen spill. - Bruk asynkrone shaders - Kompilerer shadere asynkront. Dette kan redusere rykk, men kan også forårsake grafiske feil. Utvidet dynamisk tilstand Deaktivert Provoserende vertex diff --git a/src/android/app/src/main/res/values-pl/strings.xml b/src/android/app/src/main/res/values-pl/strings.xml index 3d69cce8f3..db680cfdf0 100644 --- a/src/android/app/src/main/res/values-pl/strings.xml +++ b/src/android/app/src/main/res/values-pl/strings.xml @@ -481,8 +481,6 @@ Wymusza działanie większości gier w ich najwyższej natywnej rozdzielczości. Ustaw 256 dla maksymalnej wydajności, a 512 dla maksymalnej jakości grafiki. Pomiń wewnętrzne unieważnienie CPU Pomija niektóre unieważnienia pamięci podręcznej po stronie CPU podczas aktualizacji pamięci, zmniejszając użycie CPU i poprawiając jego wydajność. Może powodować błędy lub awarie w niektórych grach. - Wyłącz synchronizację shaderów - Kompiluje shadery asynchronicznie. Może to zmniejszyć zacinanie, ale może też powodować błędy graficzne. Rozszerzenia Rozszerzony stan dynamiczny diff --git a/src/android/app/src/main/res/values-pt-rBR/strings.xml b/src/android/app/src/main/res/values-pt-rBR/strings.xml index 08e2695d2e..42ba54bc90 100644 --- a/src/android/app/src/main/res/values-pt-rBR/strings.xml +++ b/src/android/app/src/main/res/values-pt-rBR/strings.xml @@ -467,8 +467,6 @@ Ignorar Invalidação Interna da CPU Ignora certas invalidações de cache do lado da CPU durante atualizações de memória, reduzindo o uso da CPU e melhorando seu desempenho. Isso pode causar falhas ou travamentos em alguns jogos. - Usar shaders assíncronos - Compila shaders de forma assíncrona. Isso pode reduzir engasgos, mas também pode introduzir falhas gráficas. Extended Dynamic State Desativado Vertex Input Dynamic State diff --git a/src/android/app/src/main/res/values-pt-rPT/strings.xml b/src/android/app/src/main/res/values-pt-rPT/strings.xml index 1cbbb74c34..32f723f5b8 100644 --- a/src/android/app/src/main/res/values-pt-rPT/strings.xml +++ b/src/android/app/src/main/res/values-pt-rPT/strings.xml @@ -384,8 +384,6 @@ Ignorar invalidação interna da CPU Ignora algumas invalidações de cache do lado da CPU durante atualizações de memória, reduzindo a utilização da CPU e melhorando o desempenho. Pode causar falhas ou crashes em alguns jogos. - Usa shaders assíncronos - Compila shaders de forma assíncrona. Isto pode reduzir engasgadelas, mas também pode introduzir falhas gráficas. Estado Dinâmico Estendido Desativado Vértice provocante diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml index a9a3cceaae..684f939897 100644 --- a/src/android/app/src/main/res/values-ru/strings.xml +++ b/src/android/app/src/main/res/values-ru/strings.xml @@ -483,8 +483,6 @@ Принудительно запускает большинство игр в их максимальном нативном разрешении. Используйте значение 256 для максимальной производительности и 512 для максимального качества графики. Пропустить внутреннюю инвалидацию ЦП Пропускает некоторые инвалидации кэша на стороне ЦП при обновлениях памяти, уменьшая нагрузку на процессор и повышая производительность. Может вызывать сбои в некоторых играх. - Использовать асинхронные шейдеры - Компилирует шейдеры асинхронно. Это может уменьшить подтормаживания, но также может вызвать графические артефакты. Макс. размер текстуры Unswizzle Задает максимальный размер (в МБ) текстур для преобразования формата (unswizzle) на ГП. Хотя ГП быстрее работает со средними и большими текстурами, ЦП может быть эффективнее для очень маленьких. Настройте это значение, чтобы найти баланс между ускорением на ГП и нагрузкой на ЦП. Размер потока Unswizzle diff --git a/src/android/app/src/main/res/values-sr/strings.xml b/src/android/app/src/main/res/values-sr/strings.xml index 62fe3f2fa3..ed339ff17f 100644 --- a/src/android/app/src/main/res/values-sr/strings.xml +++ b/src/android/app/src/main/res/values-sr/strings.xml @@ -383,8 +383,6 @@ Preskoči unutrašnje poništavanje CPU-a Preskače određena poništavanja keša na strani CPU-a tokom ažuriranja memorije, smanjujući opterećenje procesora i poboljšavajući performanse. Može izazvati greške u nekim igrama. - Користите асинхроне схадера - Саставља схадера асинхроно. Ово може умањити затезаче, али могу такође да уведе пропусте. Проширена динамичка држава Искључено Провоцирајући врх diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml index ada2445d05..9f3cedede7 100644 --- a/src/android/app/src/main/res/values-uk/strings.xml +++ b/src/android/app/src/main/res/values-uk/strings.xml @@ -487,8 +487,6 @@ Пропускає деякі інвалідації кешу на стороні CPU під час оновлення пам\'яті, зменшуючи навантаження на процесор і покращуючи продуктивність. Може спричинити збої в деяких іграх. Виправити ефекти світіння Зменшує розмиття світіння в LA/EOW (Adreno 700), прибирає світіння в Burnout - Асинхронні шейдери - Компілює шейдери асинхронно. Це може зменшити затримки, але також може спричинити графічні баги. Максимальний розмір текстур для відновлення перевпорядковування за допомогою ГП Встановлює максимальний розмір (МБ) для відновлення перевпорядкованих текстур за допомогою ГП. ГП швидше справляється з текстурами середніх і великих розмірів, а ЦП ефективніший для дуже маленьких. Налаштуйте, щоб збалансувати ГП-прискоренням і навантаженням на ЦП. Розмір потоку відновлення перевпорядковування за допомогою ГП diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml index 82331efb1c..ac67a9631c 100644 --- a/src/android/app/src/main/res/values-vi/strings.xml +++ b/src/android/app/src/main/res/values-vi/strings.xml @@ -359,8 +359,6 @@ Bỏ qua vô hiệu hóa bên trong CPU Bỏ qua một số lần vô hiệu hóa bộ nhớ đệm phía CPU trong khi cập nhật bộ nhớ, giảm mức sử dụng CPU và cải thiện hiệu suất. Có thể gây ra lỗi hoặc treo máy trong một số trò chơi. - Dùng các shader bất đồng bộ - Biên dịch shader không đồng bộ. Điều này có thể giảm giật lag nhưng cũng có thể gây ra lỗi đồ họa. Trạng thái động mở rộng Đã tắt Đỉnh kích hoạt diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml index 08b55297a7..5d67394deb 100644 --- a/src/android/app/src/main/res/values-zh-rCN/strings.xml +++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml @@ -481,8 +481,6 @@ 在内存更新期间跳过某些CPU端缓存无效化,减少CPU使用率并提高其性能。可能会导致某些游戏出现故障或崩溃。 修复泛光效果 降低了 LA/EOW(在 Adreno 700 系列 GPU 上)的泛光模糊;去除了《火爆狂飙》中的泛光特效。 - 使用异步着色器 - 异步编译着色器。这可能会减少卡顿,但也可能会导致图形错误。 GPU 还原最大纹理尺寸 设置基于 GPU 的纹理还原的最大尺寸(单位:MiB)。\n虽然 GPU 在处理中型和大型纹理时速度更快,但对于非常小的纹理,CPU 的效率可能更高。\n调整此设置,以便在 GPU 加速和 CPU 开销之间找到最佳平衡点。 GPU 还原流大小 diff --git a/src/android/app/src/main/res/values-zh-rTW/strings.xml b/src/android/app/src/main/res/values-zh-rTW/strings.xml index c7061ebc03..ceee9d636f 100644 --- a/src/android/app/src/main/res/values-zh-rTW/strings.xml +++ b/src/android/app/src/main/res/values-zh-rTW/strings.xml @@ -463,8 +463,6 @@ 跳過CPU內部失效處理 在記憶體更新期間跳過某些CPU端快取的失效處理,減少CPU使用率並提高其性能。可能會導致某些遊戲出現故障或崩潰。 - 使用非同步著色器 - 非同步編譯著色器。這可能會減少卡頓,但也可能導致圖形錯誤。 擴展動態狀態 已停用 頂點輸入動態狀態 diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index b553402628..b32b5462b4 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -508,8 +508,6 @@ Skips certain CPU-side cache invalidations during memory updates, reducing CPU usage and improving it\'s performance. This may cause glitches or crashes on some games. Fix Bloom Effects Reduces bloom blur in LA/EOW (Adreno 700), removes bloom in Burnout. Warning: may cause graphical artifacts in other games. - Use asynchronous shaders - Compiles shaders asynchronously. This may reduce stutters but may also introduce glitches. GPU Unswizzle Settings Configure GPU-based texture unswizzling parameters or disable it entirely. Adjust these settings to balance performance and texture loading quality. Enable GPU Unswizzle diff --git a/src/common/settings.h b/src/common/settings.h index a03c6e1a2c..b166e1ba99 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -546,9 +546,6 @@ struct Values { SwitchableSetting fix_bloom_effects{linkage, false, "fix_bloom_effects", Category::RendererHacks}; - SwitchableSetting use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders", - Category::RendererHacks}; - SwitchableSetting gpu_unswizzle_texture_size{linkage, GpuUnswizzleSize::Large, "gpu_unswizzle_texture_size", diff --git a/src/qt_common/config/shared_translation.cpp b/src/qt_common/config/shared_translation.cpp index f4355197b0..68ca1ce49c 100644 --- a/src/qt_common/config/shared_translation.cpp +++ b/src/qt_common/config/shared_translation.cpp @@ -285,10 +285,6 @@ std::unique_ptr InitializeTranslations(QObject* parent) dma_accuracy, tr("DMA Accuracy:"), tr("Controls the DMA precision accuracy. Safe precision fixes issues in some games but may degrade performance.")); - INSERT(Settings, - use_asynchronous_shaders, - tr("Enable asynchronous shader compilation"), - tr("May reduce shader stutter.")); INSERT(Settings, fast_gpu_time, tr("Fast GPU Time"), diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp index b49568b77d..e9c7d63021 100644 --- a/src/video_core/renderer_opengl/gl_device.cpp +++ b/src/video_core/renderer_opengl/gl_device.cpp @@ -252,22 +252,6 @@ Device::Device(Core::Frontend::EmuWindow& emu_window) { has_lmem_perf_bug = is_nvidia; strict_context_required = emu_window.StrictContextRequired(); - // Blocks Intel OpenGL drivers on Windows from using asynchronous shader compilation. - // Blocks EGL on Wayland from using asynchronous shader compilation. - const bool blacklist_async_shaders = (is_intel && !is_linux) || strict_context_required; - use_asynchronous_shaders = - Settings::values.use_asynchronous_shaders.GetValue() && !blacklist_async_shaders; - use_driver_cache = is_nvidia; - supports_conditional_barriers = !is_intel; - - LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi); - LOG_INFO(Render_OpenGL, "Renderer_ComponentIndexingBug: {}", has_component_indexing_bug); - LOG_INFO(Render_OpenGL, "Renderer_PreciseBug: {}", has_precise_bug); - LOG_INFO(Render_OpenGL, "Renderer_BrokenTextureViewFormats: {}", - has_broken_texture_view_formats); - if (Settings::values.use_asynchronous_shaders.GetValue() && !use_asynchronous_shaders) { - LOG_WARNING(Render_OpenGL, "Asynchronous shader compilation enabled but not supported"); - } } std::string Device::GetVendorName() const { diff --git a/src/video_core/renderer_opengl/gl_device.h b/src/video_core/renderer_opengl/gl_device.h index 17b5a828f2..8487918d3a 100644 --- a/src/video_core/renderer_opengl/gl_device.h +++ b/src/video_core/renderer_opengl/gl_device.h @@ -115,10 +115,6 @@ public: return use_assembly_shaders; } - bool UseAsynchronousShaders() const { - return use_asynchronous_shaders; - } - bool UseDriverCache() const { return use_driver_cache; } @@ -219,7 +215,6 @@ private: bool has_derivative_control{}; bool has_debugging_tool_attached{}; bool use_assembly_shaders{}; - bool use_asynchronous_shaders{}; bool use_driver_cache{}; bool has_depth_buffer_float{}; bool has_geometry_shader_passthrough{}; diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp index 70a13d6a69..10b7018a7d 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp @@ -179,7 +179,6 @@ ShaderCache::ShaderCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, : VideoCommon::ShaderCache{device_memory_}, emu_window{emu_window_}, device{device_}, texture_cache{texture_cache_}, buffer_cache{buffer_cache_}, program_manager{program_manager_}, state_tracker{state_tracker_}, shader_notify{shader_notify_}, - use_asynchronous_shaders{device.UseAsynchronousShaders()}, strict_context_required{device.StrictContextRequired()}, optimize_spirv_output{Settings::values.optimize_spirv_output.GetValue() != Settings::SpirvOptimizeMode::Never}, profile{ @@ -252,9 +251,6 @@ ShaderCache::ShaderCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, .support_geometry_shader_passthrough = device.HasGeometryShaderPassthrough(), .support_conditional_barrier = device.SupportsConditionalBarriers(), } { - if (use_asynchronous_shaders) { - workers = CreateWorkers(); - } } ShaderCache::~ShaderCache() = default; @@ -345,9 +341,7 @@ void ShaderCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading, return; } workers->WaitForRequests(stop_loading); - if (!use_asynchronous_shaders) { - workers.reset(); - } + workers.reset(); if (Settings::values.optimize_spirv_output.GetValue() != Settings::SpirvOptimizeMode::Always) { this->optimize_spirv_output = false; @@ -374,7 +368,7 @@ GraphicsPipeline* ShaderCache::CurrentGraphicsPipeline() { SetXfbState(graphics_key.xfb_state, regs); } if (current_pipeline && graphics_key == current_pipeline->Key()) { - return BuiltPipeline(current_pipeline); + return current_pipeline; } return CurrentGraphicsPipelineSlowPath(); } @@ -389,24 +383,7 @@ GraphicsPipeline* ShaderCache::CurrentGraphicsPipelineSlowPath() { return nullptr; } current_pipeline = pipeline.get(); - return BuiltPipeline(current_pipeline); -} - -GraphicsPipeline* ShaderCache::BuiltPipeline(GraphicsPipeline* pipeline) const noexcept { - if (pipeline->IsBuilt()) { - return pipeline; - } - if (!use_asynchronous_shaders) { - return pipeline; - } - // If games are using a small index count, we can assume these are full screen quads. - // Usually these shaders are only used once for building textures so we can assume they - // can't be built async - const auto& draw_state = maxwell3d->draw_manager->GetDrawState(); - if (draw_state.index_buffer.count <= 6 || draw_state.vertex_buffer.count <= 6) { - return pipeline; - } - return nullptr; + return current_pipeline; } ComputePipeline* ShaderCache::CurrentComputePipeline() { @@ -434,8 +411,7 @@ std::unique_ptr ShaderCache::CreateGraphicsPipeline() { GetGraphicsEnvironments(environments, graphics_key.unique_hashes); main_pools.ReleaseContents(); - auto pipeline{CreateGraphicsPipeline(main_pools, graphics_key, environments.Span(), - use_asynchronous_shaders)}; + auto pipeline{CreateGraphicsPipeline(main_pools, graphics_key, environments.Span(), false)}; if (!pipeline || shader_cache_filename.empty()) { return pipeline; } diff --git a/src/video_core/renderer_opengl/gl_shader_cache.h b/src/video_core/renderer_opengl/gl_shader_cache.h index 3398ba6f51..a18289029b 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.h +++ b/src/video_core/renderer_opengl/gl_shader_cache.h @@ -48,8 +48,6 @@ public: private: GraphicsPipeline* CurrentGraphicsPipelineSlowPath(); - [[nodiscard]] GraphicsPipeline* BuiltPipeline(GraphicsPipeline* pipeline) const noexcept; - std::unique_ptr CreateGraphicsPipeline(); std::unique_ptr CreateGraphicsPipeline( @@ -74,7 +72,6 @@ private: ProgramManager& program_manager; StateTracker& state_tracker; VideoCore::ShaderNotify& shader_notify; - const bool use_asynchronous_shaders; const bool strict_context_required; bool optimize_spirv_output{}; diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index f3dd0f90d8..1f6754e7dd 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -339,7 +339,6 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, descriptor_pool{descriptor_pool_}, guest_descriptor_queue{guest_descriptor_queue_}, render_pass_cache{render_pass_cache_}, buffer_cache{buffer_cache_}, texture_cache{texture_cache_}, shader_notify{shader_notify_}, - use_asynchronous_shaders{Settings::values.use_asynchronous_shaders.GetValue()}, use_vulkan_pipeline_cache{Settings::values.use_vulkan_driver_pipeline_cache.GetValue()}, optimize_spirv_output{Settings::values.optimize_spirv_output.GetValue() != Settings::SpirvOptimizeMode::Never}, workers(device.HasBrokenParallelShaderCompiling() ? 1ULL : GetTotalPipelineWorkers(), @@ -483,7 +482,7 @@ GraphicsPipeline* PipelineCache::CurrentGraphicsPipeline() { GraphicsPipeline* const next{current_pipeline->Next(graphics_key)}; if (next) { current_pipeline = next; - return BuiltPipeline(current_pipeline); + return current_pipeline; } } return CurrentGraphicsPipelineSlowPath(); @@ -634,24 +633,7 @@ GraphicsPipeline* PipelineCache::CurrentGraphicsPipelineSlowPath() { current_pipeline->AddTransition(pipeline.get()); } current_pipeline = pipeline.get(); - return BuiltPipeline(current_pipeline); -} - -GraphicsPipeline* PipelineCache::BuiltPipeline(GraphicsPipeline* pipeline) const noexcept { - if (pipeline->IsBuilt()) { - return pipeline; - } - if (!use_asynchronous_shaders) { - return pipeline; - } - // If games are using a small index count, we can assume these are full screen quads. - // Usually these shaders are only used once for building textures so we can assume they - // can't be built async - const auto& draw_state = maxwell3d->draw_manager->GetDrawState(); - if (draw_state.index_buffer.count <= 6 || draw_state.vertex_buffer.count <= 6) { - return pipeline; - } - return nullptr; + return current_pipeline; } std::unique_ptr PipelineCache::CreateGraphicsPipeline( diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.h b/src/video_core/renderer_vulkan/vk_pipeline_cache.h index 1f7dab935c..32c86a4f1a 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.h +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.h @@ -119,8 +119,6 @@ public: private: [[nodiscard]] GraphicsPipeline* CurrentGraphicsPipelineSlowPath(); - [[nodiscard]] GraphicsPipeline* BuiltPipeline(GraphicsPipeline* pipeline) const noexcept; - std::unique_ptr CreateGraphicsPipeline(); std::unique_ptr CreateGraphicsPipeline( @@ -151,7 +149,6 @@ private: BufferCache& buffer_cache; TextureCache& texture_cache; VideoCore::ShaderNotify& shader_notify; - bool use_asynchronous_shaders{}; bool use_vulkan_pipeline_cache{}; bool optimize_spirv_output{};