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

Hardware blending #3

Open
Chlumsky-Ceros opened this issue Feb 17, 2023 · 0 comments
Open

Hardware blending #3

Chlumsky-Ceros opened this issue Feb 17, 2023 · 0 comments
Assignees
Labels
performance A performance optimization

Comments

@Chlumsky-Ceros
Copy link
Contributor

Optimize most blending and other compositing operations so that a new framebuffer is not required, and instead elements are blended into the existing destination. However, some major problems must be solved first:

  • Destructive modifications in render graph - the current paradigm is that all intermediate images are final. This will no longer hold true and all components of the project must be ready for this, including RGI. The biggest issue here is probably with shared graph nodes, where resulting image is used multiple times.
  • Bounds prediction - a chain of destructive blending operation requires that the original image has the necessary bounds to fit all subsequently blended images. Currently, this is impossible to determine ahead of time without traversing the entire graph.

This is currently the most important optimization as currently the number of shaded pixels is extremely high due to all compositing re-creating each image in at least the resolution of destination, which is often a large background layer.

I would like to also add a shaded pixel counter to compare its value before and after optimization.

Finally, ODE currently assumes that GL_BLEND is disabled (and only enabled temporarily for a few operations). Instead, after this, it can be left in any state and has to be set for each render operation.

@Chlumsky-Ceros Chlumsky-Ceros self-assigned this Feb 17, 2023
@Chlumsky-Ceros Chlumsky-Ceros added the performance A performance optimization label Feb 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance A performance optimization
Projects
None yet
Development

No branches or pull requests

1 participant