Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run reftests on Windows using ANGLE #2420

Closed
jrmuizel opened this issue Feb 14, 2018 · 11 comments
Closed

Run reftests on Windows using ANGLE #2420

jrmuizel opened this issue Feb 14, 2018 · 11 comments

Comments

@jrmuizel
Copy link
Contributor

@jrmuizel jrmuizel commented Feb 14, 2018

This should let us catch any ANGLE related problem earlier

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Feb 14, 2018

We already have a dev-dependency on ANGLE (so building should already be solved), but so far it’s only used in an ANGLE-specific shader compilation test.

@glennw
Copy link
Member

@glennw glennw commented Feb 14, 2018

This is a duplicate of #1432.

@glennw glennw closed this Feb 14, 2018
@glennw
Copy link
Member

@glennw glennw commented Feb 14, 2018

Well, actually the other bug doesn't mention running reftests - I'll re-open this one and close the other.

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Feb 14, 2018

#2006 (comment)

Wrench uses glutin for initialization, and that one checks for libEGL as of servo/glutin#112 . All you need is to drop Angle's libEGL.dll in the folder with wrench executable.

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Feb 23, 2018

We already have a dev-dependency on ANGLE (so building should already be solved)

I was probably a bit too optimistic there. The crate at https://github.com/servo/angle self-describes as "GLSL parsing and validation library based on ANGLE" so possibly it doesn’t compile all of the relevant code. It also produces a static library, whereas Glutin uses (effectively) LoadLibraryA("libEGL.dll").

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Mar 4, 2018

https://crates.io/crates/mozangle + rust-windowing/glutin#998 should enable running Wrench with ANGLE on Windows in non-headless mode.

However headless mode still uses OSMesa, and our Windows CI doesn’t run reftests at all at the moment. @jrmuizel Did you mean this issue to be about running reftests on CI?

bors-servo added a commit that referenced this issue Mar 6, 2018
Switch from servo/angle to the mozangle crate

https://github.com/servo/mozangle

This is a step towards #2420. (The next step is blocked on rust-windowing/glutin#998.)

<!-- 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/2492)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Mar 6, 2018
Switch from servo/angle to the mozangle crate

https://github.com/servo/mozangle

This is a step towards #2420. (The next step is blocked on rust-windowing/glutin#998.)

<!-- 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/2492)
<!-- Reviewable:end -->
@jrmuizel
Copy link
Contributor Author

@jrmuizel jrmuizel commented Mar 6, 2018

Yes, I'd like to have the reftests running in CI on ANGLE

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Mar 15, 2018

#2529 adds wrench --angle. 7 reftests fail, even with some fuzzy matching:

        reftests\border\border-suite-2.yaml == reftests\border\border-suite-2.png
        reftests\border\dotted-corner-small-radius.yaml == reftests\border\dotted-corner-small-radius.png
        reftests\boxshadow\inset-subpx.yaml == reftests\boxshadow\inset-subpx.png
        reftests\image\downscale.yaml == reftests\image\downscale.png
        reftests\transforms\image-rotated-clip.yaml == reftests\transforms\image-rotated-clip.png
        reftests\transforms\nested-rotate-x.yaml == reftests\transforms\nested-rotate-x.png
        reftests\transforms\nested-preserve-3d.yaml == reftests\transforms\nested-preserve-3d.png

Full output of cargo run --release -- --angle reftest --fuzzy 10: https://gist.github.com/anonymous/fc947365525cd6066b3eb77d10084cdd

@glennw
Copy link
Member

@glennw glennw commented Mar 28, 2018

I opened up the reftest log, and none of the failing tests look completely wrong. Most of them are a lot of subpixel differences compared to the PNG reference images on Linux, which is somewhat expected.

If we disable those tests on Windows temporarily, by adding platform(max,linux) to the reftest.list file for those tests, we should be able to enable windows reftests in CI.

Does that sound correct to you @SimonSapin ?

@glennw
Copy link
Member

@glennw glennw commented Mar 28, 2018

Long term, we need to either use PNG images less often, or support generating them per-platform (probably a combination of both).

@glennw
Copy link
Member

@glennw glennw commented May 3, 2018

This happened. We still need to enable some of the PNG reference tests on Windows, but we have ~80% coverage.

@glennw glennw closed this May 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.