Compare commits

...

4 commits

Author SHA1 Message Date
CamilleLaVey
0e77fa80ab [vulkan] Removal of VK_EXT_multi_draw 2026-04-07 03:44:18 -04:00
CamilleLaVey
7cbe1fb694 [vulkan] Refined handling for Maintenance features 2026-04-07 02:59:11 -04:00
CamilleLaVey
c51086db39 [vulkan] Removal of VK_EXT_swapchain_maintenance1 2026-04-07 02:43:22 -04:00
CamilleLaVey
4b545e8f61 [vulkan] Rework ProvokingVertex handling 2026-04-07 02:30:42 -04:00
68 changed files with 93 additions and 544 deletions

12
dist/languages/ar.ts vendored
View file

@ -1146,18 +1146,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation>يتيح ميزة الحالة الديناميكية لإدخال الرأس لتحسين الجودة والأداء.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>استفزاز قمة الرأس</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>يُحسّن الإضاءة ومعالجة الرؤوس في بعض الألعاب.
تدعم هذه الإضافة أجهزة Vulkan 1.0+ فقط.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/ca.ts vendored
View file

@ -1094,17 +1094,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/cs.ts vendored
View file

@ -1094,17 +1094,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/da.ts vendored
View file

@ -1096,17 +1096,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/de.ts vendored
View file

@ -1104,17 +1104,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/el.ts vendored
View file

@ -1096,17 +1096,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

12
dist/languages/es.ts vendored
View file

@ -1151,18 +1151,6 @@ Números más altos permiten úsar más funciones y pueden aumentar el rendimien
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation>Activa la función de estado dinámico de entrada de vértices para una mejor calidad y rendimiento.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Vértice provocante</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>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.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/fi.ts vendored
View file

@ -1094,17 +1094,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

12
dist/languages/fr.ts vendored
View file

@ -1142,18 +1142,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Vertex provoquant</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>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.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/hu.ts vendored
View file

@ -1102,17 +1102,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/id.ts vendored
View file

@ -1117,17 +1117,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

12
dist/languages/it.ts vendored
View file

@ -1146,18 +1146,6 @@ Gli stati più alti consentono più funzionalità e possono migliorare le presta
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Provoking Vertex</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>Migliora l&apos;illuminazione e la gestione dei vertici in alcuni giochi.
Solo i dispositivi con Vulkan 1.0+ supportano quest&apos;estensione.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1099,17 +1099,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1096,17 +1096,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/nb.ts vendored
View file

@ -1096,17 +1096,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/nl.ts vendored
View file

@ -1105,17 +1105,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

12
dist/languages/pl.ts vendored
View file

@ -1145,18 +1145,6 @@ Wyższe poziomy pozwalają na użycie większej liczby funkcji i mogą zwiększy
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation>Włącza funkcję dynamicznego stanu wejścia wierzchołków, poprawiając jakość i wydajność.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Wierzchołek prowokujący</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>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+.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1129,17 +1129,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1104,17 +1104,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1151,18 +1151,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation>Включает функцию динамического состояния вершинного ввода для повышения качества и производительности.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Определяющая вершина</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>Улучшает освещение и обработку вершин в определенных играх.
Поддерживаются устройства только с Vulkan 1.0+.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

12
dist/languages/sv.ts vendored
View file

@ -1159,18 +1159,6 @@ Högre tillstånd möjliggör fler funktioner och kan öka prestandan, men kan o
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation>Aktiverar funktionen för dynamiskt tillstånd för vertexinmatning för bättre kvalitet och prestanda.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Provocerande toppunkt</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>Förbättrar belysning och vertexhantering i vissa spel.
Endast enheter med Vulkan 1.0+ stöder denna tilläggsfunktion.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1113,17 +1113,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation>Daha iyi kalite ve performans için Vertex dinamik durum özelliğini etkinleştirir.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Provoking Vertex</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>Bazı oyunlarda aydınlatmayı ve köşe işlemeyi iyileştirir. Bu uzantıyı yalnızca Vulkan 1.0 ve üzeri cihazlar destekler.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

12
dist/languages/uk.ts vendored
View file

@ -1154,18 +1154,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation>Вмикає можливість динамічного стану введення вершин для кращих якості й продуктивності.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation>Провокативна вершина</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation>Покращує освітлення та взаємодію з вершинами у деяких іграх.
Це розширення підтримують лише пристрої з Vulkan 1.0+.</translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

11
dist/languages/vi.ts vendored
View file

@ -1096,17 +1096,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1096,17 +1096,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1152,17 +1152,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation></translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation></translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation> Vulkan 1.0 </translation>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -1126,17 +1126,6 @@ Higher states allow for more features and can increase performance, but may caus
<source>Enables vertex input dynamic state feature for better quality and performance.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="293"/>
<source>Provoking Vertex</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="294"/>
<source>Improves lighting and vertex handling in some games.
Only Vulkan 1.0+ devices support this extension.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/qt_common/config/shared_translation.cpp" line="297"/>
<source>Descriptor Indexing</source>

View file

@ -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"),

View file

@ -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,

View file

@ -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)

View file

