-
Notifications
You must be signed in to change notification settings - Fork 171
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
Update ANGLE binaries. #305
base: master
Are you sure you want to change the base?
Conversation
Hello @dhritzkiv ! This is the first part of supporting WebGL 2 in headless-gl. I redid how ANGLE is integrated. Given that modern ANGLE is based on GN, and building is not as well supported in node, it's much easier simply to bundle binaries for all platforms. I tested with my Windows machine, Macbook and WSL 2. There are some regressions as noted - the gl-conformance test suite is a decade behind mainline WebGL testing. I spent some time looking at migrating to a newer base for gl-conformance, but it's not trivial because the shims are so out of date. I think a better approach might be to implement a shim library that shims specific functions in the test harness, and keeps the rest of the functions unchanged, using some kind of preprocessing script. Anyway I could use help on figuring out what to do here - there weren't many regressions in my local testing so one trivial option is simply suppressing the failing tests. For WebGL 2 testing we'd need a more updated solution. Please let me know if you have any questions or concerns about the approach or would like anything changed. |
Huge effort! Amazing. Thanks. I'll begin reviewing this in the coming days as I find free time during the holidays. I've pulled this PR down, built it, and can confirm that it builds, and that tests mostly pass (as you've alluded to) with 3 failures out of 15953 on my Mac. I'll think on what do about the conformance tests. We could selectively ignore/disable the currently failing tests, and instead allow the rest of the test suite to indicate –during upcoming/ongoing development– that everything is functioning acceptably. Or we could patch up the decade-old conformance tests to match more modern test expectations. Lastly, now that the ANGLE binaries are included in the repo, would you agree that removing the angle submodule is the correct move? |
Great! Glad you were able to get it going locally. Looking forward to your feedback. Yes, I think removing references to ANGLE code in the repository is the right way to go. |
- the binaries are pulled from Chrome 131 binary dirs - load the entry points via a loader, using code from ANGLE - use the WebGL compatibility mode extension in ANGLE - replace Linux and Mac gyp builds with binaries There's one WebGL regression due to a minor bug in ANGLE: it accepts two desktop GL enums in WebGL compatibility mode when it shouldn't. This contribution is funded by https://higharc.com/
594d9d6
to
e7f5ec0
Compare
Hey @dhritzkiv , I just wanted to let you know I force-pushed a new rev here. There were two fixes:
|
Note that currently there are a couple WebGL regressions because of an outdated conformance test suite.
This contribution is funded by https://higharc.com/