Screen filters (CRT, Scanlines, Film) in the Graphics tab, and the free camera hides the HUD #1488
Open
KrysGG wants to merge 7 commits from
KrysGG/feat/cheats-mods into main
pull from: KrysGG/feat/cheats-mods
merge into: MagicBeanDev:main
MagicBeanDev:main
MagicBeanDev:github/pr/2893
MagicBeanDev:github/pr/2890
MagicBeanDev:github/pr/2887
MagicBeanDev:github/pr/2878
MagicBeanDev:github/pr/2875
MagicBeanDev:github/pr/2874
MagicBeanDev:github/pr/2873
MagicBeanDev:github/pr/2871
MagicBeanDev:github/pr/2756
MagicBeanDev:github/pr/2897
MagicBeanDev:github/pr/2896
MagicBeanDev:github/pr/2718
MagicBeanDev:github/pr/2842
MagicBeanDev:github/pr/2691
MagicBeanDev:github/pr/2895
MagicBeanDev:github/pr/2743
MagicBeanDev:github/pr/2765
MagicBeanDev:github/pr/2708
MagicBeanDev:github/pr/2732
MagicBeanDev:github/pr/2755
MagicBeanDev:github/pr/2817
MagicBeanDev:github/pr/2876
MagicBeanDev:release-please--branches--main
MagicBeanDev:release-please--branches--main--release-notes
MagicBeanDev:github/pr/2778
MagicBeanDev:github/pr/2888
MagicBeanDev:github/pr/2866
MagicBeanDev:github/pr/2877
MagicBeanDev:github/pr/2800
MagicBeanDev:github/pr/2829
MagicBeanDev:github/pr/2850
MagicBeanDev:github/pr/2889
MagicBeanDev:github/pr/2882
MagicBeanDev:github/pr/2860
MagicBeanDev:github/pr/2849
MagicBeanDev:github/pr/2886
MagicBeanDev:github/pr/2794
MagicBeanDev:github/pr/2840
MagicBeanDev:github/pr/2830
MagicBeanDev:github/pr/2834
MagicBeanDev:github/pr/2719
MagicBeanDev:github/pr/2742
MagicBeanDev:github/pr/2741
MagicBeanDev:github/pr/2820
MagicBeanDev:github/pr/2771
MagicBeanDev:github/pr/2859
MagicBeanDev:github/pr/2858
MagicBeanDev:github/pr/2823
MagicBeanDev:github/pr/2757
MagicBeanDev:github/pr/2769
MagicBeanDev:github/pr/2844
MagicBeanDev:github/pr/2843
MagicBeanDev:github/pr/2673
MagicBeanDev:github/pr/2855
MagicBeanDev:github/pr/2739
MagicBeanDev:github/pr/2807
MagicBeanDev:github/pr/2851
MagicBeanDev:github/pr/2789
MagicBeanDev:github/pr/2814
MagicBeanDev:github/pr/2818
MagicBeanDev:github/pr/2774
MagicBeanDev:github/pr/2772
MagicBeanDev:github/pr/2750
MagicBeanDev:github/pr/2786
MagicBeanDev:github/pr/2785
MagicBeanDev:github/pr/2782
MagicBeanDev:github/pr/2779
MagicBeanDev:github/pr/2775
MagicBeanDev:github/pr/2706
MagicBeanDev:github/pr/2766
MagicBeanDev:github/pr/2747
MagicBeanDev:github/pr/2759
MagicBeanDev:github/pr/2745
MagicBeanDev:github/pr/2740
MagicBeanDev:github/pr/2733
MagicBeanDev:github/pr/2725
MagicBeanDev:github/pr/2727
MagicBeanDev:github/pr/2728
MagicBeanDev:github/pr/2729
MagicBeanDev:github/pr/2721
MagicBeanDev:github/pr/2722
MagicBeanDev:github/pr/2715
MagicBeanDev:github/pr/2714
MagicBeanDev:github/pr/2707
MagicBeanDev:github/pr/2703
MagicBeanDev:github/pr/2705
MagicBeanDev:github/pr/2697
MagicBeanDev:github/pr/2679
MagicBeanDev:github/pr/2676
MagicBeanDev:github/pr/2669
MagicBeanDev:docs/what-hookshot-connects-to
MagicBeanDev:fix/hdr-encode-test
MagicBeanDev:fix/main-tests
MagicBeanDev:fix/play-cache-files
MagicBeanDev:perf/game-barrier-order
MagicBeanDev:feat/heap-lazy
MagicBeanDev:feat/texture-detail
MagicBeanDev:perf/astc-opaque-bc1
MagicBeanDev:fix/fs-dir-lock
MagicBeanDev:fix/framegen-native-kept
MagicBeanDev:fix/update-no-downgrade
MagicBeanDev:port/k10-gcn-f16-mirrors
MagicBeanDev:fix/framegen-mult-cap
MagicBeanDev:chore/release-as-2.1.1
MagicBeanDev:perf/pcache-load-switch
MagicBeanDev:fix/prepare-progress-log
MagicBeanDev:fix/update-closes-stale-game
MagicBeanDev:fix/hdr-scaled-sampled
MagicBeanDev:perf/first-start-preset
MagicBeanDev:perf/zero-upload
MagicBeanDev:fix/vcore-escape-2s
MagicBeanDev:test/fake-gh-atomic
MagicBeanDev:perf/batch-idle-flush
MagicBeanDev:test/finish-stub-a
MagicBeanDev:chore/record-2.1.0
MagicBeanDev:fix/main-red-tests
MagicBeanDev:fix/test-display-startup-driver-cache
MagicBeanDev:feat/mesh-shader-mode
MagicBeanDev:fix/menu-probes-at-startup
MagicBeanDev:fix/fps-counter-classic
MagicBeanDev:fix/test-log-batch-flake
MagicBeanDev:fix/narrow-screen-hud
MagicBeanDev:ci/prereleases
MagicBeanDev:release/v2.0.15
MagicBeanDev:hotfix/v2.0.15
MagicBeanDev:fix/present-ahead-replay
MagicBeanDev:release/v2.0.13
MagicBeanDev:fix/bracket-paths-2013
MagicBeanDev:fix/hdr-overlays-2013
MagicBeanDev:fix/fps-counter-scale-2013
MagicBeanDev:fix/stick-seen-at-rest
MagicBeanDev:hotfix/menu-fits-screen
MagicBeanDev:fix/f1-always-opens-menu
MagicBeanDev:fix/ini-keep-lines
MagicBeanDev:claude/cranky-pike-7cf247
MagicBeanDev:perf/texture-answer-flat
MagicBeanDev:fix/stamp-test-modules
MagicBeanDev:fix/appimage-fonts
MagicBeanDev:fix/display-awake
MagicBeanDev:release/v2.0.12
MagicBeanDev:fix/discord-windows
MagicBeanDev:rc/v2.0.12-tests
MagicBeanDev:fix/dlss-keep-feature
MagicBeanDev:rc/v2.0.12
MagicBeanDev:button-icons
No reviewers
Labels
Clear labels
accessibility
Barrier affecting people with disabilities
autorelease: pending
autorelease: tagged
bug
Something isn't working
dependencies
Pull requests that update a dependency file
documentation
Improvements or additions to documentation
duplicate
This issue or pull request already exists
enhancement
New feature or request
github_actions
Pull requests that update GitHub Actions code
good first issue
Good for newcomers
help wanted
Extra attention is needed
invalid
This doesn't seem right
question
Further information is requested
testing wanted
wontfix
This will not be worked on
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
Milestone
Clear milestone
No items
No milestone
Assignees
Clear assignees
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!1488
Loading…
Reference in a new issue
No description provided.
Delete branch "KrysGG/feat/cheats-mods"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Two additions:
(This PR first added a Cheats/Mods tab of its own. Once #1485 gave the debug tools their own DEBUG tab, with the free camera in it, I dropped the duplicate free camera row. The filters are a picture setting, so they sit in Graphics after Sharpness, as suggested.)
How
vk_menu.cpp: the two rows in Graphics after Sharpness, outside the Quality preset (preset_exempt). Restart and Quit stay the table's last two rows. Filter strength is a slider (is_slider).vk_draw.cpphud_hidden: whilemenu_free_camera()is on, the draws of the ten programs that draw OoT's HUD and menus are left out. I found them as the programs drawn both in play and behind the item wheel, and checked them withRX_VK_SKIP_FILE: with them out, the world looks the same and no HUD shows.shaders/fg_scale.comp: the filters run in the present's scale pass, after the upscale filter and the sharpen (and over #1352's menu sides). The push block grows by 12 bytes (fx,strength,time) to 32. The film grain's clock ispresents_now / 60. With a filter on, the pass runs even with no upscaling or sharpness, andvk_replay.cpptakes that path for it.upscale_independent_test.cppfor the 32-byte push and the filter alone running the pass.Tested
RTX 5080, Windows 11, 5120x1440:
cheats: free camera at ...in the log), and no hearts, item slots or minimap show. Off brings them back.tests/run_all.py: the same results asmainon this machine.#1352 is merged now; this branch has main merged in. The scale pass's push block holds both: the menu sides and the filter (32 bytes), and the filter goes over the menu sides too.
--Original--

