android: add more descriptions & fixup settings
Some checks failed
eden-build / source (pull_request) Has been skipped
eden-build / linux (pull_request) Successful in 31m13s
eden-build / android (pull_request) Successful in 15m1s
eden-license / license-header (pull_request_target) Failing after 15s
eden-build / windows (msvc) (pull_request) Successful in 1h2m21s
Some checks failed
eden-build / source (pull_request) Has been skipped
eden-build / linux (pull_request) Successful in 31m13s
eden-build / android (pull_request) Successful in 15m1s
eden-license / license-header (pull_request_target) Failing after 15s
eden-build / windows (msvc) (pull_request) Successful in 1h2m21s
disables frame skipping and adds fast GPU time Signed-off-by: swurl <swurl@swurl.xyz>
This commit is contained in:
parent
61fc3b4f9d
commit
2cc764005d
8 changed files with 55 additions and 155 deletions
|
@ -9,7 +9,6 @@ export NDK_CCACHE=$(which ccache)
|
|||
export ANDROID_KEYSTORE_FILE=~/android.keystore
|
||||
export ANDROID_KEYSTORE_PASS=`cat ~/android.pass`
|
||||
export ANDROID_KEY_ALIAS=`cat ~/android.alias`
|
||||
export ANDROID_HOME=/opt/android-sdk/
|
||||
|
||||
cd src/android
|
||||
chmod +x ./gradlew
|
||||
|
|
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
@ -132,7 +132,7 @@ jobs:
|
|||
echo $GIT_TAG_NAME
|
||||
|
||||
- name: Build
|
||||
run: JAVA_HOME=$JAVA_HOME_21_X64 ./.ci/android/build.sh
|
||||
run: ANDROID_HOME=/opt/android-sdk ./.ci/android/build.sh
|
||||
|
||||
- name: Package Android artifacts
|
||||
run: ./.ci/android/package.sh
|
||||
|
|
2
.github/workflows/trigger_release.yml
vendored
2
.github/workflows/trigger_release.yml
vendored
|
@ -129,7 +129,7 @@ jobs:
|
|||
echo $GIT_TAG_NAME
|
||||
|
||||
- name: Build
|
||||
run: JAVA_HOME=$JAVA_HOME_21_X64 ./.ci/android/build.sh
|
||||
run: ANDROID_HOME=/opt/android-sdk ./.ci/android/build.sh
|
||||
|
||||
- name: Package Android artifacts
|
||||
run: ./.ci/android/package.sh
|
||||
|
|
|
@ -17,6 +17,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
|||
RENDERER_USE_DISK_SHADER_CACHE("use_disk_shader_cache"),
|
||||
RENDERER_FORCE_MAX_CLOCK("force_max_clock"),
|
||||
RENDERER_ASYNCHRONOUS_SHADERS("use_asynchronous_shaders"),
|
||||
RENDERER_FAST_GPU("use_fast_gpu_time"),
|
||||
RENDERER_REACTIVE_FLUSHING("use_reactive_flushing"),
|
||||
RENDERER_DEBUG("debug"),
|
||||
RENDERER_DYNA_STATE3("dyna_state3"),
|
||||
|
|
|
@ -52,6 +52,10 @@ abstract class SettingsItem(
|
|||
|
||||
val isEditable: Boolean
|
||||
get() {
|
||||
if (setting.key == BooleanSetting.FRAME_SKIPPING.key) {
|
||||
// disabled for now
|
||||
return false
|
||||
}
|
||||
// Can't change docked mode toggle when using handheld mode
|
||||
if (setting.key == BooleanSetting.USE_DOCKED_MODE.key) {
|
||||
return NativeInput.getStyleIndex(0) != NpadStyleIndex.Handheld
|
||||
|
@ -210,61 +214,6 @@ abstract class SettingsItem(
|
|||
|
||||
override fun reset() = BooleanSetting.USE_DOCKED_MODE.reset()
|
||||
}
|
||||
val enableInterpolationSetting = object : AbstractBooleanSetting {
|
||||
override val key = BooleanSetting.FRAME_INTERPOLATION.key
|
||||
|
||||
override fun getBoolean(needsGlobal: Boolean): Boolean =
|
||||
BooleanSetting.FRAME_INTERPOLATION.getBoolean(needsGlobal)
|
||||
|
||||
override fun setBoolean(value: Boolean) =
|
||||
BooleanSetting.FRAME_INTERPOLATION.setBoolean(value)
|
||||
|
||||
override val defaultValue = BooleanSetting.FRAME_INTERPOLATION.defaultValue
|
||||
|
||||
override fun getValueAsString(needsGlobal: Boolean): String =
|
||||
BooleanSetting.FRAME_INTERPOLATION.getValueAsString(needsGlobal)
|
||||
|
||||
override fun reset() = BooleanSetting.FRAME_INTERPOLATION.reset()
|
||||
}
|
||||
|
||||
val enableFrameSkippingSetting = DisabledSetting(
|
||||
object : AbstractBooleanSetting {
|
||||
override val key = BooleanSetting.FRAME_SKIPPING.key
|
||||
|
||||
override fun getBoolean(needsGlobal: Boolean): Boolean =
|
||||
BooleanSetting.FRAME_SKIPPING.getBoolean(needsGlobal)
|
||||
|
||||
override fun setBoolean(value: Boolean) =
|
||||
BooleanSetting.FRAME_SKIPPING.setBoolean(value)
|
||||
|
||||
override val defaultValue = BooleanSetting.FRAME_SKIPPING.defaultValue
|
||||
|
||||
override fun getValueAsString(needsGlobal: Boolean): String =
|
||||
BooleanSetting.FRAME_SKIPPING.getValueAsString(needsGlobal)
|
||||
|
||||
override fun reset() = BooleanSetting.FRAME_SKIPPING.reset()
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
val syncCoreSpeedSetting = object : AbstractBooleanSetting {
|
||||
override val key = BooleanSetting.CORE_SYNC_CORE_SPEED.key
|
||||
|
||||
override fun getBoolean(needsGlobal: Boolean): Boolean {
|
||||
return BooleanSetting.CORE_SYNC_CORE_SPEED.getBoolean(needsGlobal)
|
||||
}
|
||||
|
||||
override fun setBoolean(value: Boolean) {
|
||||
BooleanSetting.CORE_SYNC_CORE_SPEED.setBoolean(value)
|
||||
}
|
||||
|
||||
override val defaultValue = BooleanSetting.CORE_SYNC_CORE_SPEED.defaultValue
|
||||
|
||||
override fun getValueAsString(needsGlobal: Boolean): String =
|
||||
BooleanSetting.CORE_SYNC_CORE_SPEED.getValueAsString(needsGlobal)
|
||||
|
||||
override fun reset() = BooleanSetting.CORE_SYNC_CORE_SPEED.reset()
|
||||
}
|
||||
|
||||
put(
|
||||
SwitchSetting(
|
||||
|
@ -291,7 +240,7 @@ abstract class SettingsItem(
|
|||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
syncCoreSpeedSetting,
|
||||
BooleanSetting.CORE_SYNC_CORE_SPEED,
|
||||
titleId = R.string.use_sync_core,
|
||||
descriptionId = R.string.use_sync_core_description
|
||||
)
|
||||
|
@ -342,24 +291,27 @@ abstract class SettingsItem(
|
|||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_NVDEC_EMULATION,
|
||||
titleId = R.string.nvdec_emulation,
|
||||
descriptionId = R.string.nvdec_emulation_description,
|
||||
choicesId = R.array.rendererNvdecNames,
|
||||
valuesId = R.array.rendererNvdecValues
|
||||
)
|
||||
)
|
||||
put(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_ASTC_DECODE_METHOD,
|
||||
titleId = R.string.accelerate_astc,
|
||||
choicesId = R.array.astcDecodingMethodNames,
|
||||
valuesId = R.array.astcDecodingMethodValues
|
||||
IntSetting.RENDERER_ASTC_DECODE_METHOD,
|
||||
titleId = R.string.accelerate_astc,
|
||||
descriptionId = R.string.accelerate_astc_description,
|
||||
choicesId = R.array.astcDecodingMethodNames,
|
||||
valuesId = R.array.astcDecodingMethodValues
|
||||
)
|
||||
)
|
||||
put(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_ASTC_RECOMPRESSION,
|
||||
titleId = R.string.astc_recompression,
|
||||
choicesId = R.array.astcRecompressionMethodNames,
|
||||
valuesId = R.array.astcRecompressionMethodValues
|
||||
IntSetting.RENDERER_ASTC_RECOMPRESSION,
|
||||
titleId = R.string.astc_recompression,
|
||||
descriptionId = R.string.astc_recompression_description,
|
||||
choicesId = R.array.astcRecompressionMethodNames,
|
||||
valuesId = R.array.astcRecompressionMethodValues
|
||||
)
|
||||
)
|
||||
put(
|
||||
|
@ -520,7 +472,7 @@ abstract class SettingsItem(
|
|||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT,
|
||||
titleId = R.string.renderer_optimize_spirv_output,
|
||||
descriptionId = 0,
|
||||
descriptionId = R.string.renderer_optimize_spirv_output_description,
|
||||
choicesId = R.array.optimizeSpirvOutputEntries,
|
||||
valuesId = R.array.optimizeSpirvOutputValues
|
||||
)
|
||||
|
@ -532,6 +484,13 @@ abstract class SettingsItem(
|
|||
descriptionId = R.string.renderer_asynchronous_shaders_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.RENDERER_FAST_GPU,
|
||||
titleId = R.string.use_fast_gpu_time,
|
||||
descriptionId = R.string.use_fast_gpu_time_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.RENDERER_REACTIVE_FLUSHING,
|
||||
|
|
|
@ -456,92 +456,30 @@ class SettingsFragmentPresenter(
|
|||
override val isSaveable = true
|
||||
}
|
||||
}
|
||||
|
||||
private fun addEdenVeilSettings(sl: ArrayList<SettingsItem>) {
|
||||
sl.apply {
|
||||
add(
|
||||
SwitchSetting(
|
||||
InterpolationSetting, // The interpolation setting object you've created
|
||||
titleId = R.string.frame_interpolation, // Use appropriate string resources for the title
|
||||
descriptionId = R.string.frame_interpolation_description // Description resource for the interpolation setting
|
||||
)
|
||||
)
|
||||
add(
|
||||
SwitchSetting(
|
||||
frameSkippingSetting,
|
||||
titleId = R.string.frame_skipping,
|
||||
descriptionId = R.string.frame_skipping_description
|
||||
)
|
||||
)
|
||||
add(
|
||||
SwitchSetting(
|
||||
BooleanSetting.USE_LRU_CACHE,
|
||||
titleId = R.string.use_lru_cache,
|
||||
descriptionId = R.string.use_lru_cache_description
|
||||
)
|
||||
)
|
||||
sl.apply {
|
||||
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
||||
add(BooleanSetting.FRAME_SKIPPING.key)
|
||||
add(BooleanSetting.USE_LRU_CACHE.key)
|
||||
add(BooleanSetting.RENDERER_FAST_GPU.key)
|
||||
|
||||
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
||||
add(BooleanSetting.RENDERER_DYNA_STATE3.key)
|
||||
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
|
||||
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
|
||||
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
||||
|
||||
add(
|
||||
SwitchSetting(
|
||||
syncCoreSpeedSetting,
|
||||
titleId = R.string.use_sync_core,
|
||||
descriptionId = R.string.use_sync_core_description
|
||||
)
|
||||
)
|
||||
add(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_SHADER_BACKEND,
|
||||
titleId = R.string.shader_backend,
|
||||
choicesId = R.array.rendererShaderNames,
|
||||
valuesId = R.array.rendererShaderValues
|
||||
)
|
||||
)
|
||||
add(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_NVDEC_EMULATION,
|
||||
titleId = R.string.nvdec_emulation,
|
||||
choicesId = R.array.rendererNvdecNames,
|
||||
valuesId = R.array.rendererNvdecValues
|
||||
)
|
||||
)
|
||||
add(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_ASTC_DECODE_METHOD,
|
||||
titleId = R.string.accelerate_astc,
|
||||
choicesId = R.array.astcDecodingMethodNames,
|
||||
valuesId = R.array.astcDecodingMethodValues
|
||||
)
|
||||
)
|
||||
add(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_ASTC_RECOMPRESSION,
|
||||
titleId = R.string.astc_recompression,
|
||||
choicesId = R.array.astcRecompressionMethodNames,
|
||||
valuesId = R.array.astcRecompressionMethodValues
|
||||
)
|
||||
)
|
||||
add(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_VRAM_USAGE_MODE,
|
||||
titleId = R.string.vram_usage_mode,
|
||||
choicesId = R.array.vramUsageMethodNames,
|
||||
valuesId = R.array.vramUsageMethodValues
|
||||
)
|
||||
)
|
||||
add(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT,
|
||||
titleId = R.string.renderer_optimize_spirv_output,
|
||||
choicesId = R.array.optimizeSpirvOutputEntries,
|
||||
valuesId = R.array.optimizeSpirvOutputValues
|
||||
)
|
||||
)
|
||||
add(BooleanSetting.RENDERER_DYNA_STATE3.key)
|
||||
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
|
||||
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
|
||||
|
||||
add(BooleanSetting.CORE_SYNC_CORE_SPEED.key)
|
||||
|
||||
add(IntSetting.RENDERER_SHADER_BACKEND.key)
|
||||
add(IntSetting.RENDERER_NVDEC_EMULATION.key)
|
||||
add(IntSetting.RENDERER_ASTC_DECODE_METHOD.key)
|
||||
add(IntSetting.RENDERER_ASTC_RECOMPRESSION.key)
|
||||
add(IntSetting.RENDERER_VRAM_USAGE_MODE.key)
|
||||
add(IntSetting.RENDERER_OPTIMIZE_SPIRV_OUTPUT.key)
|
||||
}
|
||||
}
|
||||
}
|
||||
private fun addInputPlayer(sl: ArrayList<SettingsItem>, playerIndex: Int) {
|
||||
sl.apply {
|
||||
val connectedSetting = object : AbstractBooleanSetting {
|
||||
|
|
|
@ -273,7 +273,7 @@
|
|||
|
||||
<!-- Graphics settings strings -->
|
||||
<string name="frame_skipping">WIP: Frameskip</string>
|
||||
<string name="frame_skipping_description">Toggle frame skipping to improve performance by reducing the number of rendered frames.</string>
|
||||
<string name="frame_skipping_description">Toggle frame skipping to improve performance by reducing the number of rendered frames. This feature is still being worked on and will be enabled in future releases.</string>
|
||||
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
||||
<string name="frame_interpolation_description">Ensures smooth and consistent frame delivery by synchronizing the timing between frames, reducing stuttering and uneven animation. Ideal for games that experience frame timing instability or micro-stutter during gameplay</string>
|
||||
<string name="renderer_accuracy">Accuracy level</string>
|
||||
|
@ -288,8 +288,11 @@
|
|||
<string name="renderer_force_max_clock">Force maximum clocks (Adreno only)</string>
|
||||
<string name="renderer_force_max_clock_description">Forces the GPU to run at the maximum possible clocks (thermal constraints will still be applied).</string>
|
||||
<string name="renderer_optimize_spirv_output">Optimize SPIRV output</string>
|
||||
<string name="renderer_optimize_spirv_output_description">Optimizes compiled shader to improve GPU efficiency.</string>
|
||||
<string name="renderer_asynchronous_shaders">Use asynchronous shaders</string>
|
||||
<string name="renderer_asynchronous_shaders_description">Compiles shaders asynchronously, reducing stutter but may introduce glitches.</string>
|
||||
<string name="use_fast_gpu_time">Use Fast GPU Time</string>
|
||||
<string name="use_fast_gpu_time_description">Forces most games to run at their highest native resolution. This option is hacky and may cause issues.</string>
|
||||
<string name="renderer_reactive_flushing">Use reactive flushing</string>
|
||||
<string name="renderer_reactive_flushing_description">Improves rendering accuracy in some games at the cost of performance.</string>
|
||||
<string name="use_disk_shader_cache">Disk shader cache</string>
|
||||
|
@ -712,7 +715,7 @@ These extensions may increase device temperature, and GPUs belonging to the olde
|
|||
|
||||
<!-- ASTC Decoding Method -->
|
||||
<string name="accelerate_astc">ASTC Decoding Method</string>
|
||||
<string name="accelerate_astc_description">Pick how ASTC-compressed textures are decoded for rendering.</string>
|
||||
<string name="accelerate_astc_description">Pick how ASTC-compressed textures are decoded for rendering: CPU (slow, safe), GPU (fast, recommended), or CPU Async (no stutters, may cause issues)</string>
|
||||
|
||||
<!-- ASTC Decoding Method Choices -->
|
||||
<string name="accelerate_astc_cpu">CPU</string>
|
||||
|
@ -721,7 +724,7 @@ These extensions may increase device temperature, and GPUs belonging to the olde
|
|||
|
||||
<!-- ASTC Recompression Method -->
|
||||
<string name="astc_recompression">ASTC Recompression Method</string>
|
||||
<string name="astc_recompression_description">Choose how ASTC textures are recompressed to improve compatibility and performance.</string>
|
||||
<string name="astc_recompression_description">Choose how ASTC textures are recompressed to improve compatibility and performance. Enabling this option saves VRAM but may lower texture quality.</string>
|
||||
|
||||
<!-- ASTC Recompression Method Choices -->
|
||||
<string name="astc_recompression_uncompressed">Uncompressed</string>
|
||||
|
@ -744,7 +747,7 @@ These extensions may increase device temperature, and GPUs belonging to the olde
|
|||
|
||||
<!-- LRU Cache -->
|
||||
<string name="use_lru_cache">Enable LRU Cache</string>
|
||||
<string name="use_lru_cache_description">Enable or disable the Least Recently Used (LRU) cache for improved performance, some games have issue with it, e.g TOTK 1.2.1</string>
|
||||
<string name="use_lru_cache_description">Enable or disable the Least Recently Used (LRU) cache, increasing performance by saving CPU process usage. Some games have issue with it, notably TotK 1.2.1, so disable if the game doesn\'t boot or crashes randomly.</string>
|
||||
|
||||
<!-- Renderer VSync -->
|
||||
<string name="renderer_vsync_immediate">Immediate (Off)</string>
|
||||
|
|
|
@ -284,7 +284,7 @@ struct Values {
|
|||
#ifdef __ANDROID__
|
||||
SwitchableSetting<bool> frame_interpolation{linkage, true, "frame_interpolation", Category::Renderer,
|
||||
Specialization::RuntimeList};
|
||||
SwitchableSetting<bool> frame_skipping{linkage, true, "frame_skipping", Category::Renderer,
|
||||
SwitchableSetting<bool> frame_skipping{linkage, false, "frame_skipping", Category::Renderer,
|
||||
Specialization::RuntimeList};
|
||||
#endif
|
||||
SwitchableSetting<bool> use_disk_shader_cache{linkage, true, "use_disk_shader_cache",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue