diff --git a/dist/languages/ar.ts b/dist/languages/ar.ts
index d3646b55cb..3c1cc8ed75 100644
--- a/dist/languages/ar.ts
+++ b/dist/languages/ar.ts
@@ -1137,19 +1137,7 @@ Higher states allow for more features and can increase performance, but may caus
يتيح ميزة الحالة الديناميكية لإدخال الرأس لتحسين الجودة والأداء.
-
- Provoking Vertex
- استفزاز قمة الرأس
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- يُحسّن الإضاءة ومعالجة الرؤوس في بعض الألعاب.
-تدعم هذه الإضافة أجهزة Vulkan 1.0+ فقط.
-
-
-
+ Descriptor Indexingفهرسة الوصف
diff --git a/dist/languages/ca.ts b/dist/languages/ca.ts
index 24c4a4c076..58789f7b99 100644
--- a/dist/languages/ca.ts
+++ b/dist/languages/ca.ts
@@ -1085,18 +1085,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/cs.ts b/dist/languages/cs.ts
index c37db5b5fe..5576501dfd 100644
--- a/dist/languages/cs.ts
+++ b/dist/languages/cs.ts
@@ -1085,18 +1085,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/da.ts b/dist/languages/da.ts
index 315a828e29..809ef7669c 100644
--- a/dist/languages/da.ts
+++ b/dist/languages/da.ts
@@ -1087,18 +1087,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/de.ts b/dist/languages/de.ts
index 83acb48a4c..ab2b3a536c 100644
--- a/dist/languages/de.ts
+++ b/dist/languages/de.ts
@@ -1095,18 +1095,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/el.ts b/dist/languages/el.ts
index dffe07574b..ed2a147c05 100644
--- a/dist/languages/el.ts
+++ b/dist/languages/el.ts
@@ -1087,18 +1087,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/es.ts b/dist/languages/es.ts
index f6d1e7c690..862abe585d 100644
--- a/dist/languages/es.ts
+++ b/dist/languages/es.ts
@@ -1142,19 +1142,7 @@ Números más altos permiten úsar más funciones y pueden aumentar el rendimien
Activa la función de estado dinámico de entrada de vértices para una mejor calidad y rendimiento.
-
- Provoking Vertex
- Vértice provocante
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Mejora la iluminación y la gestión de vértices en algunos juegos.
-Solo los dispositivos Vulkan 1.0+ son compatibles con esta extensión.
-
-
-
+ Descriptor IndexingIndexación del descriptor
diff --git a/dist/languages/fi.ts b/dist/languages/fi.ts
index 5f2153d32e..1ea6834ea0 100644
--- a/dist/languages/fi.ts
+++ b/dist/languages/fi.ts
@@ -1085,18 +1085,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/fr.ts b/dist/languages/fr.ts
index 23cce1f623..223c13b51d 100644
--- a/dist/languages/fr.ts
+++ b/dist/languages/fr.ts
@@ -1133,19 +1133,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
- Vertex provoquant
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Améliore l’éclairage et la gestion des points 3D dans certains jeux.
-Seuls les appareils compatibles avec Vulkan 1.0+ prennent en charge cette extension.
-
-
-
+ Descriptor IndexingIndexation des descripteurs
diff --git a/dist/languages/hu.ts b/dist/languages/hu.ts
index 34c30987ab..98d33ff38b 100644
--- a/dist/languages/hu.ts
+++ b/dist/languages/hu.ts
@@ -1093,18 +1093,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/id.ts b/dist/languages/id.ts
index cd5f96a886..de17a2ba55 100644
--- a/dist/languages/id.ts
+++ b/dist/languages/id.ts
@@ -1108,18 +1108,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/it.ts b/dist/languages/it.ts
index 9fddfa79e0..fb0ba9e940 100644
--- a/dist/languages/it.ts
+++ b/dist/languages/it.ts
@@ -1137,19 +1137,7 @@ Gli stati più alti consentono più funzionalità e possono migliorare le presta
-
- Provoking Vertex
- Provoking Vertex
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Migliora l'illuminazione e la gestione dei vertici in alcuni giochi.
-Solo i dispositivi con Vulkan 1.0+ supportano quest'estensione.
-
-
-
+ Descriptor IndexingIndicizzazione descrittori
diff --git a/dist/languages/ja_JP.ts b/dist/languages/ja_JP.ts
index c457a9fb88..24ee17c10b 100644
--- a/dist/languages/ja_JP.ts
+++ b/dist/languages/ja_JP.ts
@@ -1090,18 +1090,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/ko_KR.ts b/dist/languages/ko_KR.ts
index 99957e42e6..dafbf93de3 100644
--- a/dist/languages/ko_KR.ts
+++ b/dist/languages/ko_KR.ts
@@ -1087,18 +1087,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/nb.ts b/dist/languages/nb.ts
index ed97ddb20d..f3ed39d196 100644
--- a/dist/languages/nb.ts
+++ b/dist/languages/nb.ts
@@ -1087,18 +1087,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/nl.ts b/dist/languages/nl.ts
index b50a262d75..503a3ad31f 100644
--- a/dist/languages/nl.ts
+++ b/dist/languages/nl.ts
@@ -1096,18 +1096,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/pl.ts b/dist/languages/pl.ts
index 1e19c09806..57043f143a 100644
--- a/dist/languages/pl.ts
+++ b/dist/languages/pl.ts
@@ -1136,19 +1136,7 @@ Wyższe poziomy pozwalają na użycie większej liczby funkcji i mogą zwiększy
Włącza funkcję dynamicznego stanu wejścia wierzchołków, poprawiając jakość i wydajność.
-
- Provoking Vertex
- Wierzchołek prowokujący
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Poprawia oświetlenie i obsługę wierzchołków w niektórych grach.
-To rozszerzenie jest obsługiwane tylko na urządzeniach z Vulkanem 1.0+.
-
-
-
+ Descriptor IndexingIndeksowanie deskryptorów
diff --git a/dist/languages/pt_BR.ts b/dist/languages/pt_BR.ts
index c7bb8304d8..deb2d8d61a 100644
--- a/dist/languages/pt_BR.ts
+++ b/dist/languages/pt_BR.ts
@@ -1120,18 +1120,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/pt_PT.ts b/dist/languages/pt_PT.ts
index 5b205a4504..22affcc6eb 100644
--- a/dist/languages/pt_PT.ts
+++ b/dist/languages/pt_PT.ts
@@ -1095,18 +1095,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/ru_RU.ts b/dist/languages/ru_RU.ts
index 32af1943f0..e223a53b9c 100644
--- a/dist/languages/ru_RU.ts
+++ b/dist/languages/ru_RU.ts
@@ -1142,19 +1142,7 @@ Higher states allow for more features and can increase performance, but may caus
Включает функцию динамического состояния вершинного ввода для повышения качества и производительности.
-
- Provoking Vertex
- Определяющая вершина
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Улучшает освещение и обработку вершин в определенных играх.
- Поддерживаются устройства только с Vulkan 1.0+.
-
-
-
+ Descriptor IndexingИндексирование дескрипторов
diff --git a/dist/languages/sv.ts b/dist/languages/sv.ts
index f88f465027..e7a5e84e87 100644
--- a/dist/languages/sv.ts
+++ b/dist/languages/sv.ts
@@ -1150,19 +1150,7 @@ Högre tillstånd möjliggör fler funktioner och kan öka prestandan, men kan o
Aktiverar funktionen för dynamiskt tillstånd för vertexinmatning för bättre kvalitet och prestanda.
-
- Provoking Vertex
- Provocerande toppunkt
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Förbättrar belysning och vertexhantering i vissa spel.
-Endast enheter med Vulkan 1.0+ stöder denna tilläggsfunktion.
-
-
-
+ Descriptor IndexingIndexering av deskriptorer
diff --git a/dist/languages/tr_TR.ts b/dist/languages/tr_TR.ts
index b9e459c61e..8861e0e301 100644
--- a/dist/languages/tr_TR.ts
+++ b/dist/languages/tr_TR.ts
@@ -1104,18 +1104,7 @@ Higher states allow for more features and can increase performance, but may caus
Daha iyi kalite ve performans için Vertex dinamik durum özelliğini etkinleştirir.
-
- Provoking Vertex
- Provoking Vertex
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Bazı oyunlarda aydınlatmayı ve köşe işlemeyi iyileştirir. Bu uzantıyı yalnızca Vulkan 1.0 ve üzeri cihazlar destekler.
-
-
-
+ Descriptor IndexingTanımlayıcı İndeksleme
diff --git a/dist/languages/uk.ts b/dist/languages/uk.ts
index cc098e778c..f1daa75f97 100644
--- a/dist/languages/uk.ts
+++ b/dist/languages/uk.ts
@@ -1145,19 +1145,7 @@ Higher states allow for more features and can increase performance, but may caus
Вмикає можливість динамічного стану введення вершин для кращих якості й продуктивності.
-
- Provoking Vertex
- Провокативна вершина
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- Покращує освітлення та взаємодію з вершинами у деяких іграх.
-Це розширення підтримують лише пристрої з Vulkan 1.0+.
-
-
-
+ Descriptor IndexingІндексування дескрипторів
diff --git a/dist/languages/vi.ts b/dist/languages/vi.ts
index 7871a695ff..aec73c8ca6 100644
--- a/dist/languages/vi.ts
+++ b/dist/languages/vi.ts
@@ -1087,18 +1087,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/vi_VN.ts b/dist/languages/vi_VN.ts
index 183bf92471..8fd3961542 100644
--- a/dist/languages/vi_VN.ts
+++ b/dist/languages/vi_VN.ts
@@ -1087,18 +1087,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
diff --git a/dist/languages/zh_CN.ts b/dist/languages/zh_CN.ts
index 80a3e98c38..a129b2ef96 100644
--- a/dist/languages/zh_CN.ts
+++ b/dist/languages/zh_CN.ts
@@ -1143,18 +1143,7 @@ Higher states allow for more features and can increase performance, but may caus
开启顶点输入动态状态功能来获得更好的质量和性能。
-
- Provoking Vertex
- 激活顶点
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
- 改善某些游戏中的照明和顶点处理。仅 Vulkan 1.0 设备支持此扩展。
-
-
-
+ Descriptor Indexing描述符索引
diff --git a/dist/languages/zh_TW.ts b/dist/languages/zh_TW.ts
index e1710ad23e..bc100cdbfe 100644
--- a/dist/languages/zh_TW.ts
+++ b/dist/languages/zh_TW.ts
@@ -1117,18 +1117,7 @@ Higher states allow for more features and can increase performance, but may caus
-
- Provoking Vertex
-
-
-
-
- Improves lighting and vertex handling in some games.
-Only Vulkan 1.0+ devices support this extension.
-
-
-
-
+ Descriptor Indexing
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 2418003904..d03a90e2a8 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
@@ -31,7 +31,6 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
RENDERER_DEBUG("debug"),
RENDERER_PATCH_OLD_QCOM_DRIVERS("patch_old_qcom_drivers"),
RENDERER_VERTEX_INPUT_DYNAMIC_STATE("vertex_input_dynamic_state"),
- RENDERER_PROVOKING_VERTEX("provoking_vertex"),
RENDERER_DESCRIPTOR_INDEXING("descriptor_indexing"),
RENDERER_SAMPLE_SHADING("sample_shading"),
GPU_UNSWIZZLE_ENABLED("gpu_unswizzle_enabled"),
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 6f25856cbf..95d6d52b5e 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
@@ -141,13 +141,6 @@ abstract class SettingsItem(
valuesId = R.array.dynaStateValues
)
)
- put(
- SwitchSetting(
- BooleanSetting.RENDERER_PROVOKING_VERTEX,
- titleId = R.string.provoking_vertex,
- descriptionId = R.string.provoking_vertex_description
- )
- )
put(
SwitchSetting(
BooleanSetting.RENDERER_VERTEX_INPUT_DYNAMIC_STATE,
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 060a6fe9ae..53ea56c08a 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
@@ -280,7 +280,6 @@ class SettingsFragmentPresenter(
add(IntSetting.RENDERER_DYNA_STATE.key)
add(BooleanSetting.RENDERER_VERTEX_INPUT_DYNAMIC_STATE.key)
- add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
add(IntSetting.RENDERER_SAMPLE_SHADING.key)
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 0b544747c5..3bd21e98f4 100644
--- a/src/android/app/src/main/res/values-ar/strings.xml
+++ b/src/android/app/src/main/res/values-ar/strings.xml
@@ -525,8 +525,6 @@
معطلحالة ديناميكية لإدخال الرأسيتيح ميزة الحالة الديناميكية لإدخال الرأس لتحسين الجودة والأداء.
- الرأس المثير
- يحسن الإضاءة ومعالجة الرؤوس في بعض الألعاب. مدعوم فقط على وحدات معالجة الرسومات Vulkan 1.0+.فهرسة الوصفيحسن معالجة النسيج والمخزن المؤقت، بالإضافة إلى طبقة الترجمة Maxwell. مدعوم من بعض وحدات معالجة الرسومات Vulkan 1.1 وجميع وحدات معالجة الرسومات Vulkan 1.2+.تظليل العينة
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 3adce117c3..80f511af2b 100644
--- a/src/android/app/src/main/res/values-ckb/strings.xml
+++ b/src/android/app/src/main/res/values-ckb/strings.xml
@@ -360,8 +360,6 @@
کۆمپایلکردنی شادەرەکان بەشێوەی ناڕێک. ئەمە ڕەنگە کەمکردنەوەی ستەتەر بکات بەڵام لەوانەیە هەڵەش دروست بکات.الحالة الديناميكية الممتدةناچالاک
- الرأس المثير
- يحسن الإضاءة ومعالجة الرؤوس في بعض الألعاب. مدعوم فقط على وحدات معالجة الرسومات التي تدعم فولكان 1.0+.فهرسة الواصفاتيحسن معالجة القوام والمخازن المؤقتة، بالإضافة إلى طبقة ترجمة ماكسويل. مدعوم من قبل بعض وحدات معالجة الرسومات التي تدعم فولكان 1.1 وجميع وحدات معالجة الرسومات التي تدعم فولكان 1.2+.پیشاندان
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 f42e743173..ad5530d3d2 100644
--- a/src/android/app/src/main/res/values-cs/strings.xml
+++ b/src/android/app/src/main/res/values-cs/strings.xml
@@ -486,8 +486,6 @@
VypnutoDynamický stav vstupu vrcholů (Vertex Input)Aktivuje funkci dynamického stavu vstupu vrcholů (Vertex Input Dynamic State) pro lepší kvalitu a výkon.
- Určující vrchol
- Zlepšuje osvětlení a zpracování vrcholů v některých hrách. Podporováno pouze na GPU s API Vulkan 1.0+.Indexování deskriptorůZlepšuje zpracování textur a bufferů, stejně jako překladovou vrstvu architektury Maxwell. Podporováno některými GPU s API Vulkan 1.1 a všemi GPU s API Vulkan 1.2+.Zobrazení
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 f97bd4c08c..38b0cceb58 100644
--- a/src/android/app/src/main/res/values-de/strings.xml
+++ b/src/android/app/src/main/res/values-de/strings.xml
@@ -484,8 +484,6 @@ Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die
DeaktiviertVertex Input Dynamic StateAktiviert die Funktion \"Vertex Input Dynamic State\" für bessere Qualität und Leistung.
- Provokanter Vertex
- Verbessert die Beleuchtung und die Vertex-Verarbeitung in einigen Spielen. Wird nur von GPUs mit Vulkan 1.0+ unterstützt.Deskriptor-IndizierungVerbessert die Textur- und Puffer-Verarbeitung sowie die Maxwell-Übersetzungsschicht. Wird von einigen Vulkan 1.1-GPUs und allen Vulkan 1.2+-GPUs unterstützt.Sample Shading
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 5d0102f985..81bf430a37 100644
--- a/src/android/app/src/main/res/values-es/strings.xml
+++ b/src/android/app/src/main/res/values-es/strings.xml
@@ -519,8 +519,6 @@
DesactivadoEstado dinámico de entrada de vérticesActiva la función de estado dinámico de entrada de vértices para una mejor calidad y rendimiento.
- Vértice provocante
- Mejora la iluminación y el manejo de vértices en ciertos juegos. Solo es compatible con las GPU Vulkan 1.0+.Indexación del descriptorMejora la textura y el manejo del búfer, así como la capa de traducción Maxwell. Compatible con algunas GPU Vulkan 1.1 y todas las GPU Vulkan 1.2+.Muestreo de sombreado
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..9412b13f67 100644
--- a/src/android/app/src/main/res/values-fa/strings.xml
+++ b/src/android/app/src/main/res/values-fa/strings.xml
@@ -71,8 +71,6 @@
حذف فرمور آن را از دستگاه پاک میکند و ممکن است بر سازگاری بازیها تأثیر بگذارددر حال حذف فرمورفرمور با موفقیت حذف شد
- رأس تحریککننده
- نورپردازی و مدیریت رأس را در برخی بازیها بهبود میبخشد. فقط در کارتهای گرافیک با پشتیبانی از ولکان 1.0+ قابل استفاده استنمایهسازی توصیفگرمدیریت بافتها و بافرها و همچنین لایه ترجمه ماکسول را بهبود میبخشد. توسط برخی کارتهای گرافیک ولکان 1.1 و تمام کارتهای گرافیک ولکان 1.2+ پشتیبانی میشودفاکتور اورکلاک GPU
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 3f681a2850..03de61072a 100644
--- a/src/android/app/src/main/res/values-fr/strings.xml
+++ b/src/android/app/src/main/res/values-fr/strings.xml
@@ -485,8 +485,6 @@
DésactivéÉtat dynamique d\'entrée de sommetActive la fonctionnalité d\'état dynamique des entrées de sommets pour une meilleure qualité et de meilleures performances.
- Provoque des Vertex
- Améliore l`éclairage et la gestion des vertex dans certains jeux. Pris en charge uniquement par les GPU Vulkan 1.0+.Indexation des descripteursAméliore la gestion des textures et des tampons, ainsi que la couche de traduction Maxwell. Pris en charge par certains GPU Vulkan 1.1 et tous les GPU Vulkan 1.2+.Affichage
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 74d61af932..0bb25bff20 100644
--- a/src/android/app/src/main/res/values-he/strings.xml
+++ b/src/android/app/src/main/res/values-he/strings.xml
@@ -390,8 +390,6 @@
מקמפל שיידרים באופן אסינכרוני. זה עשוי להפחית קפיצות אך גם עלול לגרום לתקלות גרפיות.מצב דינמי מורחבמושבת
- קודקוד מעורר
- משפר תאורה וטיפול בקודקודים במשחקים מסוימים. נתמך רק בכרטיסי מסך עם Vulkan 1.0+.אינדוקס תיאוריםמשפר טיפול במרקמים ומאגרים, כמו גם בשכבת התרגום של Maxwell. נתמך בחלק מכרטיסי ה-Vulkan 1.1 ובכל כרטיסי ה-Vulkan 1.2+.תצוגה
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 aae6766321..5a3eeeb40e 100644
--- a/src/android/app/src/main/res/values-hu/strings.xml
+++ b/src/android/app/src/main/res/values-hu/strings.xml
@@ -379,8 +379,6 @@
A shaderek aszinkron fordítása. Csökkentheti a belassulásokat, de hibákat is okozhat.Kiterjesztett Dinamikus ÁllapotLetiltva
- Provokáló csúcs
- Javítja a világítást és a csúcskezelést bizonyos játékokban. Csak Vulkan 1.0+ GPU-kon támogatott.Deskriptor IndexelésJavítja a textúrák és pufferek kezelését, valamint a Maxwell fordítási réteget. Néhány Vulkan 1.1 GPU és minden Vulkan 1.2+ GPU támogatja.Kijelző
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 02ed67feb6..64bf270bbb 100644
--- a/src/android/app/src/main/res/values-id/strings.xml
+++ b/src/android/app/src/main/res/values-id/strings.xml
@@ -411,8 +411,6 @@
Kompilasi shader secara asinkron. Ini dapat mengurangi lag tetapi juga dapat menyebabkan glitch.Status Dinamis EkstensiDinonaktifkan
- Vertex Provokasi
- Meningkatkan pencahayaan dan penanganan vertex di beberapa game. Hanya didukung di GPU Vulkan 1.0+.Pengindeks DeskriptorMeningkatkan penanganan tekstur dan buffer, serta lapisan terjemahan Maxwell. Didukung oleh beberapa GPU Vulkan 1.1 dan semua GPU Vulkan 1.2+.Tampilan
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 74cc07f8d9..bfa9ba4442 100644
--- a/src/android/app/src/main/res/values-it/strings.xml
+++ b/src/android/app/src/main/res/values-it/strings.xml
@@ -418,8 +418,6 @@
Compila gli shader in modo asincrono. Può ridurre gli scatti, ma può anche causare glitch grafici.Stato dinamico estesoDisabilitato
- Vertice provocante
- Migliora illuminazione e gestione dei vertici in alcuni giochi. Supportato solo su GPU Vulkan 1.0+.Indicizzazione descrittoriMigliora la gestione di texture e buffer, nonché il livello di traduzione Maxwell. Supportato da alcune GPU Vulkan 1.1 e tutte le GPU Vulkan 1.2+.Schermo
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 34fd473de3..3a89b40bf6 100644
--- a/src/android/app/src/main/res/values-ja/strings.xml
+++ b/src/android/app/src/main/res/values-ja/strings.xml
@@ -377,8 +377,6 @@
シェーダーを非同期でコンパイルします。これによりカクつきが減る可能性がありますが、グラフィックの不具合が発生する場合もあります。拡張ダイナミックステート無効
- プロボーキング頂点
- 特定のゲームで照明と頂点処理を改善します。Vulkan 1.0+ GPUでのみサポートされています。ディスクリプタインデキシングテクスチャとバッファの処理、およびMaxwell翻訳レイヤーを改善します。一部のVulkan 1.1 GPUとすべてのVulkan 1.2+ GPUでサポートされています。ディスプレイ
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 30b9feb33e..d01401d073 100644
--- a/src/android/app/src/main/res/values-ko/strings.xml
+++ b/src/android/app/src/main/res/values-ko/strings.xml
@@ -377,8 +377,6 @@
셰이더를 비동기적으로 컴파일합니다. 이로 인해 끊김 현상이 줄어들 수 있지만 그래픽 오류가 발생할 수도 있습니다.확장 동적 상태비활성화됨
- 프로보킹 버텍스
- 일부 게임에서 조명과 버텍스 처리를 개선합니다. Vulkan 1.0+ GPU에서만 지원됩니다.디스크립터 인덱싱텍스처 및 버퍼 처리와 Maxwell 변환 레이어를 개선합니다. 일부 Vulkan 1.1 GPU 및 모든 Vulkan 1.2+ GPU에서 지원됩니다.디스플레이
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 559c1f61f4..f33b0422f3 100644
--- a/src/android/app/src/main/res/values-nb/strings.xml
+++ b/src/android/app/src/main/res/values-nb/strings.xml
@@ -360,8 +360,6 @@
Kompilerer shadere asynkront. Dette kan redusere rykk, men kan også forårsake grafiske feil.Utvidet dynamisk tilstandDeaktivert
- Provoserende vertex
- Forbedrer belysning og vertexhåndtering i enkelte spill. Støttes kun på Vulkan 1.0+ GPU-er.BeskrivelsesindekseringForbedrer tekstur- og bufferhåndtering, samt Maxwell-oversettelseslaget. Støttes av noen Vulkan 1.1 GPU-er og alle Vulkan 1.2+ GPU-er.Skjerm
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 a0bfa481d4..7f2e4eeee3 100644
--- a/src/android/app/src/main/res/values-pl/strings.xml
+++ b/src/android/app/src/main/res/values-pl/strings.xml
@@ -484,8 +484,6 @@
WyłączoneDynamiczny stan wejścia wierzchołkówWłącza funkcję dynamicznego stanu wejścia wierzchołków, poprawiając jakość i wydajność.
- Wierzchołek prowokujący
- Poprawia oświetlenie i obsługę wierzchołków w niektórych grach. Obsługiwane tylko przez GPU Vulkan 1.0+.Indeksowanie deskryptorówPoprawia obsługę tekstur i buforów oraz warstwę tłumaczenia Maxwell. Obsługiwane przez niektóre GPU Vulkan 1.1 i wszystkie GPU Vulkan 1.2+.Cieniowanie próbkowane
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 91d739fc8a..4fadaecdd1 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 @@
DesativadoVertex Input Dynamic StateAtiva o recurso de vertex input dynamic state para melhor qualidade e desempenho.
- Provoking Vertex
- Vértice Provocante: Melhora a iluminação e o processamento de vértices em certos jogos. Suportado apenas em GPUs com Vulkan 1.0 ou superior.Descriptor IndexingIndexação de Descritores: Melhora o processamento de texturas e buffers, assim como a camada de tradução Maxwell. Suportado por algumas GPUs Vulkan 1.1 e todas as GPUs Vulkan 1.2 ou superiores.Tela
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 05612390a8..5b66555953 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
@@ -383,8 +383,6 @@
Compila shaders de forma assíncrona. Isto pode reduzir engasgadelas, mas também pode introduzir falhas gráficas.Estado Dinâmico EstendidoDesativado
- Vértice provocante
- Melhora a iluminação e o tratamento de vértices em certos jogos. Suportado apenas em GPUs Vulkan 1.0+.Indexação de descritoresMelhora o tratamento de texturas e buffers, assim como a camada de tradução Maxwell. Suportado por algumas GPUs Vulkan 1.1 e todas Vulkan 1.2+.Ecrã
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 f6d9d15c54..6dd54ebaba 100644
--- a/src/android/app/src/main/res/values-ru/strings.xml
+++ b/src/android/app/src/main/res/values-ru/strings.xml
@@ -521,8 +521,6 @@
ОтключеноДинамическое состояние ввода вершинВключает функцию динамического состояния ввода вершин для повышения качества и производительности
- Определяющая вершина
- Улучшает освещение и обработку вершин в некоторых играх. Поддерживается только ГПУ с Vulkan 1.0+.Индексирование дескрипторовУлучшает обработку текстур и буферов, а также слой перевода Maxwell. Поддерживается некоторыми ГПУ Vulkan 1.1 и всеми ГПУ Vulkan 1.2+.Сэмпловое затенение
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 7ac829cd91..daa9c99cea 100644
--- a/src/android/app/src/main/res/values-sr/strings.xml
+++ b/src/android/app/src/main/res/values-sr/strings.xml
@@ -382,8 +382,6 @@
Саставља схадера асинхроно. Ово може умањити затезаче, али могу такође да уведе пропусте.Проширена динамичка државаИскључено
- Провоцирајући врх
- Побољшава осветљење и вертификат руковања у одређеним играма. Подржан само на Вулкану 1.0+ ГПУ-у.Индексирање дескриптораПобољшава текстуру и руковање међуспремника, као и преводилачки слој Маквелл. Подржани од стране неких Вулкана 1.1 ГПУ-а и сви Вулкан 1.2+ ГПУ.Приказ
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 b53d8b98c7..79880d9cbb 100644
--- a/src/android/app/src/main/res/values-uk/strings.xml
+++ b/src/android/app/src/main/res/values-uk/strings.xml
@@ -521,8 +521,6 @@
ВимкненоДинамічний стан введення вершинВмикає можливість динамічного стану введення вершин для кращих якості й продуктивності.
- Провокативна вершина
- Покращує освітлення та взаємодію з вершинами у деяких іграх. Лише для ГП з підтримкою Vulkan 1.0+.Індексація дескрипторівПокращує обробку текстур та буферів, а також шар перекладу Maxwell. Підтримується деякими GPU Vulkan 1.1 та всіма GPU Vulkan 1.2+.Простий шейдинг
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 fe3e3037b1..35c67a5d79 100644
--- a/src/android/app/src/main/res/values-vi/strings.xml
+++ b/src/android/app/src/main/res/values-vi/strings.xml
@@ -358,8 +358,6 @@
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
- Cải thiện ánh sáng và xử lý đỉnh trong một số trò chơi. Chỉ được hỗ trợ trên GPU Vulkan 1.0+.Lập chỉ mục bộ mô tảCải thiện xử lý kết cấu và bộ đệm, cũng như lớp dịch Maxwell. Được hỗ trợ bởi một số GPU Vulkan 1.1 và tất cả GPU Vulkan 1.2+.Hiển thị
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 0ef0544ac0..8296ce897e 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
@@ -515,8 +515,6 @@
已禁用顶点输入动态状态开启顶点输入动态状态功能来获得更好的质量和性能。
- 引发顶点
- 改善某些游戏中的光照和顶点处理。仅支持Vulkan 1.0+ GPU。描述符索引改进纹理和缓冲区处理以及Maxwell转换层。部分Vulkan 1.1 GPU和所有Vulkan 1.2+ 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 f0180b47b6..401e60f052 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
@@ -470,8 +470,6 @@
已停用頂點輸入動態狀態啟用頂點輸入動態狀態以取得更佳的品質及性能
- 引發頂點
- 改善某些遊戲中的光照和頂點處理。僅支援Vulkan 1.0+ GPU。描述符索引改進紋理和緩衝區處理以及Maxwell轉換層。部分Vulkan 1.1 GPU和所有Vulkan 1.2+ GPU支援。顯示
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 74c5bcd276..119b942efe 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -531,8 +531,6 @@
DisabledVertex Input Dynamic StateEnables vertex input dynamic state feature for better quality and performance.
- Provoking Vertex
- Improves lighting and vertex handling in certain games. Only supported on Vulkan 1.0+ GPUs.Descriptor IndexingImproves texture and buffer handling, as well as the Maxwell translation layer. Supported by some Vulkan 1.1 GPUs and all Vulkan 1.2+ GPUs.Sample Shading
diff --git a/src/common/settings.h b/src/common/settings.h
index 2540282790..8b70a82470 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -606,7 +606,6 @@ struct Values {
true,
#endif
"vertex_input_dynamic_state", Category::RendererExtensions};
- SwitchableSetting provoking_vertex{linkage, false, "provoking_vertex", Category::RendererExtensions};
SwitchableSetting descriptor_indexing{linkage, false, "descriptor_indexing", Category::RendererExtensions};
Setting renderer_debug{linkage, false, "debug", Category::RendererDebug};
diff --git a/src/qt_common/config/shared_translation.cpp b/src/qt_common/config/shared_translation.cpp
index eda0fb2002..0f1ff1965c 100644
--- a/src/qt_common/config/shared_translation.cpp
+++ b/src/qt_common/config/shared_translation.cpp
@@ -286,10 +286,6 @@ std::unique_ptr InitializeTranslations(QObject* parent) {
INSERT(Settings, vertex_input_dynamic_state, tr("Vertex Input Dynamic State"),
tr("Enables vertex input dynamic state feature for better quality and performance."));
- INSERT(Settings, provoking_vertex, tr("Provoking Vertex"),
- tr("Improves lighting and vertex handling in some games.\n"
- "Only Vulkan 1.0+ devices support this extension."));
-
INSERT(Settings, descriptor_indexing, tr("Descriptor Indexing"),
tr("Improves texture & buffer handling and the Maxwell translation layer.\n"
"Some Vulkan 1.1+ and all 1.2+ devices support this extension."));
diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
index 06cbd9e6da..d129cf8cd5 100644
--- a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
+++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
@@ -83,7 +83,29 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d, DynamicFe
depth_enabled.Assign(regs.zeta_enable != 0 ? 1 : 0);
depth_format.Assign(static_cast(regs.zeta.format));
y_negate.Assign(regs.window_origin.mode != Maxwell::WindowOrigin::Mode::UpperLeft ? 1 : 0);
- provoking_vertex_last.Assign(regs.provoking_vertex == Maxwell::ProvokingVertex::Last ? 1 : 0);
+
+ bool use_last_provoking_vertex = false;
+ const bool provoking_vertex_available = features.has_provoking_vertex;
+ const bool supports_first_mode = features.has_provoking_vertex_first_mode;
+ const bool supports_last_mode = features.has_provoking_vertex_last_mode;
+ const bool transform_feedback_active = regs.transform_feedback_enabled != 0;
+ const bool tf_preserves_provoking_vertex = features.has_provoking_vertex_tf_preserve;
+
+ if (provoking_vertex_available && (supports_first_mode || supports_last_mode)) {
+ use_last_provoking_vertex = regs.provoking_vertex == Maxwell::ProvokingVertex::Last;
+
+ if (transform_feedback_active && !tf_preserves_provoking_vertex) {
+ use_last_provoking_vertex = false;
+ }
+
+ if (use_last_provoking_vertex && !supports_last_mode) {
+ use_last_provoking_vertex = false;
+ } else if (!use_last_provoking_vertex && !supports_first_mode) {
+ use_last_provoking_vertex = true;
+ }
+ }
+
+ provoking_vertex_last.Assign(use_last_provoking_vertex ? 1 : 0);
conservative_raster_enable.Assign(regs.conservative_raster_enable != 0 ? 1 : 0);
smooth_lines.Assign(regs.line_anti_alias_enable != 0 ? 1 : 0);
alpha_to_coverage_enabled.Assign(regs.anti_alias_alpha_control.alpha_to_coverage != 0 ? 1 : 0);
diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.h b/src/video_core/renderer_vulkan/fixed_pipeline_state.h
index c5bc14f448..a05f3e1c5b 100644
--- a/src/video_core/renderer_vulkan/fixed_pipeline_state.h
+++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.h
@@ -28,6 +28,10 @@ struct DynamicFeatures {
bool has_extended_dynamic_state_3_blend;
bool has_extended_dynamic_state_3_enables;
bool has_dynamic_vertex_input;
+ bool has_provoking_vertex;
+ bool has_provoking_vertex_first_mode;
+ bool has_provoking_vertex_last_mode;
+ bool has_provoking_vertex_tf_preserve;
};
struct FixedPipelineState {
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index 75fbcaa968..8f706a02c8 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -749,12 +749,19 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
: VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
.extraPrimitiveOverestimationSize = 0.0f,
};
+ const bool supports_provoking_first_mode = device.SupportsProvokingVertexFirstMode();
+ const bool supports_provoking_last_mode = device.SupportsProvokingVertexLastMode();
+ const bool requested_provoking_last_mode = key.state.provoking_vertex_last != 0;
+ const VkProvokingVertexModeEXT provoking_vertex_mode =
+ requested_provoking_last_mode
+ ? (supports_provoking_last_mode ? VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
+ : VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT)
+ : (supports_provoking_first_mode ? VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT
+ : VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT);
VkPipelineRasterizationProvokingVertexStateCreateInfoEXT provoking_vertex{
.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
.pNext = nullptr,
- .provokingVertexMode = key.state.provoking_vertex_last != 0
- ? VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
- : VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
+ .provokingVertexMode = provoking_vertex_mode,
};
if (IsLine(input_assembly_topology) && device.IsExtLineRasterizationSupported()) {
@@ -763,7 +770,7 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
if (device.IsExtConservativeRasterizationSupported()) {
conservative_raster.pNext = std::exchange(rasterization_ci.pNext, &conservative_raster);
}
- if (device.IsExtProvokingVertexSupported() && Settings::values.provoking_vertex.GetValue()) {
+ if (device.IsExtProvokingVertexSupported()) {
provoking_vertex.pNext = std::exchange(rasterization_ci.pNext, &provoking_vertex);
}
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 77a4e8616a..0235c53ea1 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -490,6 +490,14 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_,
dynamic_features.has_dynamic_vertex_input =
device.IsExtVertexInputDynamicStateSupported() &&
Settings::values.vertex_input_dynamic_state.GetValue();
+
+ dynamic_features.has_provoking_vertex = device.IsExtProvokingVertexSupported();
+ dynamic_features.has_provoking_vertex_first_mode =
+ device.SupportsProvokingVertexFirstMode();
+ dynamic_features.has_provoking_vertex_last_mode =
+ device.SupportsProvokingVertexLastMode();
+ dynamic_features.has_provoking_vertex_tf_preserve =
+ device.SupportsTransformFeedbackProvokingVertexPreservation();
}
PipelineCache::~PipelineCache() {
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index b51c57d380..f26d2aaa8e 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -1196,7 +1196,7 @@ void Device::RemoveUnsuitableExtensions() {
RemoveExtensionFeatureIfUnsuitable(extensions.depth_clip_control, features.depth_clip_control,
VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME);
- /* */ // VK_EXT_extended_dynamic_state
+ // VK_EXT_extended_dynamic_state
extensions.extended_dynamic_state = features.extended_dynamic_state.extendedDynamicState;
RemoveExtensionFeatureIfUnsuitable(extensions.extended_dynamic_state,
features.extended_dynamic_state,
@@ -1268,7 +1268,6 @@ void Device::RemoveUnsuitableExtensions() {
VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME);
// VK_EXT_robustness2
- // Enable if at least one robustness2 feature is available
extensions.robustness_2 = features.robustness2.robustBufferAccess2 ||
features.robustness2.robustImageAccess2 ||
features.robustness2.nullDescriptor;
@@ -1277,25 +1276,10 @@ void Device::RemoveUnsuitableExtensions() {
VK_EXT_ROBUSTNESS_2_EXTENSION_NAME);
// VK_EXT_image_robustness
- // Enable if robustImageAccess is available
extensions.image_robustness = features.image_robustness.robustImageAccess;
RemoveExtensionFeatureIfUnsuitable(extensions.image_robustness, features.image_robustness,
VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME);
- // VK_EXT_provoking_vertex
- if (Settings::values.provoking_vertex.GetValue()) {
- extensions.provoking_vertex = features.provoking_vertex.provokingVertexLast
- && features.provoking_vertex
- .transformFeedbackPreservesProvokingVertex;
- RemoveExtensionFeatureIfUnsuitable(extensions.provoking_vertex,
- features.provoking_vertex,
- VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME);
- } else {
- RemoveExtensionFeature(extensions.provoking_vertex,
- features.provoking_vertex,
- VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME);
- }
-
// VK_KHR_shader_atomic_int64
extensions.shader_atomic_int64 = features.shader_atomic_int64.shaderBufferInt64Atomics &&
features.shader_atomic_int64.shaderSharedInt64Atomics;
@@ -1319,21 +1303,12 @@ void Device::RemoveUnsuitableExtensions() {
VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME);
// VK_EXT_transform_feedback
- // We only require the basic transformFeedback feature and at least
- // one transform feedback buffer. We keep transformFeedbackQueries as it's used by
- // the streaming byte count implementation. GeometryStreams and multiple streams
- // are not strictly required since we currently support only stream 0.
extensions.transform_feedback =
features.transform_feedback.transformFeedback &&
properties.transform_feedback.maxTransformFeedbackBuffers > 0 &&
properties.transform_feedback.transformFeedbackQueries;
RemoveExtensionFeatureIfUnsuitable(extensions.transform_feedback, features.transform_feedback,
VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME);
- if (extensions.transform_feedback) {
- LOG_INFO(Render_Vulkan, "VK_EXT_transform_feedback enabled (buffers={}, queries={})",
- properties.transform_feedback.maxTransformFeedbackBuffers,
- properties.transform_feedback.transformFeedbackQueries);
- }
// VK_EXT_vertex_input_dynamic_state
extensions.vertex_input_dynamic_state =
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h
index caf91104df..79fb0c186c 100644
--- a/src/video_core/vulkan_common/vulkan_device.h
+++ b/src/video_core/vulkan_common/vulkan_device.h
@@ -719,6 +719,22 @@ public:
return extensions.provoking_vertex;
}
+ /// Returns true if first vertex provoking mode can be used.
+ bool SupportsProvokingVertexFirstMode() const {
+ return extensions.provoking_vertex;
+ }
+
+ /// Returns true if last vertex provoking mode can be used.
+ bool SupportsProvokingVertexLastMode() const {
+ return extensions.provoking_vertex && features.provoking_vertex.provokingVertexLast;
+ }
+
+ /// Returns true if transform feedback preserves provoking vertex mode semantics.
+ bool SupportsTransformFeedbackProvokingVertexPreservation() const {
+ return extensions.provoking_vertex &&
+ features.provoking_vertex.transformFeedbackPreservesProvokingVertex;
+ }
+
/// Returns true if the device supports VK_KHR_shader_atomic_int64.
bool IsExtShaderAtomicInt64Supported() const {
return extensions.shader_atomic_int64;