--Filters--
[CRT]

[Film]

#1459 rewrites the entire menu, I can assist rebasing this PR on top of the other (trying to merge ASAP)
Thanks, sounds good! Since #1485 gave the debug tools their own DEBUG tab, this PR only adds two rows there (Screen filter and Filter strength: tx_screen_filter plus is_slider). The rest stays out of the menu: the filters in fg_scale.comp and the scale pass, and the HUD hiding in vk_draw.cpp while the free camera is on. So the rebase on #1459 should be small. I'll update the title and description to match.
Go ahead with #1459 first. Once it's in, I'll rebase this onto it, or take your help if you'd rather, whichever is quicker for you.
The filter pass itself looks right to me: push block 8 to 20 bytes matches the shader, pipe creation, the test and the
pcinitializer; the pass now runs for a filter alone in bothframegen_scaleanddo_present; and theextern int64_t presents_nowsits inmkwvkoutside the unnamed namespace, so it links.Two things before this can merge:
The branch is 145 commits behind main and GitHub reports it as conflicting (
dirty). Main'svk_menu.cpphas changed a lot in that time (the Debug tab's rows were rearranged), so please merge main and re-check the row placement and thekCheatsRow/kQuitRow/kRestartRowcounting. Thefg_scale.comppush block overlap with #1352 you mentioned is the other one to settle, andfg_scale_comp_spv.hwill need regenerating after any shader merge.The description says the Screen filter and Filter strength rows are in the Debug tab, but in this head they are
TAB_GAMEPLAYrows (placed just before Restart and Quit), and the comment above them says "the Gameplay tab's screen filters". Either the description or the tab is stale. If you do want them in Debug, they'd go before that tab's own rows, and the Restart/Quit counting then changes.Nits: the comments in
fg_scale.comp,vk_draw.cppandvk_framegen.cppstill say "Cheats/Mods tab", which no longer exists. I can't verify the ten HUD program keys inhud_hiddenwithout running the game; I'm relying on your RX_VK_SKIP_FILE check. Note it also hides the item wheel's cards while the free camera is on.Thanks! Both points are addressed:
e4ea245). The two rows stayTAB_GAMEPLAY, placed just before Restart and Quit, which are still the table's last two rows. SokQuitRow(the last row) andkRestartRow(the one before) count back correctly.kCheatsRowno longer exists on main.fg_scale_comp_spv.his regenerated after the shader comment change.Nits: the "Cheats/Mods tab" comments in
fg_scale.comp,vk_draw.cppandvk_framegen.cppnow name the Gameplay tab's Screen filter and the Debug tab's Free camera. The description now also says the item wheel's cards hide while the free camera is on.Checked on the new menu (headless,
RX_VK_SHOT_MENU=1): turning on Debug → Free camera hides the hearts, item slots and minimap, and the Gameplay tab shows Screen filter and Filter strength above Restart and Quit.On the
fg_scale.comppush-block overlap with #1352: whichever of the two merges first, I'll merge it into the other and regenerate the header.Maybe should be in graphics tab? also conflicts
Moved both rows to Graphics, right after Sharpness, as you suggested (outside the Quality preset, like Sharpness). Restart and Quit are untouched as the table's last two. Merged main with #1352 in: the scale pass now carries both, with the menu sides and the filter in one 32-byte push block, and the filter drawn over the sides too.
fg_scale_comp_spv.his regenerated. Title and description updated.Thanks for the quick turnaround. Both points from last time are sorted:
P, thepcstruct inframegen_scale,make_pipe(..., 32)and the test's struct all match, and the 1/8 blur dispatch shares the samepc. The filter is applied to the menu sides as well (both the fully outside early-out and the feathered mix).preset_exempt, and Restart and Quit are left alone. They're saved under their name keys (screen_filter,filter_strength). The description now matches.I found nothing new. The CRT curve is applied after the side 3 early return, so the 1/8 picture isn't warped, and the black frame outside the curve is fine. As before, I'm relying on your RX_VK_SKIP_FILE check for the ten HUD keys in
hud_hidden.CI was still pending when I looked. Main currently has a few failing tests of its own (test_recomplauncher_json, test_lift_cleanup_error, nx2/test_draw_parameters, nx2/test_nup_out_of_space), so if those show up here they're not from this PR.
Heads-up: this conflicts with main now. Could you rebase onto main and resolve the conflicts? Thanks!
This was approved at
5e71aeb, but main has moved about 445 commits since. A merge now conflicts infg_scale.comp,fg_scale_comp_spv.h,vk_draw.cpp,vk_menu.cppandvk_replay.cpp. The last CI run failed onnx2/test_draw_parameters.py(Linux) andnx2/test_nup_out_of_space.py(Windows). Neither touches your files; both were failing on main at that point.When you rebase
fg_scale.comp, note that main now compiles it twice. The second variant isFG_SCALE_PQ(rgb10_a2dst, the game's native HDR10 PQ codes; #2038 and #2342). As written,screen_fxwould multiply PQ codes for the scanlines, mask and vignette. That gives a much stronger, non-linear darkening than in SDR. Either skip the filter in the PQ variant or apply it in linear light. Please also regenerate both SPIR-V headers.Main's title check will run on the rebase, so the title needs a conventional-commit prefix, e.g.
feat(vk):. Thehud_hiddenpart still applies: nothing on main hides the HUD under the free camera.