mirror of
https://git.citron-emu.org/citron/emulator
synced 2026-01-31 06:43:35 +00:00
renderer_vulkan: add Extended Dynamic State user setting
Add configurable EDS levels (Disabled/EDS1/EDS2/EDS3) to allow users to troubleshoot graphics issues by controlling which Vulkan Extended Dynamic State features are enabled. Defaults to EDS3 for maximum performance. Implements setting in both desktop and Android frontends with proper translations and descriptions. Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
@@ -30,7 +30,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||
SHOW_THERMAL_OVERLAY("show_thermal_overlay"),
|
||||
SHOW_RAM_METER("show_ram_meter"),
|
||||
SHOW_SHADER_BUILDING_OVERLAY("show_shader_building_overlay"),
|
||||
SHOW_PERFORMANCE_GRAPH("show_performance_graph");
|
||||
SHOW_PERFORMANCE_GRAPH("show_performance_graph"),
|
||||
USE_CONDITIONAL_RENDERING("use_conditional_rendering");
|
||||
|
||||
override fun getBoolean(needsGlobal: Boolean): Boolean =
|
||||
NativeConfig.getBoolean(key, needsGlobal)
|
||||
|
||||
@@ -38,6 +38,7 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
|
||||
ASTC_RECOMPRESSION("astc_recompression"),
|
||||
SHADER_BACKEND("shader_backend"),
|
||||
VRAM_USAGE_MODE("vram_usage_mode"),
|
||||
EXTENDED_DYNAMIC_STATE("extended_dynamic_state"),
|
||||
|
||||
// Applet Mode settings
|
||||
CABINET_APPLET_MODE("cabinet_applet_mode"),
|
||||
|
||||
@@ -1014,6 +1014,8 @@ class SettingsFragmentPresenter(
|
||||
add(HeaderSetting(R.string.advanced_graphics_header))
|
||||
add(IntSetting.SHADER_BACKEND.key)
|
||||
add(IntSetting.VRAM_USAGE_MODE.key)
|
||||
add(IntSetting.EXTENDED_DYNAMIC_STATE.key)
|
||||
add(BooleanSetting.USE_CONDITIONAL_RENDERING.key)
|
||||
|
||||
add(HeaderSetting(R.string.frame_skipping_header))
|
||||
add(IntSetting.FRAME_SKIPPING.key)
|
||||
|
||||
@@ -404,6 +404,20 @@
|
||||
<item>2</item>
|
||||
</integer-array>
|
||||
|
||||
<string-array name="extendedDynamicStateNames">
|
||||
<item>Disabled</item>
|
||||
<item>EDS1</item>
|
||||
<item>EDS2</item>
|
||||
<item>EDS3</item>
|
||||
</string-array>
|
||||
|
||||
<integer-array name="extendedDynamicStateValues">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
</integer-array>
|
||||
|
||||
<string-array name="vramUsageModeNames">
|
||||
<item>Conservative</item>
|
||||
<item>Aggressive</item>
|
||||
|
||||
@@ -1239,6 +1239,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
<string name="shader_backend_description">Controls which shader backend to use for rendering.</string>
|
||||
<string name="vram_usage_mode">VRAM Usage Mode</string>
|
||||
<string name="vram_usage_mode_description">Controls how aggressively VRAM is used. Conservative mode limits VRAM usage for better stability.</string>
|
||||
<string name="extended_dynamic_state">Extended Dynamic State</string>
|
||||
<string name="extended_dynamic_state_description">Controls which Vulkan Extended Dynamic State features are enabled. EDS3 (default) enables all features for maximum compatibility. EDS2/EDS1 limit features for troubleshooting graphics issues. Disabled turns off all EDS features. Try lower settings if you experience rendering problems in some games.</string>
|
||||
<string name="use_conditional_rendering">Use Conditional Rendering</string>
|
||||
<string name="use_conditional_rendering_description">Enables conditional rendering based on query results. Disabling this can fix flickering objects in some games but may impact performance. Try disabling if you see objects appearing and disappearing rapidly.</string>
|
||||
<string name="frame_skipping">Frame Skipping</string>
|
||||
<string name="frame_skipping_description">Skips frames to maintain performance when the system cannot keep up with the target frame rate.</string>
|
||||
<string name="frame_skipping_mode">Frame Skipping Mode</string>
|
||||
|
||||
Reference in New Issue
Block a user