-
Notifications
You must be signed in to change notification settings - Fork 17
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
What's the status of the project? #7
Comments
Hey!
Some context about that: this project originally started to solve a particular issue a Numtide customer was facing. The work has been mostly exploratory, prototype-based. If you look at the git history, you'll see that I changed several times the DSO injecting approach to come up with the (semi-satisfactory) current solution. What's inside of this repository is pretty-much a prototype. I think it's a somewhat decent approach to the problem. It does the job for Nvidia-based GPUs, but it's purely-technically pretty dirty. I originally added this warning sign because I wanted to rewrite this project to a runtime-less language and come up with a proper software architecture. Most of the wrapper overhead is spent starting-up/tearing-down cpython. From the top of my head (don't quote me on that, it's been almost a year by now), the wrapper overhead was about 100ms on a hot cache. It's not a lot in the grand scheme of things, but it's a lot if you end up running the same wrapper several times to perform various checks when entering a shell. So yeah, overall, we wanted to release this tool under a FOSS license, but we did not feel like it was good-enough quality-wise to be upstreamed to nix-community. Hence the warning sign. It's more of a "this is not the best we can do quality-wise" rather than a "this is not really open source".
This is a nice segway to another point: I do not use this program at the moment. All the infra I currently manage (be it personal infra or associative stuff) is either running Guix or NixOS. This is not solving a problem I personally face. Hence, I have very little personal urge in pushing this forward. The contract for which I originally wrote this software has been over for a while. This is the major limitation of contracting-based FOSS: once the contract is over, it's hard to maintain the software you wrote in its context. All that to say that I don't see myself pushing this forward in a near future. Of course, this is unless somebody is willing to put money on the table and comission me (through Numtide) to push this to a production-ready state. [email protected] *wink wink*.
Please do! And if you reach a state you're satisfied with, I think it'd make sense to move this to nix-community. All I'm asking is some sort of credit. I likely won't be willing to review everything, but I can definitely have a chat with you/help you to direct you how to push that forward. I worked on this for a while, I gathered quite a lot of context around GLX/EGL. I tried to document the current approach as best I can do in the Before going into a implementation craze, it'd first prototype the Mesa support using the current codebase. Injecting host DSOs to the Nix closure is kind of crazy. It surprisingly works for Nvidia because all the shared dependencies between the GPU driver and the Nix closure 1 have a pretty stable ABI. That might not be the case for Mesa. Better figure that out sooner rather than later :) Looking at my laptop's (intel integrated graphics) Mesa dependencies for GLX and EGL, the list of "host" DSOs required is definitely longer than what's the Nvidia proprietary driver requires.
And I did not even look at the transitive dependencies here. Yeah, overall, you better should prototype this first! Anyways, if you want to have a chat about that or just need a rubberduck, don't hesitate to contact me on Matrix or IRC ;) Good luck! Footnotes
|
Thanks for the detailed answer. I'll be sure to update when(if!) I end up doing something from here. I'll of course give credit where credit is due if anything ends up happening... |
We're currently using
nixGL
but it's inconvenient for all the usual reasons, such as having to re-install closure when host version changes.However we have some intel users (currently going via
nixGL
->mesa
) sonix-gl-host
isn't usable as-is.The README says:
However there doesn't really seem to be any activity about this. Fine, it's FOSS and not like I'm paying.
I'm wondering if I should try to fork and support what I need (and not contribute back as it won't be accepted...) or try to perform whatever cleanup was deemed necessary and then extend on it or what.
The text was updated successfully, but these errors were encountered: