Move particle vertex processing to the GPU#2086
Open
wahfl2 wants to merge 33 commits intoCaffeineMC:devfrom
Open
Move particle vertex processing to the GPU#2086wahfl2 wants to merge 33 commits intoCaffeineMC:devfrom
wahfl2 wants to merge 33 commits intoCaffeineMC:devfrom
Conversation
The item pickup animation is not working for some reason.
61f6015 to
bbd18ab
Compare
Optimize code; fix translucent particles
ed09a66 to
2b84a1e
Compare
|
@douira plans for this? Or is async occlusion first? I can review and rebase the PR if needed. |
Contributor
|
If you or the original author of this PR can rebase it and demonstrate a performance improvement I can consider it for review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently, all particle vertices are processed and rotated on the CPU, before uploading them to a shader to be rendered. Sodium optimizes this slightly with more direct and explicit math operations for more optimization opportunities. However, a lot of vector math is still being done on the CPU.
This PR moves that processing (for most particles) to the GPU in a new shader. Specifically, this PR optimizes billboard particles that haven't overridden the buildGeometry method, which means they face the camera. This is the vast majority of particles, with only a few overrides in vanilla Minecraft (shrieker, elder guardian, etc). The normal particle rendering is still in place for the particles that are built some other way.