Output resolution (2048x1152, 2560x1440, 3840x2160) and a full-size 3D at 4K #849

Merged
BlueHeisenberg merged 1 commit from output-res into main 2026-11-09 01:20:58 +00:00
BlueHeisenberg commented 2026-11-08 23:10:29 +00:00 (Migrated from github.com)

Output resolution

The game's whole frame can be 2048x1152 (the game's default), 2560x1440 or 3840x2160. The game lays out its HUD and its render targets for that size, and the window shows it scaled to the window's size. Docked only; applies after a restart.

Full-size 3D at 3840x2160

The game keeps its render targets in one 305 MB GPU pool sized for 2560x1440, so a 3840x2160 3D (Resolution 100% at the 4K output) would run out of it and the game would crash as gameplay begins. The pool grows with the output's pixels (687 MB at 4K). The "Graphics" module heap that holds the pool grows with it, its budget check counts the shipped use, and the leftover heap carved from it keeps its shipped size. At 2048x1152 and 2560x1440 nothing changes.

Resolution row

A fixed Resolution now reaches the 3D (the fixed path used to keep the dynamic path's last scale). The row shows the 3D's size for the chosen output, in the twelfths the game really draws at, and follows the Output resolution row as soon as it changes.

Menu rows (Graphics tab)

Row Choices
Output resolution 2048x1152, 2560x1440, 3840x2160 (restart)
Resolution Auto, 100/75/67/50% of the output, each shown with its size

With Ultrawide on, the wider picture is made at the chosen output's height.

Overrides: HOS_OUTPUT_RES=0/1/2, HOS_RT_POOL_MB=<MB>; tests: HOS_RES_LOG=1, RX_VK_SHOT_W/H, RX_VK_MENU_SCRIPT, RX_VK_MENU_DUMP.

Tested

On an RTX 5090 (Windows 11): the same 140-second gameplay route at each output with Resolution 100%. No crash and no device lost in any run.

Output 3D Render target pool
2048x1152 2048x1152 305 MB (the game's)
2560x1440 2560x1440 305 MB (the game's)
3840x2160 3840x2160 687 MB

hookshot_vk.dll builds with the llvm-mingw version CI uses (20261104), and the touched files pass a Linux syntax check.

## Output resolution The game's whole frame can be 2048x1152 (the game's default), 2560x1440 or 3840x2160. The game lays out its HUD and its render targets for that size, and the window shows it scaled to the window's size. Docked only; applies after a restart. **Full-size 3D at 3840x2160** The game keeps its render targets in one 305 MB GPU pool sized for 2560x1440, so a 3840x2160 3D (Resolution 100% at the 4K output) would run out of it and the game would crash as gameplay begins. The pool grows with the output's pixels (687 MB at 4K). The "Graphics" module heap that holds the pool grows with it, its budget check counts the shipped use, and the leftover heap carved from it keeps its shipped size. At 2048x1152 and 2560x1440 nothing changes. **Resolution row** A fixed Resolution now reaches the 3D (the fixed path used to keep the dynamic path's last scale). The row shows the 3D's size for the chosen output, in the twelfths the game really draws at, and follows the Output resolution row as soon as it changes. **Menu rows (Graphics tab)** | Row | Choices | |---|---| | Output resolution | 2048x1152, 2560x1440, 3840x2160 (restart) | | Resolution | Auto, 100/75/67/50% of the output, each shown with its size | With Ultrawide on, the wider picture is made at the chosen output's height. **Overrides:** `HOS_OUTPUT_RES=0/1/2`, `HOS_RT_POOL_MB=<MB>`; tests: `HOS_RES_LOG=1`, `RX_VK_SHOT_W/H`, `RX_VK_MENU_SCRIPT`, `RX_VK_MENU_DUMP`. ## Tested On an RTX 5090 (Windows 11): the same 140-second gameplay route at each output with Resolution 100%. No crash and no device lost in any run. | Output | 3D | Render target pool | |---|---|---| | 2048x1152 | 2048x1152 | 305 MB (the game's) | | 2560x1440 | 2560x1440 | 305 MB (the game's) | | 3840x2160 | 3840x2160 | 687 MB | `hookshot_vk.dll` builds with the llvm-mingw version CI uses (20261104), and the touched files pass a Linux syntax check.
hckrman101 (Migrated from github.com) approved these changes 2026-11-08 23:16:54 +00:00
shayderrr commented 2026-11-09 01:20:54 +00:00 (Migrated from github.com)

Thanks!

Thanks!
Commenting is not possible because the repository is archived.
No description provided.