Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upEnforce async scene building #2992
Merged
+30
−70
Conversation
|
|
The reftest was failing because we don't update the scene builder's |
|
@bors-servo r+ |
|
|
bors-servo
added a commit
that referenced
this pull request
Aug 30, 2018
Enforce async scene building Make async scene building mandatory. There are some simplifications we can get out of doing this that I want to take advantage of for the async tab switch work. This is a first step that enforces that all transactions which invalidate the scene must go through the scene builder thread. More stuff coming. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/2992) <!-- Reviewable:end -->
|
|
bors-servo
added a commit
that referenced
this pull request
Sep 4, 2018
Move the pending scene data structure to the SceneBuilder thread This PR reorganizes the code in the render backend and scene builder such that: - The render backend now only manages a single scene per document: the one it can use for frame building. - The scene builder now manages a scene per document and uses it to generate the `FrameBuilder`. - The render backend sends to the scene builder thread the events it needs to keep the Scene data structure up to date. - Transactions have been consolidated around 3 structs: `TransactionMsg` is what the API sends to the render backend, `Transaction` is what the render backend creates and sends to the scene builder thread(s), and `BuiltTransaction` is what the scene builder sends back to the render backend after scene building. These three structs represent the same thing but at different stages of the pipeline. - A *lot* of code was simplified (for example no more calling `update_document` twice with different parameters before and after scene building to have it do different things) This change is needed in order to get the low priority scene building in #2989 to work without requiring extra handshakes between the scene builder and the render backend threads. This is rebased on top of #2992. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/2998) <!-- Reviewable:end -->
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
nical commentedAug 28, 2018
•
edited by larsbergstrom
Make async scene building mandatory. There are some simplifications we can get out of doing this that I want to take advantage of for the async tab switch work.
This is a first step that enforces that all transactions which invalidate the scene must go through the scene builder thread. More stuff coming.
This change is