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 upasync scene building: cache collisions from reused picture ids #2769
Labels
Comments
|
To clarify, our render task caching is susceptible to the following key collisions:
Could be trivially solved by tracking the document epoch and adding it as well as the document ID itself to the cache task key. |
|
Ah, I had not realized there was a frame builder per document. A simple solution might be to just make it a global atomic u64 that we use to get the next picture id? |
bors-servo
added a commit
that referenced
this issue
Jun 4, 2018
pipe through a scene_id to distinguish cached pictures fixes #2769 <!-- 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/2776) <!-- Reviewable:end -->
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On my linux machine with async-scene-building, if I open this in one tab:
and then open this in a second tab (identical except the shadow is red):
the second tab has a green shadow, as it is using the cached shadow picture (really the final blur picture) from the other tab.
The issue is that async scene building repeatedly creates new
FrameBuilder::empty()'s, resetting the picture id to 0 and that the picture cache doesn't factor in scene/document id's.