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

Update OSMesa on Windows #5

Open
banesullivan opened this issue Dec 1, 2022 · 9 comments
Open

Update OSMesa on Windows #5

banesullivan opened this issue Dec 1, 2022 · 9 comments
Assignees

Comments

@banesullivan
Copy link
Member

The current version of OSMesa on windows used here is mesa-10.2.4-1 which is 8+ years old and has all kinds of issues rendering which show up in PyVista's image regression tests, for example:

unnamed

This old version of Mesa is coming from @vispy's https://github.com/vispy/demo-data/raw/main/mesa/ (cc @larsoner)

I've started drafting a PR in #4 to add a DLL directly to this action to use but I don't know anything about PowerShell and windows so this is taking me a bit to debug.

Opening this issue to track the fact that we need to and are updating the OSMesa DLL for windows and to have a broader conversation to see if @vispy wants to update their OSMesa version

@SMoraisAnsys
Copy link

SMoraisAnsys commented Nov 24, 2023

A little bump on this issue since I faced something related today :)

After setting my self-hosted runner I wanted to run the CI associated to a project leveraging pyvista. Since I don't have a physical GPU, I tried to use this action that could have helped me. However, using it did not solve my problem as running my plot related tests triggered "Windows fatal exception". The exception seems to be triggered through pyvista\plotting\plotter.py.

After testing various solutions, the one that paid of was using a newer version of Mesa3D (but not the newest ones for some reasons...). From my results, Mesa 20.1.8 and 20.2.0 are passing my first (previously) failing tests.

I'm using pre-built Mesa3D drivers for windows from https://github.com/pal1000/mesa-dist-win/.
FYI, here are some info I got from the opengl32.dll from the 20.2.0 release mingw:

  • OpenGL renderer: llvmpipe (LLVM 10.0.1, 256 bits)
  • OpenGL version: 4.5 (Core Profile) Mesa 20.2.0 (git-4f8488b857)

update Not all tests are pasing with 20.2.0. I'll try using 20.1.8 tomorrow to see how it goes.

@larsoner
Copy link
Collaborator

4.5 core would be great! Can you make a PR to update the DLL download URL and install_opengl.ps1 once you find a version that's good?

@banesullivan
Copy link
Member Author

banesullivan commented Nov 25, 2023

FYI: PyVista is not using this action anymore and I don't think anyone is actively maintaining it. Further, Kitware is now publishing Windows wheels with OSMesa bundled here: https://gitlab.kitware.com/vtk/vtk/-/packages. The 9.3.0 release is here: https://gitlab.kitware.com/vtk/vtk/-/packages/215 with win_amd64 wheels.

See also https://discourse.vtk.org/t/status-update-vtk-python-wheels/11212

@larsoner
Copy link
Collaborator

I use it in half a dozen or so repositories and am happy to maintain it!

@banesullivan
Copy link
Member Author

I mispoke! We are still using it 🤦🏻‍♂️ https://github.com/search?q=repo%3Apyvista%2Fpyvista%20etup-headless-display-action&type=code

Thanks for volunteering @larsoner!

@SMoraisAnsys
Copy link

4.5 core would be great! Can you make a PR to update the DLL download URL and install_opengl.ps1 once you find a version that's good?

Didn't ran all my tests before and it seems that version I mentioned are not working (or at least i'm doing something wrong) I hope to give you some feedback soon but I'm kinda stuck atm :/ I'll give a try to vtk-osmesa to hopefully find a shortcut :) @banesullivan thanks for the tip !

@SMoraisAnsys
Copy link

vtk-osmesa with win_amd64 wheels did the job !

@larsoner Since I'm not the one building the pre-built Mesa3D drivers (https://github.com/pal1000/mesa-dist-win/) I'm not confident to propose a PR. Screwing my VM / CI is one thing, but I would hate doing it for every repo leveraging this action.

@larsoner
Copy link
Collaborator

Screwing my VM / CI is one thing, but I would hate doing it for every repo leveraging this action.

In theory anyone using this action who wants stable behavior should be using v2 and we could cut this as v3. WDYT?

@SMoraisAnsys
Copy link

Screwing my VM / CI is one thing, but I would hate doing it for every repo leveraging this action.

In theory anyone using this action who wants stable behavior should be using v2 and we could cut this as v3. WDYT?

Good idea. I'm busy this week but I'll try to test a bit more pre-built mesa3D drivers for windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants