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 upIntermittent reftest failure in pixel_snapping_border_a.html #7730
Comments
jdm
commented
Sep 24, 2015
|
Servo's default window size is 800px as set in util::opts::default_ops, but compositor::headless::NullCompositor::create resizes the window to 640px. Perhaps there's a race condition that causes the screenshot to sometimes be taken before this resize and sometimes after. |
Attempts to fix servo#7730.
Use same default window size in headless and non-headless compositor Attempts to fix #7730. r? @mrobinson <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7805) <!-- Reviewable:end -->
This may mitigate race conditions like servo#7730.
Start the constellation with the correct pixel ratio This may mitigate race conditions like #7730. r? @mrobinson <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7808) <!-- Reviewable:end -->
Start the constellation with the correct pixel ratio This may mitigate race conditions like #7730. r? @mrobinson <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7808) <!-- Reviewable:end -->
|
Now we get:
So the heights differ by one pixel now?? |
|
I have no idea where a height of 863 or 864 is coming from. The default window height is 600px and this test sets a 2× scale factor, which should result in a height of 1200 pixels. Possibly relevant? 864 = 600 × 1.44 exactly. |
|
These failures are all in mac-dev-ref-unit, but they happen on both Mac test machines (servo-mac1 and servo-mac2). |
|
Mac seems to use some kind of heuristic to determine where to place new windows. When running several tests in parallel, they can be opened in a way that they are partially off screen. Previously this would result in a similar bug - the output image would be the clipped size. I thought this was fixed by using an FBO to render reftest output on mac. But perhaps this has changed, or perhaps it uses the window size to write the FBO image output, or something like that? |
|
Presumably this test triggers the problem just because its window is so big. Perhaps we can give it a custom window size that's smaller, as a workaround. |
|
Yep - I suspect that's why this test is triggering the bug more often, and that would probably work around it. We should fix the underlying problem too though :) |
|
|
|
I guess the question is what are the value of window width/height in these instances? I would have thought it would be the requested size rather than clipped to the screen. |
|
From the builder in a failing instance:
|
|
In particular, we initialize our
|
|
What I can recall from setting up the mac builders is that if a window appears partially offscreen, the framebuffer created for the window is clipped to the actual visible area. To address this, we set the screen size large enough that ref tests wouldn't appear offscreen. Lars has upgraded the mac builders a few times, so vncing into the mac builders and ensuring they have a large resolution is probably a worthwhile sanity check. I think we only do offscreen rendering on linux. |
Workaround for servo#7730.
Don't check for equal image size and all white pixels for flaky tests. Workaround for #7730. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7916) <!-- Reviewable:end -->
Workaround for #7730. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7920) <!-- Reviewable:end -->
Fixes servo#7907: rendering for unescaped string "<iframe>" in doc webgl: Implement WebGLContextEvent and use it on context creation error spec: https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15 Move code to exit servo after writing a screenshot out of composite_specific_target. The structure of this function was confusing, so move some parts out into the caller where they seem like a more natural fit and add documentation of the functions Remove constellation round trip for subpage mapping in compositor. This makes use of the new functionality that allows iframes to generate their own pipeline IDs in order to remove any knowledge of subpage ids from the compositor. (This is the first of several commits removing subpage from parts of servo). Workaround for servo#7730. Simplify and unify compositor shutdown code paths Unify all compositor shutdown code paths into two methods, one which starts the shutdown and the other that finishes it. This simplifies the way the compositor shuts down and prevents "leaking" pixmaps when exiting in uncommon ways.
|
Hasn't been seen in months, not disabled => close. |