-
-
Notifications
You must be signed in to change notification settings - Fork 842
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
Provide Mesa3d V23.1.7 libraries for Windows #3409
Conversation
Great PR! Please pay attention to the following items before merging: Files matching
This is an automatically generated QA checklist based on modified files. |
Is it really worth the trouble? ShowMySky is slow even on some GPUs (which was the reason for introduction of reduced resolution mode), won't it be unusable on a software renderer? |
Does it maybe contain debug info that could be stripped? 58 MiB is an enormous size for a code-only binary. |
util/mesa3d/LICENSE.txt
Outdated
@@ -0,0 +1,21 @@ | |||
MIT License | |||
|
|||
Copyright (c) 2017-2020 pal1000 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Who is pal1000
? The official license of Mesa states Brian Paul as the copyright holder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
He who provides ready-made Windows builds.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the copyright really get transferred due to building the opensource package?.. I suppose the license on the builder's project page refers to the build scripts, rather than Mesa binaries.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just took the License file as found there.
Around 2015 I managed to build Mesa myself (involving a cross-compilation on Arch I think). Since 2018 I was unsuccessful, did not need it, and ultimately was happy to find this ready-made release. It's MIT in any case.
It's not only about ShowMySky. I agree I would turn that off on weak systems. But in light of your fixes of Landscapes, and probably other changes, and #2803, it may be interesting. |
No idea. The old version included with Qt (Mesa 11 IIRC) has 20MB, and we don't have to host that. Packaging experts could maybe just download the three libraries directly from pal1000's site on building/packaging. I hope my CMakeFile.txt changes work, but I agree hosting a file which also develops further may not be the best solution. |
Well no, I don't think it's a good idea to blindly follow the further development. We do need to fix the version to the one we've tested. |
Not blindly. Just stick to one version until we need more or some improvement was made in Mesa. The older builds are still there. Just that one must download the 7z file and extract 5 files. Or is it possible/preferrable to host those files on our website? There is no real need to git them. |
I think not. We don't host, say, Qt. Nor did we host CalcMySky before we switched to custom builds of it. So if we can just fetch the binaries for the particular version of Mesa, this is OK. |
I think adding a downloadable archive of DLL's (here: https://github.com/Stellarium/stellarium-data/releases, see https://github.com/Stellarium/stellarium-data/releases/tag/qt-5.6 for example) and writing instructions for developers in BUILDING.md will be better solution. Of course, it requires some changes in cmake and .appveyor.yml files. |
Please check binaries from here: https://ci.appveyor.com/project/alex-w/stellarium/builds/48022354 |
Tried that. Umm, it still somehow contains the old dll, Mesa11 with OpenGL 3.0. |
@gzotti please test binaries from https://ci.appveyor.com/project/alex-w/stellarium/builds/48037720 |
Tried again. The Qt6 build still contains the old dll, Mesa11 with OpenGL 3.0. I exchanged manually with the new files for immediate upgrade to OpenGL4.5. The Qt5-64 build works! Qt5-32 build: maybe tomorrow, download limit exceeded... The old library appears considerably faster though. Maybe as soon as higher features are available, the CPU must work harder. @10110111 ? I am not sure what is currently 3.3+-only. Given that --mesa-mode is mostly targeted towards old PCs as last resort, we could leave it with the old version and describe a manual update. The additional env variables apparently are irrelevant for the old library. I think some users have demands of running the program in VMs or other GPU-less environments with powerful CPUs. Here the newer Mesa may be useful. This could also mean again Qt5 with old (and upgrade possibility) and Qt6 with new version... |
Well, maybe the newer one is built with less optimization enabled?.. I don't remember any systematic slowdown in llvmpipe over the years.
Only dithering and ShowMySky currently require
Modern VMs (at least VirtualBox) can provide HW acceleration via the host GPU. Generally, I think all this development of kludges is not really useful beyond Qt5 version. Qt6 already cuts most of incapable Windows machines away, so we could just remove the support for software rendering in Qt6 — or leave the one that Qt provides. High graphics mode features only target realism and visual quality, not the astronomy, so I don't think providing software rendering for them is so much important. |
I didn’t replace Mesa for Qt6 builds |
Link to binaries: https://ci.appveyor.com/project/alex-w/stellarium/builds/48041621 Is target milestone correct? |
I would assume that - given that Mesa does not provide binaries - this semi-official source does all to release an efficient build. But who knows? (Do you want to build optimized binaries?)
If the host has no GPU? I think of VMs on Xeon servers.
OK, I see two options to continue:
|
Thanks. Qt6 tested, works. Commit message was likely wrong, should have been "Use Mesa23".
That depends on our decision speed. I said 23.4 because of 23.3 feature freeze. |
Good!
Yes, you're right.
But by the fact this is not a new feature, so, 23.3 is OK for me. |
How likely are they to run Windows—and run Stellarium in these obscure environments? I'd say it's their problem to solve, not ours. Servers already require some expertise to maintain, so their administrators must be capable enough of setting up OpenGL runtime. |
I don't think one more wrapper is needed. If a user does need a newer Mesa (which I don't think they do), it's sufficient to provide the instructions to do everything that doesn't require recompilation. Again, it's a very rare use case that I'd not spend a lot of time on. Software rendering is slow enough to not really expect fancy graphics from it. So my option is: |
I may have seen more requests for weird problems or setups than you have. Classroom setups, remote use, ... You may think those running Xeons know what they are doing. Some may have one because it sounds cool or they expected more productivity when they are sitting next to a 19" fan array. I cannot follow their decisions. There must be an option --mesa-mode also with Qt6 versions. It can remain crippled with OpenGL3.0 as now but with documentation on upgrading, or we deliver a big extra binary that most people likely really don't need. Installing the upgrade causes a slowdown, but adds features which users may balance based on what they need. @alex-w , @10110111 please vote 1 or 2 as described above. EDIT: this was written before reading @10110111 option 3. For all practical purposes, option 2 does everything which option 3 does (the changed wrapper just sets 2 more envvars which are ignored by the default solution), with less instructions for upgraders. |
Why should we fix the problems that these people created because of their incompetence? Game producers don't try to make their products run on every imaginable machine. High graphics mode of Stellarium is more of this type. Anything related to astronomy that may be needed for classrooms or remote use is still available in the legacy mode. Besides, if you try to make Stellarium look good but feel slow in a classroom, you make a bad impression of the software on the students, which are used to video games being smooth.
This already bad because of this PR, because the repo clone takes longer now. If we refrain from storing the binaries, we can squash (or remove) this branch to avoid this.
Let those who want fancy graphics use decent (not even fancy!) hardware.
This spreads the upgrade over the project, while with option 3 we'd only have it in the instructions, without additional maintenance for the code. I expect this upgrade to be ignored by most of the users of Mesa mode, simply because the whole software rendering mode is a workaround to get astronomical information, not graphics. |
Stellarium is not a game. The game industry drives GPU development and sales of the latest hardware for ever more graphic explosions and damage. I aim at max compatibility starting with €50 hardware.
Modern students should have laptops that are less than half their own age. Most should have at least some Intel HD in their Core-i5 3xxx+ GPUs.
This is why I asked very early where to put those binaries (#2803 (comment)). Unfortunately the answer did not include useful instructions for me. If I delete everything and force-push, will that remove the cruft, or what actions can one take to let the repo completely erase the DLLs?
As said, there may be situations where no GPU is available and people are happy with good graphics at 7fps@UWQHD.
What you write here is already more than the change in CLIprocessor code. I only added two environment variables which become active when somebody copies the files. I don't see any further maintenance burden. Instructions in the Guide are required for 2 and 3. BTW this PR aims at solving #2803 where you all agreed on replacing old Mesa libs... |
And this is the reason it still has a legacy mode. Better graphics certainly implies higher requirements on hardware, moving Stellarium towards the game-like class. In the future the requirements of the high-graphics mode will be more taxing on software renderer, so the users won't like such use anyway.
Yes, the clone will get lighter if you somehow remove the commit that introduces large files. This can be achieved by squashing all the commits here into one (since 7e63de3 removes the files), or by removing the branch.
How so? My suggestion is to only update the docs and leave the code alone. But anyway, you asked to vote, I voted. If you really want it, I'm OK with option 2. |
And now I found this... https://fdossena.com/?p=mesa/index.frag A single 36MB dll with Mesa 20.1.8. Renamed to equal Qt's name, and it provides OpenGL3.3.
OK, this means we can fully delete this branch without a trace (what are the git commands to cut away the history?), and all that needs to be done is writing instructions for DLL exchange. I am not sure about license from fdossena, so I am not sure if we can just deliver that instead of Qt's Mesa11 dll. It's just a build result, though, so maybe MIT license applies. |
Suspiciously fast ;) Did you check that you're actually running via Mesa (opening the log from Stellarium GUI to make sure there's no mistake)?
If your branch is current, you can reset it to the state of
Then just force-push (this will likely close this PR if there're no commits on top of
This is still quite a lot for the source repo. Can we store it in a separate repo, like |
Of course. Needed the logs in F1 panel to identify which is which... I have an insane i7-12700H (14 cores/20 T) which of course helps on that. It seems 14 threads are active (66%CPU). My Geforce 3070 makes 46fps fullscreen with about 30% load while CPU is around 12%. (I have 1146 SSOs, these take their time and yes, we should seriously start multithreading here.)
OK, if @alex-w agrees. After that reset I will add the SUG changes again.
If @alex-w is OK with that, we can just replace the existing Qt5.6 dll. Or leave it to users to upgrade with instructions. I cannot say why, but suddenly even Mesa11 on 23.1 reported OpenGL3.3. (???) |
Something seems broken... or maybe it already did this before on high-end GPUs? |
Given the performance improvements, I think it's worth doing this ourselves. But I wouldn't hurry for the nearest release, because this still needs some testing, including by the beta users. |
Why not? Or you can re-use mesa-3d tag/release and update a P.S. updating SUG should be enough IMHO |
Hello @gzotti! Please check the fresh version (development snapshot) of Stellarium: |
Hello @gzotti! Please check the latest stable version of Stellarium: |
This pull request is outdated, such, the problematic code replaced by new tool or feature... |
This buried attempt has been superseded by #3414. |
This requires also new environment variables for starting in "Mesa mode".
Description
This is intended to fix problems around outdated Mesa V11 libraries which come with Qt.
It provides OpenGL 4.5 CoreProfile and would allow to run advanced features (OpenGL3.3) on really old systems.
I cannot currently say whether this deploys correctly. And, when uploading, there was a warning from Github:
So it may not be the best idea to accept this in this format.
Fixes: #2803
Screenshots (if appropriate):
Type of change
How Has This Been Tested?
Test Configuration:
Checklist: