-
Notifications
You must be signed in to change notification settings - Fork 136
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
Fixes to winding number accumulation #391
Merged
Commits on Oct 17, 2023
-
Prototype 8 bit winding number accumulation
Changes the winding number accumulation in msaa8 mode to 8 bits per sample. This is prototype code and currently breaks the msaa16 mode; it is intended to diagnose whether the artifacts are strictly due to overflow, and to point the way to a real implementation. Prefix sums in both x and y direction are a little cleaner, avoiding a race (not UB because it's atomics).
Configuration menu - View commit details
-
Copy full SHA for 260e7af - Browse repository at this point
Copy the full SHA 260e7afView commit details
Commits on Oct 21, 2023
-
Make msaa16 mode use 8 bit accumulation
This patch makes the msaa16 mode work again, using 8 bit accumulation of winding numbers. It could be merged to fix the artifacts in the cardioid example. Also, it's worth doing some evaluation to see how much performance slowdown there is. As future work, we probably want to be adaptive and use 8 bit accumulation when needed. If the performance hit from reduced occupancy due to the increased shared memory usage is significant, then we could consider other mitigations, including downgrading to msaa8 when overflow is possible.
Configuration menu - View commit details
-
Copy full SHA for 37fb5c8 - Browse repository at this point
Copy the full SHA 37fb5c8View commit details
Commits on Oct 24, 2023
-
Create a specialized version of the fill function for the even-odd fill rule. The logic is simpler (and faster) because winding number accumulation can happen in one bit. There's a bunch of code duplication which can be cleaned up. It's expected this will have a merge conflict with #382. If that's merged first, I'll happily fix this one.
Configuration menu - View commit details
-
Copy full SHA for 6aec62c - Browse repository at this point
Copy the full SHA 6aec62cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 39fbbb2 - Browse repository at this point
Copy the full SHA 39fbbb2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b67759e - Browse repository at this point
Copy the full SHA b67759eView commit details
Commits on Oct 25, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f4119ea - Browse repository at this point
Copy the full SHA f4119eaView commit details
Commits on Oct 27, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 303764a - Browse repository at this point
Copy the full SHA 303764aView commit details -
I did my best to document some of the strange bit magic used in the algorithm. I also did just a bit of renaming to make things simpler, and for the mask expansion replaced `|` with `^` because it's easier to understand in terms of carry-less multiplication (and I expect performance to be identical).
Configuration menu - View commit details
-
Copy full SHA for 75054b0 - Browse repository at this point
Copy the full SHA 75054b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a80c89 - Browse repository at this point
Copy the full SHA 7a80c89View commit details
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.