-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Layer composition rendering using RenderPass, optimization #4317
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To infinity and beyond!
render() { | ||
|
||
const device = this.device; | ||
const realPass = this.renderTarget !== undefined; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const realPass = this.renderTarget !== undefined; | |
const realPass = this.renderTarget !== null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same as above. null is a valid 'render target' (a default framebuffer), which is not the same as undefined, which represents no render target.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still wondering ab this one?
Co-authored-by: Donovan Hutchence <slimbuck7@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving based on a layout + spelling + grammar pass. 😄 I'll leave a technical approval to @slimbuck.
Co-authored-by: Will Eastcott <will@playcanvas.com>
Co-authored-by: Will Eastcott <will@playcanvas.com>
Co-authored-by: Will Eastcott <will@playcanvas.com>
Co-authored-by: Will Eastcott <will@playcanvas.com>
Co-authored-by: Will Eastcott <will@playcanvas.com>
related to issue: #4271
follow up on PR: #4272
partially implements #2396
new (private) APIs:
This PR further implements the FrameGraph / RenderPass rendering architecture, specifically:
The benefits are mostly visible in projects that render to textures, especially if multi-sampling is used, including rendering to cubemaps.
GPU Performance improvement on some engine examples:
![Screenshot 2022-06-10 at 09 55 41](https://user-images.githubusercontent.com/59932779/173031488-264bbd19-ccf1-4fd4-95d9-68ac539d39f3.png)
Other changes
log tracing added for render passes:
![Screenshot 2022-06-10 at 09 51 28](https://user-images.githubusercontent.com/59932779/173032824-903753f1-2d36-48cf-99f5-76e7187d244f.png)
log tracing added for texture / render target allocation / deallocation
![Screenshot 2022-06-10 at 09 54 17](https://user-images.githubusercontent.com/59932779/173032890-2873fe11-194c-4681-bc49-b6d866e90f29.png)