-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller Scene] Make Geometry/Materials own command binding behavior #38437
Conversation
|
It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
impeller/scene/pipeline_key.h
Outdated
| }; | ||
|
|
||
| struct PipelineKey { | ||
| GeometryType geometry_type; |
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.
Nit: Let's default this.
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.
Done.
impeller/scene/scene_context.h
Outdated
|
|
||
| if (auto found = container.find(opts); found != container.end()) { | ||
| return found->second->WaitAndGet(); | ||
| class PipelineCollection { |
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.
PipelineLibrary maybe for consistency with impeller/entity.
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.
I renamed this to PipelineVariants to more closely resemble the Entities terminology since it just encapsulates the variants for one set of stages. I'm trying to avoid overloading PipelineLibrary (perhaps to my detriment).
29884c8 to
53c3633
Compare
53c3633 to
084725b
Compare
…117489) * 23a56ee9d Roll Skia from 7ad6f27aff57 to 239a9199a3d9 (5 revisions) (flutter/engine#38450) * 84ba80331 [Impeller Scene] Make Geometry/Materials own command binding behavior (flutter/engine#38437)
…lutter#117489) * 23a56ee9d Roll Skia from 7ad6f27aff57 to 239a9199a3d9 (5 revisions) (flutter/engine#38450) * 84ba80331 [Impeller Scene] Make Geometry/Materials own command binding behavior (flutter/engine#38437)
…lutter#117489) * 23a56ee9d Roll Skia from 7ad6f27aff57 to 239a9199a3d9 (5 revisions) (flutter/engine#38450) * 84ba80331 [Impeller Scene] Make Geometry/Materials own command binding behavior (flutter/engine#38437)
This is a prerequisite to landing more vertex layouts (like for skinned meshes) and more materials (PBR). The encoder is now responsible for resolving the command's pipeline using a key that roughly (but not necessarily) maps to the shaders.