-
-
Notifications
You must be signed in to change notification settings - Fork 29
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
[Feature request]: support GPUs without Vulkan #62
Comments
I have no objections to add support for OpenGL, in fact the earlier version of wluma was written using OpenGL in C (you can find the code here, just before I made the switch, and play around). I found it extremely difficult to work with, that's why I moved to Vulkan. I'll honestly say that most probably won't do this myself, but if you (or anyone else for that matter) try the earlier version, and it works for you or you can get it to work, and you feel like porting that code to rust (it was somewhat randomly working for me, from what I remember), then please submit a PR, and I would be very happy to assist along the way, with concepts and explanations, as well as with code review, and of course with getting it all merged. Terminology-wise, I'd probably call that "processor" instead of "capturer" (for me it's wlroots that captures the frame, and Vulkan processes the image to find the lightness value), so we can make a folder with Let me know what you think! |
Thank you for fast response and for considering this. I'm trying to compile the oldest version of project you've specified with meson setup builddir
cd builddir
meson compile it gives errors:
Am I doing something wrong, or the problem isn't on my side? Regarding making a PR: that would be difficult task for me since I can barely read C code as well as have zero experience in graphic programming. Most likely I'll waste a lot of your time while achieving nothing. Sorry |
This one looks most severe in your case, from my limited understanding there are various extensions over OpenGL, and the code that I wrote back then relies on this one. Based on Dependencies section, you might be either missing EGL 1.2 or EGL client API, such as OpenGL ES or OpenVG...? It's probably possible to use some other API to achieve that same functionality, but I don't know how 😞
This is because wlroots 0.15 removed the
Hmm looks like another extension. This all is a bit weird, as I thought because of these dependencies, your compilation step shouldn't even start, if meson will conclude that you are missing one of them (and maybe you can install some package and fix it)... As you can probably sense I also have a very limited understanding of graphic programming and C 😅 But let's keep the issue open, maybe someone else would help us out here 😁 |
What's certain I have neither |
That one is getting magically created out of I just tried to fix the issues, but unfortunately it seems wlroots API is quite different nowadays. Not only |
So, I've added I see that you imported the same Anyway, here's the fork with some routine work done (if someone want's to push this further). |
I might be entirely missing the picture here, and it would probably be a big dependency, but have you considered wgpu? Other than that name and some other things might suggest, wgpu can also be used entirely without browsers. Relevant for this project, it supports a few different backends, namely OpenGL ES (and also Metal for macOS), and it probably handles all the dependencies for you. It compiles SPIR-V (which you probably compile to from vulcan shader code) or WGSL (not finalized shader language) to something any of these backends can use using gfx-rs/naga. And AFAIK the WebGPU Interface, and how its set up, is mostly based on the way Vulcan does things. Mind you, I never got into much experimenting, my experience is largely limited to OpenCL. |
This is a very interesting finding, thanks for sharing! I've never heard about it before. If it can be used for the purposes of this project and give us few different backends out of the box, I don't mind it being a big dependency. I don't think I'll have a chance to experiment with it in the near future, but if you or anyone else wants to give it a go, please do so, and post some updates here in this thread! |
I have an older laptop with Nvidia Quadro 3000m GPU that has no Vulkan support under Linux.
When I try to spawn
wluma
it prints:Would you consider adding OpenGL capturer?
The text was updated successfully, but these errors were encountered: