Repository navigation
Ocarina of Time starts handheld, with its dynamic resolution and MetalFX for its upscaling pass (profile keys dynamic_resolution, upscaler) - #2314
Open
Fasen24-AI wants to merge 1 commit into
Conversation
…MetalFX for its upscaling pass: profile keys dynamic_resolution and upscaler The launcher's defaults were the host's for every game: docked, full resolution, the game's own upscaling network. For Ocarina of Time that is the heaviest choice in GPU time and in render-target memory, and it is what a player who changes nothing gets, on a 16 GB Mac too. Its profile now starts it on the settings I have measured and played it with: - op_mode handheld (an existing key): the 720p profile, with less vegetation; - dynamic_resolution on (new; DM_GAME_START_DYNAMIC_RESOLUTION): loader.c takes it when DM_DYNAMIC_RESOLUTION is unset; - upscaler metalfx (new; DM_GAME_START_UPSCALE): MetalFX's spatial scaler draws the game's upscaling pass, and the game's own network still does where the GPU has no Metal 4 MetalFX scaler. The two new keys default to off and game, so every other game starts as before. settings.tsv's rows for DM_DYNAMIC_RESOLUTION and DM_UPSCALER take their default from the profile, and the host reads the same macros when the variable is unset, so the window and a start without the launcher agree. A player's saved choices and env files still win, in the order docs/frontends.md gives. Neither key is an input of the shader library: an app built before keeps its shaders, and only the host and launcher.json change. These are the settings of the runs in the reference entry "Render targets a game moved stayed in GPU memory" (M5, 24 GB), on a branch that also draws the full output size (not in main). There is no run of this change alone against the old defaults, and none since 084f5aa made the graphics scale tier 0 in handheld mode too. Front-ends: launcher.json's defaults for DM_DYNAMIC_RESOLUTION and DM_UPSCALER come from the game profile; a front end that shows the list's defaults needs no change. Checked: test_settings (which now also checks this game's upscaler default), test_launcher_settings and test_game_profile pass; the Mac host builds. Not run: the game on main, whose shaders do not convert there since 0662f9d (issue seedds#2272); an iPhone, where the same defaults apply. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014eD437mxrMnW2UwLZhpwc7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
A player who changes nothing starts Ocarina of Time docked, at full resolution, with the game's own upscaling network. On a Mac that is the heaviest choice in GPU time and in render-target memory, on a 16 GB Mac too. I have played it and measured it for weeks on another start: handheld, the game's dynamic resolution on, MetalFX's spatial scaler for the upscaling pass. This makes that the game's own default, from its profile.
op_mode handheld, an existing key: the 720p profile, with less vegetation.dynamic_resolution on, a new key (DM_GAME_START_DYNAMIC_RESOLUTION):loader.ctakes it whenDM_DYNAMIC_RESOLUTIONis unset.upscaler metalfx, a new key (DM_GAME_START_UPSCALE): MetalFX draws the game's upscaling pass, and the game's own network still does where the GPU has no Metal 4 MetalFX scaler.The two new keys default to
offandgame, so every other game starts as before. The launcher rows forDM_DYNAMIC_RESOLUTIONandDM_UPSCALERtake their default from the profile, and the host reads the same macros when the variable is unset, so the window and a start without the launcher agree. A player's saved choices and env files still win. Neither key is an input of the shader library: an app built before keeps its shaders, and only the host andlauncher.jsonchange.On my branch the same start also draws the full output size (
DM_OUTPUT=native), which main does not have; that part is left out here.Checked
test_settings(it now also checks this game's upscaler default),test_launcher_settings,test_game_profile; the Mac host builds.0400486024DEC000, v131072) with these settings, on my branch, for the runs in Render targets a game moved leave GPU memory: ghost serials go with their sharing entry, and an idle sweep (Ocarina of Time, Castle Town) #2312 and in daily play. There is no run of this change alone against the old defaults, and none since 084f5aa made the graphics scale tier 0 in handheld mode too. Not run on main: this game's shaders do not convert there since 0662f9d (Ocarina of Time (0400486024DEC000 v131072, Mac): 22,296 shaders fail to compile in Metal since 0662f9d, dm_blend0'smain0_out&has no address space qualifier #2272).Front ends
Front-ends: interface: launcher.json's defaults for DM_DYNAMIC_RESOLUTION and DM_UPSCALER come from the game profile; a front end that shows the list's defaults needs no change.
Docs
dm/games/README.md's profile table, and the profile says why🤖 Generated with Claude Code
https://claude.ai/code/session_014eD437mxrMnW2UwLZhpwc7