This repository was archived by the owner on Feb 25, 2025. It is now read-only.
[Impeller] Allow for the specification of pipeline stage information at runtime.#33882
Merged
chinmaygarde merged 3 commits intoflutter:mainfrom Jun 14, 2022
Merged
Conversation
Contributor
Author
|
The new ImpellerC flags may change but this portion of the work is good for review. |
zanderso
approved these changes
Jun 7, 2022
|
|
||
| namespace impeller { | ||
|
|
||
| static std::atomic_int32_t sValidationLogsDisabledCount = 0; |
Member
There was a problem hiding this comment.
C++ question: Is this because ValidationLog is a struct and so if this were a static member of ValidationLog it would be public?
Contributor
Author
There was a problem hiding this comment.
Right. But I don't see why that would be a problem either.
Member
There was a problem hiding this comment.
If it were public, it would be exposing internal state in a non-OOP-y way.
| include_dirs = [ "$root_gen_dir/flutter" ] | ||
| } | ||
|
|
||
| flatbuffers("runtime_stage_flatbuffers") { |
Contributor
Author
|
This is waiting on me patching the licenses for Flatbuffers and updating the buildroot dep. |
…at runtime. Towards implementing the FragmentProgram API in Impeller. Specifies an Impeller specific format for data the renderer can use to create pipelines with user supplied shader stages at runtime. The data is in the form of a flatbuffer with a known schema. This patch implements the wire format, creating and loading the program payloads, and creating pipeline state objects using these payloads. If the user supplied SPIRV intended for the older API, the loader will reject this invalid payload. This is probably not going to be too much of an issue because the FragmentProgram API will probably be modified to only allow buffers loaded from asset managers. But still, in the meantime, I am using the old API to pass these new buffers. Fixes flutter/flutter#104750 Fixes flutter/flutter#105542 Towards resolving flutter/flutter#102853
09d1ef6 to
5ed1935
Compare
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Jun 14, 2022
…rmation at runtime. (flutter/engine#33882)
houhuayong
pushed a commit
to houhuayong/engine
that referenced
this pull request
Jun 21, 2022
…at runtime. (flutter#33882) Towards implementing the FragmentProgram API in Impeller. Specifies an Impeller specific format for data the renderer can use to create pipelines with user supplied shader stages at runtime. The data is in the form of a flatbuffer with a known schema. This patch implements the wire format, creating and loading the program payloads, and creating pipeline state objects using these payloads. If the user supplied SPIRV intended for the older API, the loader will reject this invalid payload. This is probably not going to be too much of an issue because the FragmentProgram API will probably be modified to only allow buffers loaded from asset managers. But still, in the meantime, I am using the old API to pass these new buffers. Fixes flutter/flutter#104750 Fixes flutter/flutter#105542 Towards resolving flutter/flutter#102853
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Towards implementing the FragmentProgram API in Impeller.
Specifies an Impeller specific format for data the renderer can use to create
pipelines with user supplied shader stages at runtime.
The data is in the form of a flatbuffer with a known schema.
This patch implements the wire format, creating and loading the program
payloads, and creating pipeline state objects using these payloads.
If the user supplied SPIRV intended for the older API, the loader will reject
this invalid payload. This is probably not going to be too much of an issue
because the FragmentProgram API will probably be modified to only allow buffers
loaded from asset managers. But still, in the meantime, I am using the old API
to pass these new buffers.
Fixes flutter/flutter#104750
Fixes flutter/flutter#105542
Towards resolving flutter/flutter#102853