-
Notifications
You must be signed in to change notification settings - Fork 58
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
Add EGL stream support #245
Conversation
(void *) eglGetProcAddress("eglGetPlatformDisplayEXT"); | ||
if (getPlatformDisplayEXT) | ||
return getPlatformDisplayEXT(type, native, NULL); | ||
return context->api.eglGetPlatformDisplayEXT(type, native, NULL); | ||
} |
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.
@jwrdegoede Does these changes break anything introduced in #233?
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.
No I don't think so, all the checks are still there just moved to a different place.
Overall looks good. Maybe add documentation in README as well. |
Tried testing this on my machine with both Way Cooler and Sway, got the same error from wlc:
I made sure I installed the drivers properly, because I can use Gnome + Xorg properly with this driver loaded. Using Nvidia gtx1070 card, not that it probably matters. EDIT: Same effect from the
|
@Timidger Do you have Nvidia's DRM KMS module enabled? It is unstable and disabled by default, but needed for EGL. Use |
4826d36
to
2a0eca0
Compare
@Cloudef I've addressed your comments and pushed the changes. I noticed a very strange thing though. It seems I can still run the |
@4e554c4c Thanks for the hint, I did have that disabled...but now it seems I have a screwy setup since it keeps segfaulting and after checking the core dump it seems it's trying to use nouveau still....oh well it's about time I switched distros on this machine anyways :P. Thanks for all your help. |
@vially I'm not sure. Maybe it fallbacks to some software implementation. Do you happen to have gbm compatible gpu in your pc also? |
@Cloudef Yes, I do have an Intel CPU with integrated graphics. Although @Timidger I've tried running the EDIT: There was indeed a bug in the code which made all the outputs be assigned the same CRTC. I've fixed it by using a more robust approach when selecting the output CRTC and now the Update: I've been able to run |
76b7d9b
to
fe743e8
Compare
Lets merge and see what happens. |
@vially are you happy that you've now contributed to the segmentation of the entire Linux desktop? By merging this no problem has been solved, but you've worsened an existing one. Because Nvidia couldn't admit they weren't the first and didn't want to use an existing, nice API created by Intel they NIH'd this one, and now it falls onto projects to support both? This is absolute crap, and instead of yielding to Nvidia you should have send them an angry email like this one to support GBM. Or better yet a PR, though don't count on it being merged because they'd rather NIH it. |
@atomnuker I'm sorry you feel this way. I don't like the current situation either with having two competing buffer APIs. But I'm also trying to be pragmatic and I thought it might be useful if we had I also happen to own an nVidia card which is not supported by the nouveau driver so I really didn't have any other option if I wanted to use Wayland. |
Are you using glvnd enabled mesa?, if so /usr/share/glvnd/egl_vendor.d/50_mesa.json overrides /usr/share/glvnd/egl_vendor.d/10_nvidia.json Renaming 10_nvidia.json to 90_nvidia.json should correct it.
|
@leigh123linux Thanks, I wasn't aware of that. I'll experiment with that to see if it makes any difference. |
I have the same issue on |
Add support for EGL streams used by the proprietary NVIDIA driver: #138
The current implementation selects the EGL stream buffer API (instead of the default GBM one) when the
WLC_USE_EGLDEVICE
environment variable is not empty (e.g.:export WLC_USE_EGLDEVICE=1
is needed at runtime).I've only tested it by running the
example
compositor on a single monitor setup (Archlinux using latest NVIDIA drivers) and it seems to work.Disclaimer: I don't know
C
, so most probably the code contains lots of bugs so please review very carefully (especially around memory allocations/deallocations).