-
Notifications
You must be signed in to change notification settings - Fork 236
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
Optimize composite compute shader #90
Comments
Oh, and given we're often doing 2 or 3 layers where the upper layers have smaller extents than the base, like when a cursor, notification, or both are overlaid: see if there's cute stuff we can do with checking layer extents to short-circuit the border sample in a way that ends up quicker. There ways to only do that once per wave I think. |
How to test the small-extent overlay optimization case: making sure the optimization helps for a game with a cursor like Factorio, but doesn't hurt when the Steam BP overlay is fully up in a SteamOS session scenario ( gamescope -e -- steam -tenfoot -steamos ). Ideally the first case is almost as quick as only compositing one layer, where the second is not any slower than fully compositing two layers without any extra branches. |
Other ideas to reduce bandwidth use: avoid sampling alpha for the base layer (it should not be needed for anything), avoid storing alpha for the target composite buffer. |
Also, seems like we might not need any extent optimization for small overlay layers like cursors/notifications. Need to confirm further, but it seems like compositing the Factorio cursor was quicker than a full overlay layer. Most of the sampling is done outside of the texture border, so it makes sense that this would not involve memory bandwidth. |
We ideally won't have to use it in the embedded case once we get layers going, but wouldn't hurt in the meantime and for nested.
We'd need to:
The text was updated successfully, but these errors were encountered: