Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fragment "ubershader" option #17449

Merged
merged 4 commits into from May 25, 2023
Merged

Fragment "ubershader" option #17449

merged 4 commits into from May 25, 2023

Conversation

hrydgard
Copy link
Owner

@hrydgard hrydgard commented May 10, 2023

When off, this almost claws back all the last remaining lost performance from 1.14 on low-end hardware (see #17439 )

When on, this keeps these two shader states (double flag and texalpha) dynamic, keeping the shader count low, and no noticable penalty on mid/high-range that I can see.

We'll set this automatically with some heuristics. Maybe make it configurable at some point.

I'm going to see if we can do without a bitfield to configure this, which makes it friendly towards older GPUs.

TODO in future PRs:

  • Move fog and fragment lmode in under this flag, making them dynamic again for lower shader count
  • Make even more fragment state dynamic?

@hrydgard hrydgard added the GE emulation Backend-independent GPU issues label May 10, 2023
@hrydgard hrydgard added this to the v1.16.0 milestone May 10, 2023
@hrydgard hrydgard force-pushed the fragment-ubershader branch 2 times, most recently from 6966610 to 0aef258 Compare May 23, 2023 07:11
@hrydgard hrydgard marked this pull request as ready for review May 23, 2023 07:12
@hrydgard hrydgard merged commit b6c3ffe into master May 25, 2023
20 checks passed
@hrydgard hrydgard deleted the fragment-ubershader branch May 25, 2023 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GE emulation Backend-independent GPU issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant