forked from moonpower/azahar-UWP
Implement game render thread delay (#180)
More details: https://www.reddit.com/r/Citra/comments/1e1v4e1/fixing_luigis_mansion_2_performance_issues_once/
This commit is contained in:
@@ -40,7 +40,8 @@ enum class IntSetting(
|
||||
VSYNC("use_vsync_new", Settings.SECTION_RENDERER, 1),
|
||||
DEBUG_RENDERER("renderer_debug", Settings.SECTION_DEBUG, 0),
|
||||
TEXTURE_FILTER("texture_filter", Settings.SECTION_RENDERER, 0),
|
||||
USE_FRAME_LIMIT("use_frame_limit", Settings.SECTION_RENDERER, 1);
|
||||
USE_FRAME_LIMIT("use_frame_limit", Settings.SECTION_RENDERER, 1),
|
||||
DELAY_RENDER_THREAD_US("delay_game_render_thread_us", Settings.SECTION_RENDERER, 0);
|
||||
|
||||
override var int: Int = defaultValue
|
||||
|
||||
|
||||
@@ -729,6 +729,18 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
|
||||
IntSetting.TEXTURE_FILTER.defaultValue
|
||||
)
|
||||
)
|
||||
add(
|
||||
SliderSetting(
|
||||
IntSetting.DELAY_RENDER_THREAD_US,
|
||||
R.string.delay_render_thread,
|
||||
R.string.delay_render_thread_description,
|
||||
0,
|
||||
16000,
|
||||
" μs",
|
||||
IntSetting.DELAY_RENDER_THREAD_US.key,
|
||||
IntSetting.DELAY_RENDER_THREAD_US.defaultValue.toFloat()
|
||||
)
|
||||
)
|
||||
|
||||
add(HeaderSetting(R.string.stereoscopy))
|
||||
add(
|
||||
|
||||
@@ -169,6 +169,7 @@ void Config::ReadValues() {
|
||||
ReadSetting("Renderer", Settings::values.bg_red);
|
||||
ReadSetting("Renderer", Settings::values.bg_green);
|
||||
ReadSetting("Renderer", Settings::values.bg_blue);
|
||||
ReadSetting("Renderer", Settings::values.delay_game_render_thread_us);
|
||||
|
||||
// Layout
|
||||
Settings::values.layout_option = static_cast<Settings::LayoutOption>(sdl2_config->GetInteger(
|
||||
|
||||
@@ -175,6 +175,10 @@ anaglyph_shader_name =
|
||||
# 0: Nearest, 1 (default): Linear
|
||||
filter_mode =
|
||||
|
||||
# Delays the game render thread by the specified amount of microseconds
|
||||
# Set to 0 for no delay, only useful in dynamic-fps games to simulate GPU delay.
|
||||
delay_game_render_thread_us =
|
||||
|
||||
[Layout]
|
||||
# Layout for the screen inside the render window.
|
||||
# 0 (default): Default Top Bottom Screen, 1: Single Screen Only, 2: Large Screen Small Screen, 3: Side by Side
|
||||
|
||||
@@ -663,5 +663,7 @@ Se esperan fallos gráficos temporales cuando ésta esté activado.</string>
|
||||
<string name="artic_base_connect">Conectar con Artic Base</string>
|
||||
<string name="artic_base_connect_description">Conectar con una consola real que esté ejecutando un servidor Artic Base</string>
|
||||
<string name="artic_base_enter_address">Introduce la dirección del servidor Artic Base</string>
|
||||
<string name="delay_render_thread">Retrasa el hilo de dibujado del juego</string>
|
||||
<string name="delay_render_thread_description">Retrasa el hilo de dibujado del juego cuando envía datos a la GPU. Ayuda con problemas de rendimiento en los (muy pocos) juegos de fps dinámicos.</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -689,5 +689,7 @@
|
||||
<string name="artic_base_connect_description">Connect to a real console that is running an Artic Base server</string>
|
||||
<string name="artic_base_connect">Connect to Artic Base</string>
|
||||
<string name="artic_base_enter_address">Enter Artic Base server address</string>
|
||||
<string name="delay_render_thread">Delay game render thread</string>
|
||||
<string name="delay_render_thread_description">Delay the game render thread when it submits data to the GPU. Helps with performance issues in the (very few) dynamic-fps games.</string>
|
||||
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user