[GH-ISSUE #306] Request: Shader support #27

Closed
opened 2026-03-03 13:45:07 +03:00 by kerem · 5 comments
Owner

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!

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!
kerem 2026-03-03 13:45:07 +03:00
Author
Owner

@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

<!-- gh-comment-id:2706355042 --> @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: https://github.com/gopher64/gopher64/blob/f6b2342e0e99094c0da52a1abffe7940ce4a5537/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
Author
Owner

@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.

<!-- gh-comment-id:2710389454 --> @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.
Author
Owner

@r2rX commented on GitHub (Mar 10, 2025):

Hey @loganmc10. The shader appears to be working.

Apply CRT shader on:
Image

Apply CRT shader off:
Image

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!

<!-- gh-comment-id:2710476217 --> @r2rX commented on GitHub (Mar 10, 2025): Hey @loganmc10. The shader appears to be working. Apply CRT shader on: ![Image](https://github.com/user-attachments/assets/efd0a9f5-a7ae-4bc3-a7c2-3d06ce1d75e0) Apply CRT shader off: ![Image](https://github.com/user-attachments/assets/54141f63-07f7-48fa-ae31-092af3bbfd9b) 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!
Author
Owner

@loganmc10 commented on GitHub (Mar 10, 2025):

Out of curiosity, is it technically possible to be able to load (multi or) single pass shaders externally?

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.

<!-- gh-comment-id:2710507651 --> @loganmc10 commented on GitHub (Mar 10, 2025): > Out of curiosity, is it technically possible to be able to load (multi or) single pass shaders externally? 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.
Author
Owner

@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.

<!-- gh-comment-id:2710525890 --> @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.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
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
starred/gopher64#27
No description provided.