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

[Flutter GPU] Shader bundle improvements: Uniform structs & member offset reflection, GLES metadata, separate from runtime stage. #49485

Merged
merged 4 commits into from
Jan 8, 2024

Conversation

bdero
Copy link
Member

@bdero bdero commented Jan 3, 2024

  • Switch from legacy uniform semantics to uniform structs.
  • Completely separate shader bundle from runtime stage.
  • Packing multiple backends per shader.
  • Pack struct and member fields into the shader bundle flatbuffer.
  • Bind uniforms with correct metadata for GLES.
  • Add uniform struct size and member offset reflection.

@bdero bdero changed the title [Flutter GPU] Pack multiple backends in shader bundles. [Flutter GPU] Shader bundle improvements: Uniform structs & member offset reflection, GLES metadata, separate from runtime stage. Jan 3, 2024
@bdero bdero force-pushed the bdero/flutter-gpu-uniforms branch 2 times, most recently from fa7ccf1 to f3de8ba Compare January 5, 2024 09:27
Add ShaderBundleData

Pack struct and member fields into the shader bundle flatbuffer

Unpack new shader bundle

Wire up new uniforms
@bdero bdero force-pushed the bdero/flutter-gpu-uniforms branch from 8d620d8 to 65d5c56 Compare January 7, 2024 08:50
@bdero
Copy link
Member Author

bdero commented Jan 8, 2024

Okay, this is finally at a point where I'm mostly happy with it. I need to get a much less trivial example going to feel out how a fuller runtime reflection would work, if any (same would go for utilities like a swapchain/surface helper). Technically we don't actually need member reflection at all, since member alignment should be stable across the backends.

@bdero bdero marked this pull request as ready for review January 8, 2024 18:27
Copy link
Member

@jonahwilliams jonahwilliams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@bdero bdero merged commit 00ff332 into flutter:main Jan 8, 2024
27 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 8, 2024
… member offset reflection, GLES metadata, separate from runtime stage. (flutter/engine#49485)
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Jan 8, 2024
…141128)

flutter/engine@70c4515...00ff332

2024-01-08 bdero@google.com [Flutter GPU] Shader bundle improvements: Uniform structs & member offset reflection, GLES metadata, separate from runtime stage. (flutter/engine#49485)
2024-01-08 skia-flutter-autoroll@skia.org Roll Skia from 88b7612add02 to a0aba842460c (4 revisions) (flutter/engine#49600)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC rmistry@google.com,zra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

2 participants