@ -525,8 +525,6 @@
<string name="disabled">معطل</string>
<string name="vertex_input_dynamic_state">حالة ديناميكية لإدخال الرأس</string>
<string name="vertex_input_dynamic_state_description">يتيح ميزة الحالة الديناميكية لإدخال الرأس لتحسين الجودة والأداء.</string>
<string name="provoking_vertex">الرأس المثير</string>
<string name="provoking_vertex_description">يحسن الإضاءة ومعالجة الرؤوس في بعض الألعاب. مدعوم فقط على وحدات معالجة الرسومات Vulkan 1.0+.</string>
<string name="descriptor_indexing">فهرسة الوصف</string>
<string name="descriptor_indexing_description">يحسن معالجة النسيج والمخزن المؤقت، بالإضافة إلى طبقة الترجمة Maxwell. مدعوم من بعض وحدات معالجة الرسومات Vulkan 1.1 وجميع وحدات معالجة الرسومات Vulkan 1.2+.</string>
<string name="sample_shading_fraction">تظليل العينة</string>

View file

@ -360,8 +360,6 @@
<string name="renderer_asynchronous_shaders_description">کۆمپایلکردنی شادەرەکان بەشێوەی ناڕێک. ئەمە ڕەنگە کەمکردنەوەی ستەتەر بکات بەڵام لەوانەیە هەڵەش دروست بکات.</string>
<string name="dyna_state">الحالة الديناميكية الممتدة</string>
<string name="disabled">ناچالاک</string>
<string name="provoking_vertex">الرأس المثير</string>
<string name="provoking_vertex_description">يحسن الإضاءة ومعالجة الرؤوس في بعض الألعاب. مدعوم فقط على وحدات معالجة الرسومات التي تدعم فولكان 1.0+.</string>
<string name="descriptor_indexing">فهرسة الواصفات</string>
<string name="descriptor_indexing_description">يحسن معالجة القوام والمخازن المؤقتة، بالإضافة إلى طبقة ترجمة ماكسويل. مدعوم من قبل بعض وحدات معالجة الرسومات التي تدعم فولكان 1.1 وجميع وحدات معالجة الرسومات التي تدعم فولكان 1.2+.</string>
<string name="display">پیشاندان</string>

View file

@ -486,8 +486,6 @@
<string name="disabled">Vypnuto</string>
<string name="vertex_input_dynamic_state">Dynamický stav vstupu vrcholů (Vertex Input)</string>
<string name="vertex_input_dynamic_state_description">Aktivuje funkci dynamického stavu vstupu vrcholů (Vertex Input Dynamic State) pro lepší kvalitu a výkon.</string>
<string name="provoking_vertex">Určující vrchol</string>
<string name="provoking_vertex_description">Zlepšuje osvětlení a zpracování vrcholů v některých hrách. Podporováno pouze na GPU s API Vulkan 1.0+.</string>
<string name="descriptor_indexing">Indexování deskriptorů</string>
<string name="descriptor_indexing_description">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+.</string>
<string name="display">Zobrazení</string>

View file

@ -484,8 +484,6 @@ Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die
<string name="disabled">Deaktiviert</string>
<string name="vertex_input_dynamic_state">Vertex Input Dynamic State</string>
<string name="vertex_input_dynamic_state_description">Aktiviert die Funktion \"Vertex Input Dynamic State\" für bessere Qualität und Leistung.</string>
<string name="provoking_vertex">Provokanter Vertex</string>
<string name="provoking_vertex_description">Verbessert die Beleuchtung und die Vertex-Verarbeitung in einigen Spielen. Wird nur von GPUs mit Vulkan 1.0+ unterstützt.</string>
<string name="descriptor_indexing">Deskriptor-Indizierung</string>
<string name="descriptor_indexing_description">Verbessert die Textur- und Puffer-Verarbeitung sowie die Maxwell-Übersetzungsschicht. Wird von einigen Vulkan 1.1-GPUs und allen Vulkan 1.2+-GPUs unterstützt.</string>
<string name="sample_shading_fraction">Sample Shading</string>

View file

@ -519,8 +519,6 @@
<string name="disabled">Desactivado</string>
<string name="vertex_input_dynamic_state">Estado dinámico de entrada de vértices</string>
<string name="vertex_input_dynamic_state_description">Activa la función de estado dinámico de entrada de vértices para una mejor calidad y rendimiento.</string>
<string name="provoking_vertex">Vértice provocante</string>
<string name="provoking_vertex_description">Mejora la iluminación y el manejo de vértices en ciertos juegos. Solo es compatible con las GPU Vulkan 1.0+.</string>
<string name="descriptor_indexing">Indexación del descriptor</string>
<string name="descriptor_indexing_description">Mejora 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+.</string>
<string name="sample_shading_fraction">Muestreo de sombreado</string>

View file

@ -71,8 +71,6 @@
<string name="uninstall_firmware_description">حذف فرمور آن را از دستگاه پاک می‌کند و ممکن است بر سازگاری بازی‌ها تأثیر بگذارد</string>
<string name="firmware_uninstalling">در حال حذف فرمور</string>
<string name="firmware_uninstalled_success">فرمور با موفقیت حذف شد</string>
<string name="provoking_vertex">رأس تحریک‌کننده</string>
<string name="provoking_vertex_description">نورپردازی و مدیریت رأس را در برخی بازی‌ها بهبود می‌بخشد. فقط در کارت‌های گرافیک با پشتیبانی از ولکان 1.0+ قابل استفاده است</string>
<string name="descriptor_indexing">نمایه‌سازی توصیفگر</string>
<string name="descriptor_indexing_description">مدیریت بافت‌ها و بافرها و همچنین لایه ترجمه ماکسول را بهبود می‌بخشد. توسط برخی کارت‌های گرافیک ولکان 1.1 و تمام کارت‌های گرافیک ولکان 1.2+ پشتیبانی می‌شود</string>
<string name="fast_gpu_time">فاکتور اورکلاک GPU</string>

