forked from woofmeow/straywild
Optimize PortMaster low-memory profile
This commit is contained in:
parent
b27883d115
commit
021de5aca4
16 changed files with 327 additions and 31 deletions
|
|
@ -187,6 +187,22 @@ func _validate_low_end_profile_contract() -> void:
|
|||
assert(launcher.contains("NETFISHING_LOW_END=1"))
|
||||
assert(launcher.contains("--max-fps 30"))
|
||||
assert(launcher.contains("--audio-output-latency 40"))
|
||||
var builder: String = FileAccess.get_file_as_string(
|
||||
"res://scripts/build_portmaster.sh"
|
||||
)
|
||||
assert(builder.contains("prepare_portmaster_assets.sh"))
|
||||
assert(builder.contains("netfishing-portmaster-export"))
|
||||
var asset_profile: String = FileAccess.get_file_as_string(
|
||||
"res://scripts/prepare_portmaster_assets.sh"
|
||||
)
|
||||
assert(asset_profile.contains("GENERAL_TEXTURE_LIMIT=128"))
|
||||
assert(asset_profile.contains("GAMEPLAY_TEXTURE_LIMIT=64"))
|
||||
assert(asset_profile.contains("AUDIO_SAMPLE_RATE=22050"))
|
||||
assert(asset_profile.contains("compress/mode=2"))
|
||||
assert(asset_profile.contains("fish/species"))
|
||||
assert(asset_profile.contains("art/exported/characters"))
|
||||
assert(builder.contains("--exclude '/audio/ambience/'"))
|
||||
assert(builder.contains("--exclude '/audio/music/'"))
|
||||
|
||||
|
||||
func _make_button(
|
||||
|
|
|
|||
|
|
@ -63,14 +63,14 @@ func _validate_profile_resolution() -> void:
|
|||
assert(not normal.is_light())
|
||||
assert(is_equal_approx(normal.get_world_render_scale(), 1.0))
|
||||
assert(light.is_light())
|
||||
assert(is_equal_approx(light.get_world_render_scale(), 0.5))
|
||||
assert(is_equal_approx(light.get_world_render_scale(), 0.375))
|
||||
assert(legacy.is_light())
|
||||
|
||||
|
||||
func _validate_main_profile(main: Node) -> void:
|
||||
var profile: RuntimePerformanceProfile = main.get("_performance_profile")
|
||||
assert(profile != null and profile.is_light())
|
||||
assert(is_equal_approx(root.scaling_3d_scale, 0.5))
|
||||
assert(is_equal_approx(root.scaling_3d_scale, 0.375))
|
||||
var pixelation: Node = main.get_node("%WorldPixelationPostprocess")
|
||||
assert(bool(pixelation.call("is_light_performance_profile")))
|
||||
pixelation.call("set_gameplay_active", true)
|
||||
|
|
@ -118,6 +118,21 @@ func _validate_main_profile(main: Node) -> void:
|
|||
"scroll_velocity_pixels"
|
||||
) == Vector2.ZERO
|
||||
)
|
||||
var game_ui := main.get_node("%GameUI") as GameUI
|
||||
var title_screen := game_ui.get_title_screen()
|
||||
assert(title_screen != null)
|
||||
assert(not title_screen.is_decorative_presentation_active())
|
||||
var player_menu := game_ui.get("_player_menu") as PlayerMenu
|
||||
assert(player_menu != null)
|
||||
assert(not player_menu.is_cooler_water_effect_enabled())
|
||||
assert((main.get_node("%TitleMusic") as AudioStreamPlayer).stream == null)
|
||||
assert((main.get_node("%DuskMusic") as AudioStreamPlayer).stream == null)
|
||||
assert(
|
||||
(main.get_node("%WavesAudio") as AudioStreamPlayer).stream == null
|
||||
)
|
||||
assert(
|
||||
(main.get_node("RainAmbience") as AudioStreamPlayer).stream == null
|
||||
)
|
||||
|
||||
|
||||
func _validate_normal_profile(main: Node) -> void:
|
||||
|
|
@ -141,6 +156,10 @@ func _validate_normal_profile(main: Node) -> void:
|
|||
assert(_count_foliage_wind_overrides(
|
||||
island.get_node("Terrain/Visual")
|
||||
) > 0)
|
||||
var game_ui := main.get_node("%GameUI") as GameUI
|
||||
var player_menu := game_ui.get("_player_menu") as PlayerMenu
|
||||
assert(player_menu != null)
|
||||
assert(player_menu.is_cooler_water_effect_enabled())
|
||||
|
||||
var title_background := main.get_node("%TitleBackground") as ColorRect
|
||||
var title_material := title_background.material as ShaderMaterial
|
||||
|
|
@ -167,6 +186,14 @@ func _validate_normal_profile(main: Node) -> void:
|
|||
var rain := visuals.get_node("LocalRain") as GPUParticles3D
|
||||
assert(rain.amount == WorldTimeVisualController.RAIN_PARTICLE_AMOUNT)
|
||||
assert(rain.fixed_fps == 30)
|
||||
assert((main.get_node("%TitleMusic") as AudioStreamPlayer).stream != null)
|
||||
assert((main.get_node("%DuskMusic") as AudioStreamPlayer).stream != null)
|
||||
assert(
|
||||
(main.get_node("%WavesAudio") as AudioStreamPlayer).stream != null
|
||||
)
|
||||
assert(
|
||||
(main.get_node("RainAmbience") as AudioStreamPlayer).stream != null
|
||||
)
|
||||
|
||||
|
||||
func _validate_ocean_fishing_coverage(
|
||||
|
|
@ -222,8 +249,8 @@ func _validate_minimal_weather(main: Node) -> void:
|
|||
var rain := visuals.get_node("LocalRain") as GPUParticles3D
|
||||
assert(rain.amount == WorldTimeVisualController.LIGHT_RAIN_PARTICLE_AMOUNT)
|
||||
assert(rain.fixed_fps == WorldTimeVisualController.LIGHT_RAIN_FIXED_FPS)
|
||||
assert(rain.amount == 128)
|
||||
assert(rain.fixed_fps == 12)
|
||||
assert(rain.amount == 48)
|
||||
assert(rain.fixed_fps == 8)
|
||||
var clouds := visuals.get_node("LocalStormClouds") as LocalStormCloudLayer
|
||||
assert(clouds.get_patch_count() == 1)
|
||||
var ceiling := clouds.get_node("CloudCeiling") as MeshInstance3D
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ func _run() -> void:
|
|||
root.add_child(controller)
|
||||
await process_frame
|
||||
assert(runtime_audio.bus == &"Environment")
|
||||
assert(runtime_audio.stream == null)
|
||||
controller.set_audio_enabled(true)
|
||||
assert(controller.near_distance < controller.far_distance)
|
||||
assert(controller.near_volume_db > controller.far_volume_db)
|
||||
var runtime_waves := runtime_audio.stream as AudioStreamWAV
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue