mirror of
https://github.com/gopher64/gopher64.git
synced 2026-04-25 06:55:58 +03:00
[GH-ISSUE #306] Request: Shader support #27
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/gopher64#27
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Originally created by @r2rX on GitHub (Mar 7, 2025).
Original GitHub issue: https://github.com/gopher64/gopher64/issues/306
Would be great to eventually have support for (RetroArch) SPIRV shader support (for CRT shaders etc). Otherwise, keep up the great work!
@loganmc10 commented on GitHub (Mar 7, 2025):
Thanks, if anyone sees this and wants to give it a try, I assume it is just a matter of adding additional rendering passes here:
github.com/gopher64/gopher64@f6b2342e0e/parallel-rdp/interface.cpp (L340-L405)crt-aperture is probably a good first test, since it is just a single pass: https://github.com/libretro/slang-shaders/blob/master/crt/shaders/crt-aperture.slang
@loganmc10 commented on GitHub (Mar 10, 2025):
I don't always have the best eye for this, @r2rX can you try this build and let me know how the CRT shader looks?
https://github.com/gopher64/gopher64/actions/runs/13766727477
Implementing support for every RetroArch shader would be a very large amount of work, but adding support for a single pass CRT shader is doable.
@r2rX commented on GitHub (Mar 10, 2025):
Hey @loganmc10. The shader appears to be working.
Apply CRT shader on:

Apply CRT shader off:

As a default shader preset, it definitely helps. Of course, desired CRT shader outputs vary from individual preferences/tastes. Out of curiosity, is it technically possible to be able to load (multi or) single pass shaders externally? If not, personally, I'd suggest CRT Royale as a good all-round default preset (although it's multi-pass and might be complicated to get right considering all the tweaks that are possible).
However, this embedded shader does a reasonable job. Cheers!
@loganmc10 commented on GitHub (Mar 10, 2025):
Not really. I used crt-aperture from RetroArch because it is a fairly simple single-pass shader, and I had to modify it a bit.
Supporting more complex shaders like CRT Royale would probably mean integrating librashader (https://github.com/SnowflakePowered/librashader). This is possible, but not really a project I would take up. If someone else wants to do it though, I'd be happy to accept a pull request.
@r2rX commented on GitHub (Mar 10, 2025):
Fair enough. The crt-aperature shader you embedded makes a difference so it's suitable as the default shader provided. Thank you for taking the time and effort towards this.