View file

@ -471,8 +471,6 @@
<string name="disabled">Désactivé</string>
<string name="vertex_input_dynamic_state">État dynamique d\'entrée de sommet</string>
<string name="vertex_input_dynamic_state_description">Active la fonctionnalité d\'état dynamique des entrées de sommets pour une meilleure qualité et de meilleures performances.</string>
<string name="provoking_vertex">Provoque des Vertex</string>
<string name="provoking_vertex_description">Améliore l`éclairage et la gestion des vertex dans certains jeux. Pris en charge uniquement par les GPU Vulkan 1.0+.</string>
<string name="descriptor_indexing">Indexation des descripteurs</string>
<string name="descriptor_indexing_description">Amé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+.</string>
<string name="display">Affichage</string>

View file

@ -390,8 +390,6 @@
<string name="renderer_asynchronous_shaders_description">מקמפל שיידרים באופן אסינכרוני. זה עשוי להפחית קפיצות אך גם עלול לגרום לתקלות גרפיות.</string>
<string name="dyna_state">מצב דינמי מורחב</string>
<string name="disabled">מושבת</string>
<string name="provoking_vertex">קודקוד מעורר</string>
<string name="provoking_vertex_description">משפר תאורה וטיפול בקודקודים במשחקים מסוימים. נתמך רק בכרטיסי מסך עם Vulkan 1.0+.</string>
<string name="descriptor_indexing">אינדוקס תיאורים</string>
<string name="descriptor_indexing_description">משפר טיפול במרקמים ומאגרים, כמו גם בשכבת התרגום של Maxwell. נתמך בחלק מכרטיסי ה-Vulkan 1.1 ובכל כרטיסי ה-Vulkan 1.2+.</string>
<string name="display">תצוגה</string>

View file

@ -379,8 +379,6 @@
<string name="renderer_asynchronous_shaders_description">A shaderek aszinkron fordítása. Csökkentheti a belassulásokat, de hibákat is okozhat.</string>
<string name="dyna_state">Kiterjesztett Dinamikus Állapot</string>
<string name="disabled">Letiltva</string>
<string name="provoking_vertex">Provokáló csúcs</string>
<string name="provoking_vertex_description">Javítja a világítást és a csúcskezelést bizonyos játékokban. Csak Vulkan 1.0+ GPU-kon támogatott.</string>
<string name="descriptor_indexing">Deskriptor Indexelés</string>
<string name="descriptor_indexing_description">Javí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.</string>
<string name="display">Kijelző</string>

View file

@ -411,8 +411,6 @@
<string name="renderer_asynchronous_shaders_description">Kompilasi shader secara asinkron. Ini dapat mengurangi lag tetapi juga dapat menyebabkan glitch.</string>
<string name="dyna_state">Status Dinamis Ekstensi</string>
<string name="disabled">Dinonaktifkan</string>
<string name="provoking_vertex">Vertex Provokasi</string>
<string name="provoking_vertex_description">Meningkatkan pencahayaan dan penanganan vertex di beberapa game. Hanya didukung di GPU Vulkan 1.0+.</string>
<string name="descriptor_indexing">Pengindeks Deskriptor</string>
<string name="descriptor_indexing_description">Meningkatkan penanganan tekstur dan buffer, serta lapisan terjemahan Maxwell. Didukung oleh beberapa GPU Vulkan 1.1 dan semua GPU Vulkan 1.2+.</string>
<string name="display">Tampilan</string>

View file

@ -418,8 +418,6 @@
<string name="renderer_asynchronous_shaders_description">Compila gli shader in modo asincrono. Può ridurre gli scatti, ma può anche causare glitch grafici.</string>
<string name="dyna_state">Stato dinamico esteso</string>
<string name="disabled">Disabilitato</string>
<string name="provoking_vertex">Vertice provocante</string>
<string name="provoking_vertex_description">Migliora illuminazione e gestione dei vertici in alcuni giochi. Supportato solo su GPU Vulkan 1.0+.</string>
<string name="descriptor_indexing">Indicizzazione descrittori</string>
<string name="descriptor_indexing_description">Migliora 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+.</string>
<string name="display">Schermo</string>

View file

@ -377,8 +377,6 @@
<string name="renderer_asynchronous_shaders_description">シェーダーを非同期でコンパイルします。これによりカクつきが減る可能性がありますが、グラフィックの不具合が発生する場合もあります。</string>
<string name="dyna_state">拡張ダイナミックステート</string>
<string name="disabled">無効</string>
<string name="provoking_vertex">プロボーキング頂点</string>
<string name="provoking_vertex_description">特定のゲームで照明と頂点処理を改善します。Vulkan 1.0+ GPUでのみサポートされています。</string>
<string name="descriptor_indexing">ディスクリプタインデキシング</string>
<string name="descriptor_indexing_description">テクスチャとバッファの処理、およびMaxwell翻訳レイヤーを改善します。一部のVulkan 1.1 GPUとすべてのVulkan 1.2+ GPUでサポートされています。</string>
<string name="display">ディスプレイ</string>

View file

@ -377,8 +377,6 @@
<string name="renderer_asynchronous_shaders_description">셰이더를 비동기적으로 컴파일합니다. 이로 인해 끊김 현상이 줄어들 수 있지만 그래픽 오류가 발생할 수도 있습니다.</string>
<string name="dyna_state">확장 동적 상태</string>
<string name="disabled">비활성화됨</string>
<string name="provoking_vertex">프로보킹 버텍스</string>
<string name="provoking_vertex_description">일부 게임에서 조명과 버텍스 처리를 개선합니다. Vulkan 1.0+ GPU에서만 지원됩니다.</string>
<string name="descriptor_indexing">디스크립터 인덱싱</string>
<string name="descriptor_indexing_description">텍스처 및 버퍼 처리와 Maxwell 변환 레이어를 개선합니다. 일부 Vulkan 1.1 GPU 및 모든 Vulkan 1.2+ GPU에서 지원됩니다.</string>
<string name="display">디스플레이</string>

View file

@ -360,8 +360,6 @@
<string name="renderer_asynchronous_shaders_description">Kompilerer shadere asynkront. Dette kan redusere rykk, men kan også forårsake grafiske feil.</string>
<string name="dyna_state">Utvidet dynamisk tilstand</string>
<string name="disabled">Deaktivert</string>
<string name="provoking_vertex">Provoserende vertex</string>
<string name="provoking_vertex_description">Forbedrer belysning og vertexhåndtering i enkelte spill. Støttes kun på Vulkan 1.0+ GPU-er.</string>
<string name="descriptor_indexing">Beskrivelsesindeksering</string>
<string name="descriptor_indexing_description">Forbedrer tekstur- og bufferhåndtering, samt Maxwell-oversettelseslaget. Støttes av noen Vulkan 1.1 GPU-er og alle Vulkan 1.2+ GPU-er.</string>
<string name="display">Skjerm</string>

View file

@ -484,8 +484,6 @@
<string name="disabled">Wyłączone</string>
<string name="vertex_input_dynamic_state">Dynamiczny stan wejścia wierzchołków</string>
<string name="vertex_input_dynamic_state_description">Włącza funkcję dynamicznego stanu wejścia wierzchołków, poprawiając jakość i wydajność.</string>
<string name="provoking_vertex">Wierzchołek prowokujący</string>
<string name="provoking_vertex_description">Poprawia oświetlenie i obsługę wierzchołków w niektórych grach. Obsługiwane tylko przez GPU Vulkan 1.0+.</string>
<string name="descriptor_indexing">Indeksowanie deskryptorów</string>
<string name="descriptor_indexing_description">Poprawia 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+.</string>
<string name="sample_shading_fraction">Cieniowanie próbkowane</string>

View file

@ -467,8 +467,6 @@
<string name="disabled">Desativado</string>
<string name="vertex_input_dynamic_state">Vertex Input Dynamic State</string>
<string name="vertex_input_dynamic_state_description">Ativa o recurso de vertex input dynamic state para melhor qualidade e desempenho.</string>
<string name="provoking_vertex">Provoking Vertex</string>
<string name="provoking_vertex_description">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.</string>
<string name="descriptor_indexing">Descriptor Indexing</string>
<string name="descriptor_indexing_description">Indexaçã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.</string>
<string name="display">Tela</string>

View file

@ -383,8 +383,6 @@
<string name="renderer_asynchronous_shaders_description">Compila shaders de forma assíncrona. Isto pode reduzir engasgadelas, mas também pode introduzir falhas gráficas.</string>
<string name="dyna_state">Estado Dinâmico Estendido</string>
<string name="disabled">Desativado</string>
<string name="provoking_vertex">Vértice provocante</string>
<string name="provoking_vertex_description">Melhora a iluminação e o tratamento de vértices em certos jogos. Suportado apenas em GPUs Vulkan 1.0+.</string>
<string name="descriptor_indexing">Indexação de descritores</string>
<string name="descriptor_indexing_description">Melhora 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+.</string>
<string name="display">Ecrã</string>

View file

@ -520,8 +520,6 @@
<string name="disabled">Отключено</string>
<string name="vertex_input_dynamic_state">Динамическое состояние ввода вершин</string>
<string name="vertex_input_dynamic_state_description">Включает функцию динамического состояния ввода вершин для повышения качества и производительности</string>
<string name="provoking_vertex">Определяющая вершина</string>
<string name="provoking_vertex_description">Улучшает освещение и обработку вершин в некоторых играх. Поддерживается только ГПУ с Vulkan 1.0+.</string>
<string name="descriptor_indexing">Индексирование дескрипторов</string>
<string name="descriptor_indexing_description">Улучшает обработку текстур и буферов, а также слой перевода Maxwell. Поддерживается некоторыми ГПУ Vulkan 1.1 и всеми ГПУ Vulkan 1.2+.</string>
<string name="sample_shading_fraction">Сэмпловое затенение</string>

View file

@ -382,8 +382,6 @@
<string name="renderer_asynchronous_shaders_description">Саставља схадера асинхроно. Ово може умањити затезаче, али могу такође да уведе пропусте.</string>
<string name="dyna_state">Проширена динамичка држава</string>
<string name="disabled">Искључено</string>
<string name="provoking_vertex">Провоцирајући врх</string>
<string name="provoking_vertex_description">Побољшава осветљење и вертификат руковања у одређеним играма. Подржан само на Вулкану 1.0+ ГПУ-у.</string>
<string name="descriptor_indexing">Индексирање дескриптора</string>
<string name="descriptor_indexing_description">Побољшава текстуру и руковање међуспремника, као и преводилачки слој Маквелл. Подржани од стране неких Вулкана 1.1 ГПУ-а и сви Вулкан 1.2+ ГПУ.</string>
<string name="display">Приказ</string>

View file

@ -521,8 +521,6 @@
<string name="disabled">Вимкнено</string>
<string name="vertex_input_dynamic_state">Динамічний стан введення вершин</string>
<string name="vertex_input_dynamic_state_description">Вмикає можливість динамічного стану введення вершин для кращих якості й продуктивності.</string>
<string name="provoking_vertex">Провокативна вершина</string>
<string name="provoking_vertex_description">Покращує освітлення та взаємодію з вершинами у деяких іграх. Лише для ГП з підтримкою Vulkan 1.0+.</string>
<string name="descriptor_indexing">Індексація дескрипторів</string>
<string name="descriptor_indexing_description">Покращує обробку текстур та буферів, а також шар перекладу Maxwell. Підтримується деякими GPU Vulkan 1.1 та всіма GPU Vulkan 1.2+.</string>
<string name="sample_shading_fraction">Простий шейдинг</string>

View file

@ -358,8 +358,6 @@
<string name="renderer_asynchronous_shaders_description">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.</string>
<string name="dyna_state">Trạng thái động mở rộng</string>
<string name="disabled">Đã tắt</string>
<string name="provoking_vertex">Đỉnh kích hoạt</string>
<string name="provoking_vertex_description">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+.</string>
<string name="descriptor_indexing">Lập chỉ mục bộ mô tả</string>
<string name="descriptor_indexing_description">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+.</string>
<string name="display">Hiển thị</string>

View file

@ -514,8 +514,6 @@
<string name="disabled">已禁用</string>
<string name="vertex_input_dynamic_state">顶点输入动态状态</string>
<string name="vertex_input_dynamic_state_description">开启顶点输入动态状态功能来获得更好的质量和性能。</string>
<string name="provoking_vertex">引发顶点</string>
<string name="provoking_vertex_description">改善某些游戏中的光照和顶点处理。仅支持Vulkan 1.0+ GPU。</string>
<string name="descriptor_indexing">描述符索引</string>
<string name="descriptor_indexing_description">改进纹理和缓冲区处理以及Maxwell转换层。部分Vulkan 1.1 GPU和所有Vulkan 1.2+ GPU支持。</string>
<string name="sample_shading_fraction">采样着色</string>

View file

@ -470,8 +470,6 @@
<string name="disabled">已停用</string>
<string name="vertex_input_dynamic_state">頂點輸入動態狀態</string>
<string name="vertex_input_dynamic_state_description">啟用頂點輸入動態狀態以取得更佳的品質及性能</string>
<string name="provoking_vertex">引發頂點</string>
<string name="provoking_vertex_description">改善某些遊戲中的光照和頂點處理。僅支援Vulkan 1.0+ GPU。</string>
<string name="descriptor_indexing">描述符索引</string>
<string name="descriptor_indexing_description">改進紋理和緩衝區處理以及Maxwell轉換層。部分Vulkan 1.1 GPU和所有Vulkan 1.2+ GPU支援。</string>
<string name="display">顯示</string>

View file

@ -531,8 +531,6 @@
<string name="disabled">Disabled</string>
<string name="vertex_input_dynamic_state">Vertex Input Dynamic State</string>
<string name="vertex_input_dynamic_state_description">Enables vertex input dynamic state feature for better quality and performance.</string>
<string name="provoking_vertex">Provoking Vertex</string>
<string name="provoking_vertex_description">Improves lighting and vertex handling in certain games. Only supported on Vulkan 1.0+ GPUs.</string>
<string name="descriptor_indexing">Descriptor Indexing</string>
<string name="descriptor_indexing_description">Improves texture and buffer handling, as well as the Maxwell translation layer. Supported by some Vulkan 1.1 GPUs and all Vulkan 1.2+ GPUs.</string>
<string name="sample_shading_fraction">Sample Shading</string>

View file

@ -606,7 +606,6 @@ struct Values {
true,
#endif
"vertex_input_dynamic_state", Category::RendererExtensions};
SwitchableSetting<bool> provoking_vertex{linkage, false, "provoking_vertex", Category::RendererExtensions};
SwitchableSetting<bool> descriptor_indexing{linkage, false, "descriptor_indexing", Category::RendererExtensions};
Setting<bool> renderer_debug{linkage, false, "debug", Category::RendererDebug};

View file

@ -286,10 +286,6 @@ std::unique_ptr<TranslationMap> 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."));

View file

@ -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<u32>(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);

View file

@ -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 {

View file

@ -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);
}

View file

@ -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() {

View file

@ -200,11 +200,6 @@ RasterizerVulkan::RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra
fence_manager(*this, gpu, texture_cache, buffer_cache, query_cache, device, scheduler),
wfi_event(device.GetLogical().CreateEvent()) {
scheduler.SetQueryCache(query_cache);
// Log multi-draw support
if (device.IsExtMultiDrawSupported()) {
LOG_INFO(Render_Vulkan, "VK_EXT_multi_draw is enabled for optimized draw calls");
}
}
RasterizerVulkan::~RasterizerVulkan() = default;
@ -243,43 +238,16 @@ void RasterizerVulkan::Draw(bool is_indexed, u32 instance_count) {
const u32 num_instances{instance_count};
const DrawParams draw_params{MakeDrawParams(draw_state, num_instances, is_indexed)};
// Use VK_EXT_multi_draw if available (single draw becomes multi-draw with count=1)
if (device.IsExtMultiDrawSupported()) {
scheduler.Record([draw_params](vk::CommandBuffer cmdbuf) {
if (draw_params.is_indexed) {
// Use multi-draw indexed with single draw
const VkMultiDrawIndexedInfoEXT multi_draw_info{
.firstIndex = draw_params.first_index,
.indexCount = draw_params.num_vertices,
};
const int32_t vertex_offset = static_cast<int32_t>(draw_params.base_vertex);
cmdbuf.DrawMultiIndexedEXT(1, &multi_draw_info, draw_params.num_instances,
draw_params.base_instance,
sizeof(VkMultiDrawIndexedInfoEXT), &vertex_offset);
} else {
// Use multi-draw with single draw
const VkMultiDrawInfoEXT multi_draw_info{
.firstVertex = draw_params.base_vertex,
.vertexCount = draw_params.num_vertices,
};
cmdbuf.DrawMultiEXT(1, &multi_draw_info, draw_params.num_instances,
draw_params.base_instance,
sizeof(VkMultiDrawInfoEXT));
}
});
} else {
// Fallback to standard draw calls
scheduler.Record([draw_params](vk::CommandBuffer cmdbuf) {
if (draw_params.is_indexed) {
cmdbuf.DrawIndexed(draw_params.num_vertices, draw_params.num_instances,
draw_params.first_index, draw_params.base_vertex,
draw_params.base_instance);
} else {
cmdbuf.Draw(draw_params.num_vertices, draw_params.num_instances,
draw_params.base_vertex, draw_params.base_instance);
}
});
}
scheduler.Record([draw_params](vk::CommandBuffer cmdbuf) {
if (draw_params.is_indexed) {
cmdbuf.DrawIndexed(draw_params.num_vertices, draw_params.num_instances,
draw_params.first_index, draw_params.base_vertex,
draw_params.base_instance);
} else {
cmdbuf.Draw(draw_params.num_vertices, draw_params.num_instances,
draw_params.base_vertex, draw_params.base_instance);
}
});
// Log draw call
if (Settings::values.gpu_logging_enabled.GetValue() &&

View file

@ -275,6 +275,19 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
return VK_COMPONENT_SWIZZLE_ZERO;
}
void SanitizeDepthStencilSwizzle(std::array<SwizzleSource, 4>& swizzle,
bool supports_depth_stencil_swizzle_one) {
if (supports_depth_stencil_swizzle_one) {
return;
}
std::replace_if(swizzle.begin(), swizzle.end(),
[](SwizzleSource value) {
return value == SwizzleSource::OneFloat ||
value == SwizzleSource::OneInt;
},
SwizzleSource::Zero);
}
[[nodiscard]] VkImageViewType ImageViewType(Shader::TextureType type) {
switch (type) {
case Shader::TextureType::Color1D:
@ -2109,6 +2122,7 @@ ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewI
!device->IsExt4444FormatsSupported());
if ((aspect_mask & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) != 0) {
std::ranges::transform(swizzle, swizzle.begin(), ConvertGreenRed);
SanitizeDepthStencilSwizzle(swizzle, device->SupportsDepthStencilSwizzleOne());
}
}
const auto format_info = MaxwellToVK::SurfaceFormat(*device, FormatType::Optimal, true, format);

View file

@ -22,16 +22,13 @@
#include <vulkan/vulkan.h>
// Define maintenance 7-9 extension names (not yet in official Vulkan headers)
// Define maintenance 7-8 extension names (not yet in official Vulkan headers)
#ifndef VK_KHR_MAINTENANCE_7_EXTENSION_NAME
#define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
#endif
#ifndef VK_KHR_MAINTENANCE_8_EXTENSION_NAME
#define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
#endif
#ifndef VK_KHR_MAINTENANCE_9_EXTENSION_NAME
#define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9"
#endif
// Sanitize macros
#undef CreateEvent

View file

@ -1078,11 +1078,6 @@ bool Device::GetSuitability(bool requires_swapchain) {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR;
SetNext(next, properties.maintenance5);
}
if (extensions.multi_draw) {
properties.multi_draw.sType =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
SetNext(next, properties.multi_draw);
}
// Perform the property fetch.
physical.GetProperties2(properties2);
@ -1196,7 +1191,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 +1263,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 +1271,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 +1298,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 =
@ -1342,17 +1312,6 @@ void Device::RemoveUnsuitableExtensions() {
features.vertex_input_dynamic_state,
VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME);
// VK_EXT_multi_draw
extensions.multi_draw = features.multi_draw.multiDraw;
if (extensions.multi_draw) {
LOG_INFO(Render_Vulkan, "VK_EXT_multi_draw: maxMultiDrawCount={}",
properties.multi_draw.maxMultiDrawCount);
}
RemoveExtensionFeatureIfUnsuitable(extensions.multi_draw, features.multi_draw,
VK_EXT_MULTI_DRAW_EXTENSION_NAME);
// VK_KHR_pipeline_executable_properties
if (Settings::values.renderer_shader_feedback.GetValue()) {
extensions.pipeline_executable_properties =
@ -1377,35 +1336,15 @@ void Device::RemoveUnsuitableExtensions() {
features.workgroup_memory_explicit_layout,
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME);
// VK_EXT_swapchain_maintenance1 (extension only, has features)
// Requires VK_EXT_surface_maintenance1 instance extension
extensions.swapchain_maintenance1 = features.swapchain_maintenance1.swapchainMaintenance1;
if (extensions.swapchain_maintenance1) {
// Check if VK_EXT_surface_maintenance1 instance extension is available
const auto instance_extensions = vk::EnumerateInstanceExtensionProperties(dld);
const bool has_surface_maintenance1 = instance_extensions && std::ranges::any_of(*instance_extensions,
[](const VkExtensionProperties& prop) {
return std::strcmp(prop.extensionName, VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME) == 0;
});
if (!has_surface_maintenance1) {
LOG_WARNING(Render_Vulkan,
"VK_EXT_swapchain_maintenance1 requires VK_EXT_surface_maintenance1, disabling");
extensions.swapchain_maintenance1 = false;
features.swapchain_maintenance1.swapchainMaintenance1 = false;
}
}
RemoveExtensionFeatureIfUnsuitable(extensions.swapchain_maintenance1, features.swapchain_maintenance1,
VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME);
// VK_KHR_maintenance1 (core in Vulkan 1.1, no features)
// VK_KHR_maintenance1
extensions.maintenance1 = loaded_extensions.contains(VK_KHR_MAINTENANCE_1_EXTENSION_NAME);
RemoveExtensionIfUnsuitable(extensions.maintenance1, VK_KHR_MAINTENANCE_1_EXTENSION_NAME);
// VK_KHR_maintenance2 (core in Vulkan 1.1, no features)
// VK_KHR_maintenance2
extensions.maintenance2 = loaded_extensions.contains(VK_KHR_MAINTENANCE_2_EXTENSION_NAME);
RemoveExtensionIfUnsuitable(extensions.maintenance2, VK_KHR_MAINTENANCE_2_EXTENSION_NAME);
// VK_KHR_maintenance3 (core in Vulkan 1.1, no features)
// VK_KHR_maintenance3
extensions.maintenance3 = loaded_extensions.contains(VK_KHR_MAINTENANCE_3_EXTENSION_NAME);
RemoveExtensionIfUnsuitable(extensions.maintenance3, VK_KHR_MAINTENANCE_3_EXTENSION_NAME);
@ -1416,17 +1355,6 @@ void Device::RemoveUnsuitableExtensions() {
// VK_KHR_maintenance5
extensions.maintenance5 = features.maintenance5.maintenance5;
if (extensions.maintenance5) {
LOG_INFO(Render_Vulkan, "VK_KHR_maintenance5 properties: polygonModePointSize={} "
"depthStencilSwizzleOne={} earlyFragmentTests={} nonStrictWideLines={}",
properties.maintenance5.polygonModePointSize,
properties.maintenance5.depthStencilSwizzleOneSupport,
properties.maintenance5.earlyFragmentMultisampleCoverageAfterSampleCounting &&
properties.maintenance5.earlyFragmentSampleMaskTestBeforeSampleCounting,
properties.maintenance5.nonStrictWideLinesUseParallelogram);
}
RemoveExtensionFeatureIfUnsuitable(extensions.maintenance5, features.maintenance5,
VK_KHR_MAINTENANCE_5_EXTENSION_NAME);
@ -1435,17 +1363,13 @@ void Device::RemoveUnsuitableExtensions() {
RemoveExtensionFeatureIfUnsuitable(extensions.maintenance6, features.maintenance6,
VK_KHR_MAINTENANCE_6_EXTENSION_NAME);
// VK_KHR_maintenance7 (proposed for Vulkan 1.4, no features)
// VK_KHR_maintenance7
extensions.maintenance7 = loaded_extensions.contains(VK_KHR_MAINTENANCE_7_EXTENSION_NAME);
RemoveExtensionIfUnsuitable(extensions.maintenance7, VK_KHR_MAINTENANCE_7_EXTENSION_NAME);
// VK_KHR_maintenance8 (proposed for Vulkan 1.4, no features)
// VK_KHR_maintenance8
extensions.maintenance8 = loaded_extensions.contains(VK_KHR_MAINTENANCE_8_EXTENSION_NAME);
RemoveExtensionIfUnsuitable(extensions.maintenance8, VK_KHR_MAINTENANCE_8_EXTENSION_NAME);
// VK_KHR_maintenance9 (proposed for Vulkan 1.4, no features)
extensions.maintenance9 = loaded_extensions.contains(VK_KHR_MAINTENANCE_9_EXTENSION_NAME);
RemoveExtensionIfUnsuitable(extensions.maintenance9, VK_KHR_MAINTENANCE_9_EXTENSION_NAME);
}
void Device::SetupFamilies(VkSurfaceKHR surface) {

View file

@ -57,14 +57,12 @@ VK_DEFINE_HANDLE(VmaAllocator)
FEATURE(EXT, 4444Formats, 4444_FORMATS, format_a4b4g4r4) \
FEATURE(EXT, IndexTypeUint8, INDEX_TYPE_UINT8, index_type_uint8) \
FEATURE(EXT, LineRasterization, LINE_RASTERIZATION, line_rasterization) \
FEATURE(EXT, MultiDraw, MULTI_DRAW, multi_draw) \
FEATURE(EXT, PrimitiveTopologyListRestart, PRIMITIVE_TOPOLOGY_LIST_RESTART, \
primitive_topology_list_restart) \
FEATURE(EXT, ProvokingVertex, PROVOKING_VERTEX, provoking_vertex) \
FEATURE(EXT, Robustness2, ROBUSTNESS_2, robustness2) \
FEATURE(EXT, TransformFeedback, TRANSFORM_FEEDBACK, transform_feedback) \
FEATURE(EXT, VertexInputDynamicState, VERTEX_INPUT_DYNAMIC_STATE, vertex_input_dynamic_state) \
FEATURE(EXT, SwapchainMaintenance1, SWAPCHAIN_MAINTENANCE_1, swapchain_maintenance1) \
FEATURE(KHR, Maintenance5, MAINTENANCE_5, maintenance5) \
FEATURE(KHR, Maintenance6, MAINTENANCE_6, maintenance6) \
FEATURE(KHR, PipelineExecutableProperties, PIPELINE_EXECUTABLE_PROPERTIES, \
@ -100,7 +98,6 @@ VK_DEFINE_HANDLE(VmaAllocator)
EXTENSION(KHR, MAINTENANCE_3, maintenance3) \
EXTENSION(KHR, MAINTENANCE_7, maintenance7) \
EXTENSION(KHR, MAINTENANCE_8, maintenance8) \
EXTENSION(KHR, MAINTENANCE_9, maintenance9) \
EXTENSION(NV, DEVICE_DIAGNOSTICS_CONFIG, device_diagnostics_config) \
EXTENSION(NV, GEOMETRY_SHADER_PASSTHROUGH, geometry_shader_passthrough) \
EXTENSION(NV, VIEWPORT_ARRAY2, viewport_array2) \
@ -473,11 +470,6 @@ public:
return extensions.swapchain_mutable_format;
}
/// Returns true if VK_EXT_swapchain_maintenance1 is enabled.
bool IsExtSwapchainMaintenance1Enabled() const {
return extensions.swapchain_maintenance1;
}
/// Returns true if VK_KHR_shader_float_controls is enabled.
bool IsKhrShaderFloatControlsSupported() const {
return extensions.shader_float_controls;
@ -719,6 +711,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;
@ -878,11 +886,6 @@ public:
return extensions.maintenance6;
}
/// Returns true if the device supports VK_EXT_multi_draw.
bool IsExtMultiDrawSupported() const {
return extensions.multi_draw;
}
/// Returns true if the device supports VK_KHR_maintenance7.
bool IsKhrMaintenance7Supported() const {
return extensions.maintenance7;
@ -893,11 +896,6 @@ public:
return extensions.maintenance8;
}
/// Returns true if the device supports VK_KHR_maintenance9.
bool IsKhrMaintenance9Supported() const {
return extensions.maintenance9;
}
/// Returns true if the device supports UINT8 index buffer conversion via compute shader.
bool SupportsUint8Indices() const {
return features.bit8_storage.storageBuffer8BitAccess &&
@ -1025,7 +1023,6 @@ private:
VkPhysicalDeviceSubgroupSizeControlProperties subgroup_size_control{};
VkPhysicalDeviceTransformFeedbackPropertiesEXT transform_feedback{};
VkPhysicalDeviceMaintenance5PropertiesKHR maintenance5{};
VkPhysicalDeviceMultiDrawPropertiesEXT multi_draw{};
VkPhysicalDeviceProperties properties{};
};

View file

@ -81,14 +81,6 @@ namespace {
#endif
if (enable_validation && AreExtensionsSupported(dld, *properties, std::array{VK_EXT_DEBUG_UTILS_EXTENSION_NAME}))
extensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
// VK_EXT_surface_maintenance1 is required for VK_EXT_swapchain_maintenance1
if (window_type != Core::Frontend::WindowSystemType::Headless && AreExtensionsSupported(dld, *properties, std::array{VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME})) {
extensions.push_back(VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME);
// Some(which?) drivers dont like being told to load this extension(why?)
// NVIDIA on FreeBSD is totally fine with this through
if (AreExtensionsSupported(dld, *properties, std::array{VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME}))
extensions.push_back(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME);
}
}
return extensions;
}

View file

@ -116,8 +116,6 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept {
X(vkCmdDrawIndirectCount);
X(vkCmdDrawIndexedIndirectCount);
X(vkCmdDrawIndirectByteCountEXT);
X(vkCmdDrawMultiEXT);
X(vkCmdDrawMultiIndexedEXT);
X(vkCmdEndConditionalRenderingEXT);
X(vkCmdEndQuery);
X(vkCmdEndRenderPass);

View file

@ -218,8 +218,6 @@ struct DeviceDispatch : InstanceDispatch {
PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount{};
PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount{};
PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT{};
PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT{};
PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT{};
PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT{};
PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT{};
PFN_vkCmdEndQuery vkCmdEndQuery{};
@ -1241,19 +1239,6 @@ public:
counter_buffer_offset, counter_offset, stride);
}
void DrawMultiEXT(u32 draw_count, const VkMultiDrawInfoEXT* vertex_info,
u32 instance_count, u32 first_instance, u32 stride) const noexcept {
dld->vkCmdDrawMultiEXT(handle, draw_count, vertex_info, instance_count, first_instance,
stride);
}
void DrawMultiIndexedEXT(u32 draw_count, const VkMultiDrawIndexedInfoEXT* index_info,
u32 instance_count, u32 first_instance, u32 stride,
const int32_t* vertex_offset) const noexcept {
dld->vkCmdDrawMultiIndexedEXT(handle, draw_count, index_info, instance_count,
first_instance, stride, vertex_offset);
}
void ClearAttachments(Span<VkClearAttachment> attachments,
Span<VkClearRect> rects) const noexcept {
dld->vkCmdClearAttachments(handle, attachments.size(), attachments.data(), rects.size(),