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 upEnsure transactions that request a frame always get forwarded to the renderer. #3036
Conversation
…frame is requested. Gecko currently depends on transactions that request a frame to go all the way to the renderer and send back notifications that the frame is rendered. If such a notification gets lost, Gecko might wait forever that the frame get rendered before sending another frame request which means nothing ever gets rendered again. This ensures we forward the information to the renderer even if for some reason we skipped building the frame, which tends to happen at stratup on Windows.
…ne builder.
|
The first commit in this PR is already reviewed and landing in Gecko, it should fix the Windows bustage. The second commit makes extra sure we don't skip |
|
@bors-servo r+ |
|
|
bors-servo
added a commit
that referenced
this pull request
Sep 10, 2018
Ensure transactions that request a frame always get forwarded to the renderer. Gecko depends on transactions that request frames to be passed all the way to the renderer, even if the frame can't be built or doesn't need to be built (nothing visibly changed). If one of these transaction is dropped before getting to the renderer, Gecko might wait for the notification that this transaction was rendered forever and not send new frames, and nothing ever gets rendered again. This type of race tends to manifest itself on windows a lot more than on other platforms, probably because of the way the GPU process affects timings. <!-- 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/3036) <!-- 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 commentedSep 10, 2018
•
edited by larsbergstrom
Gecko depends on transactions that request frames to be passed all the way to the renderer, even if the frame can't be built or doesn't need to be built (nothing visibly changed). If one of these transaction is dropped before getting to the renderer, Gecko might wait for the notification that this transaction was rendered forever and not send new frames, and nothing ever gets rendered again.
This type of race tends to manifest itself on windows a lot more than on other platforms, probably because of the way the GPU process affects timings.
This change is