Add shader non-uniform indexing support #91

Merged
greem merged 1 commit from AsperTheDog/Ryubing:master into master 2026-05-14 08:59:12 +00:00
Contributor

This PR marks ALL texture indexes as nonuniform to fix an issue with the paths in Tomodachi Life: Living the Dream on AMD cards. It should have a negligible impact on performance (and it should not have an impact at all in Nvidia cards)

It's caused by what is called implicit non-uniform sampler array indexing. The idea is basically that some GPUs optimize texture lookups from indexed texture arrays by assuming that you are never going to index different textures within a single workgroup. What this causes is that visual glitch where a subgroup is tasked with rendering a block of the screen, and in the boundaries some cores are indexing the wrong texture.

This PR marks ALL texture indexes as nonuniform to fix an issue with the paths in Tomodachi Life: Living the Dream on AMD cards. It should have a negligible impact on performance (and it should not have an impact at all in Nvidia cards) It's caused by what is called implicit non-uniform sampler array indexing. The idea is basically that some GPUs optimize texture lookups from indexed texture arrays by assuming that you are never going to index different textures within a single workgroup. What this causes is that visual glitch where a subgroup is tasked with rendering a block of the screen, and in the boundaries some cores are indexing the wrong texture.
Add shader non-uniform indexing support
Some checks failed
Pull Request Triage / triage (pull_request_target) Successful in 13s
Build PR / linux-arm64 (Release) (pull_request) Has been cancelled
Build PR / linux-x64 (Release) (pull_request) Has been cancelled
Build PR / win-x64 (Release) (pull_request) Has been cancelled
Build PR / macOS Universal (Release) (pull_request) Has been cancelled
bd6b0dc7b8
Merge pull request 'Input: Implement HD Rumble for compatible Nin devices (#40)' (#1) from projects/Ryubing:master into master
All checks were successful
Build PR / linux-arm64 (Release) (pull_request) Successful in 4m43s
Build PR / linux-x64 (Release) (pull_request) Successful in 8m37s
Build PR / win-x64 (Release) (pull_request) Successful in 8m15s
Build PR / macOS Universal (Release) (pull_request) Successful in 7m16s
d2291fcac8
Reviewed-on: AsperTheDog/Ryubing#1
greem force-pushed master from d2291fcac8
All checks were successful
Build PR / linux-arm64 (Release) (pull_request) Successful in 4m43s
Build PR / linux-x64 (Release) (pull_request) Successful in 8m37s
Build PR / win-x64 (Release) (pull_request) Successful in 8m15s
Build PR / macOS Universal (Release) (pull_request) Successful in 7m16s
to 7bb6df9ade
Some checks failed
Build PR / linux-x64 (Release) (pull_request) Failing after 1m47s
Build PR / win-x64 (Release) (pull_request) Failing after 1m48s
Build PR / macOS Universal (Release) (pull_request) Has been cancelled
Build PR / linux-arm64 (Release) (pull_request) Has been cancelled
2026-05-14 08:53:40 +00:00
Compare
greem merged commit c0078088dd into master 2026-05-14 08:59:12 +00:00
First-time contributor

Is there any reason this is forced instead of user-config? As far as I can tell, this is the only forced extension used in every shader now - seems a bit wasteful.

Is there any reason this is forced instead of user-config? As far as I can tell, this is the only forced extension used in every shader now - seems a bit wasteful.
Ghost added this to the 1.4.0 milestone 2026-06-27 17:13:55 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
projects/Ryubing!91
No description provided.