Originally posted by tildearrow
View Post
Announcement
Collapse
No announcement yet.
It's Time To Admit It: The X.Org Server Is Abandonware
Collapse
X
-
- Likes 1
-
Originally posted by oiaohm View PostMaking Xwayland work does not require changing X11. GLX Relay and zink are a Mesa3d code base patch and both can result in XWayland coming functional on Nvidia
The hard reality here is Valve supporting legacy applications in there store don't need a new version of x.org X11 server at all. Updates to mesa3d yes.
Valve has absolutely no reason to do development work on x.org X11 server.
mdedetrich the reality here is you have been clueless the reason why Nvidia Xwayland does not work is that Nvidia drivers don't install the parts so Xwayland can work. Of course since this is driver failing to install required parts this does not require patching X11 server to fix. Instead its patching the drivers. The drivers for XWayland are not in the X11 x.org code base but are in fact in the mesa3d code base.
The NVidia blob doesn't even use MESA, it provides its own Vulkan and OpenGL API's which sit in the blob's driver. If you are using a desktop with an NVidia card (along with the blob) then you won't even have MESA installed (although this depends on the distro, some of them install MESA even though you don't need it and it will be unused). If you are on a laptop with hybrid graphics then MESA is only going to be used for the integrated GPU inside the AMD/Intel CPU (the whole point of optimus is for demanding 3D applications such as games to use the discrete card, in this case NVidia with its blob).
This is why in the README.md of the project you are referrencing (gamescope) says that it requires acceleration to work with XWayland for NVidia because there isn't any MESA. This means that the NVidia blob will have to work properly with Wayland (both so that gamescope actually works and also so that people will use NVidia + Wayland in the first place).Last edited by mdedetrich; 26 October 2020, 09:23 AM.
- Likes 2
Comment
-
Originally posted by Nocifer View PostThat's ridiculous! I need to write one universal comment that covers everyone's viewpoints.)
Whilst I am in the "Pro X11" camp for now, I didn't find myself disagreeing with any of your points.
Your summary that both are in a bit of a mess certainly seems true but where does that leave us? What would you suggest? Also what are your predictions for the future of "drawing to a sodding screen" on free platforms?Last edited by kpedersen; 26 October 2020, 08:41 AM.
Comment
-
This is another non-sense by IBM/Red Hat: the industry movie niche relies 99% on Linux (99% RHEL/Cantos) all the proprietaries software in use and proprietary drivers work only with X. Blender has just an experimental support for Wayland without considering that you get CUDA and OPENCL only with proprietary drivers (NVidia/AMD) and those do not support wayland. Is RED HAT dicthing this market? Or, are there secret agreements with other companies, like M$, to move this niche under WSL2/DirectX?
You can't trust corporations at the end of the day they are watching only their wallets.
- Likes 1
Comment
-
Originally posted by mdedetrich View PostThe NVidia blob doesn't even use MESA, it provides its own Vulkan and OpenGL API's which sit in the blob's driver.
https://gitlab.freedesktop.org/mesa/..._requests/6429
Its about time you do some reading.
Originally posted by mdedetrich View PostIf you are using a desktop with an NVidia card (along with the blob) then you won't even have MESA installed (although this depends on the distro, some of them install MESA even though you don't need it). If you are on a laptop with hybrid graphics then MESA is only going to be used for the integrated GPU inside the AMD/Intel CPU (the whole point of optimus is for demanding 3D applications such as games to use the discrete card, in this case NVidia with its blob).
Originally posted by mdedetrich View PostThis is why in the README.md of the project you are referrencing (gamescope) says that it requires acceleration to work with XWayland for NVidia because there isn't any MESA.
Originally posted by mdedetrich View PostThis means that the NVidia blob will have to work properly with Wayland (both so that gamescope actually works and also so that people will use NVidia + Wayland in the first place).
Its really simple to miss that driver with XWayland is 100 percent abstracted by libglvnd0 that Nvidia designed and Nvidia has failed to release the add on library so libglvnd0 for Xwayland works. So now its up to redhat with GLX Delay or Zink to fill in the gap Nvidia has created with their incompetent driver development.
Basically the pure reason why Xwayland does not work with Nvidia is 100 percent Nvidia fault. Heck Xwayland was design to use the abstraction Nvidia designed. What Nvidia is libdlvnd0 defective and you have mandated everyone else use it and will not use it yourself????Last edited by oiaohm; 26 October 2020, 09:38 AM.
- Likes 4
Comment
-
Originally posted by oiaohm View Post
Really you have not looked how the driver hooks in with XWayland have you its Nvidia designed libglvnd0. So anything that filled the required areas of libglvnd0 for XWayland will make Xwayland accelerated work.
https://gitlab.freedesktop.org/mesa/..._requests/6429
Its about time you do some reading.
Its really not that straight forwards. If Nvidia does not provide XWayland solution. Redhat will provide a XWayland solution based of Mesa code base abstracting over the Nvidia binary blobs so they run without needing root X11 server that is the GLX Delay path.
In order for this to work, EGLStreams needs to work properly (as mentioned in the merge request). EGLStreams working properly with compositors is the reason why NVidia blob is currently not working with Wayland, quoting directly from the merge request
GLX drawables are backed by EGL objects, specifically by an EGLStream whose EGLConfig is compatible with the GLXFBConfig associated with the drawable. We use EGL_KHR_stream_producer_eglsurface on the client side and EGL_KHR_stream_consumer_gltexture on the server side. glXSwapBuffers thus corresponds to a simple eglSwapBuffers on the EGLStream, which is then handed off to the X server to complete. Xwayland consumes this stream as a texture and blits it into the EGLStream associated with the Wayland surface for the window.
Note that this means a GLXWindow corresponds to two EGLStreams: one from the X client to Xwayland, and one from Xwayland to the Wayland server. Any excessive blitting generated by this indirection is your EGL vendor's bug, because this is the API we have to work with.
1. VSync
2. Resizing windows (this can break some game launchers which is a similar issue wine-wayland, i.e. https://github.com/varmd/wine-wayland)
3. A lot more which I am probably missing
In fact from what I can see, its only doing the bare necessary required to run GLXGears which is yeah, not much...
So yeah, by the time this will work properly with games we would already have NVidia's blob running with Wayland via EGLStreams anyways. This whole discussion is emblematic of the whole problem, of course there are "solutions" but they are also giant hacks which have severe usability problems. When talking about games, they really stress GL as much as possible in terms of features they use (i.e. using SwabBuffers for VSync) and until ALL of these things are working correctly like they do currently on X the status quo will remain the same.Last edited by mdedetrich; 26 October 2020, 10:13 AM.
Comment
-
I'd just like to thank pal666 for reminding me why writing many short consecutive posts in a thread is a bannable offense in another forum I sometimes visit - not because it's explicitly in the rules, but because it's caught by their catch-all "don't be too annoying" rule.
- Likes 5
Comment
-
Originally posted by mdedetrich View PostOkay so I just read the merge request and yeah this is going around circles.
In order for this to work, EGLStreams needs to work properly (as mentioned in the merge request). EGLStreams working properly with compositors is the reason why NVidia blob is currently not working with Wayland, quoting directly from the merge request
Read again. Its not EGLStreams working properly that is the problem. Gnome and KDE in the Wayland compositors already support EGLStreams for Nvidia this days. We are talking about a year ago that KDE and Gnome in Wayland only mode with no X11 application support support EGLStreams.. Its the XWayland bit that is not working.
This is all because when Nvidia designed EGLStreams they did not design it to be compatible with GLX by libglvnd that XWayland needs or for X11 inside X11 acceleration to work right.
Originally posted by mdedetrich View PostBecause of this the solution seems to have quite a few things that are not working, i.e.
1. VSync
2. Resizing windows (this can break some game launchers which is a similar issue wine-wayland, i.e. https://github.com/varmd/wine-wayland)
3. A lot more which I am probably missing
In fact from what I can see, its only doing the bare necessary required to run GLXGears which is yeah, not much...
So yeah, by the time this will work properly with games we would already have NVidia's blob running with Wayland via EGLStreams anyways. This whole discussion is emblematic of the whole problem, of course there are "solutions" but they are also giant hacks which have severe usability problems. When talking about games, they really stress GL as much as possible in terms of features they use (i.e. using SwabBuffers for VSync) and until ALL of these things are working correctly like they do currently on X the status quo will remain the same.
Really the huge hacks are what we are going to have because Nvidia have not implemented their driver right. Nvidia provided libglvnd as the abstraction for X11. Then when Nvidia made EGLStreams they have not made there X11 implementation use it so have not updated there libglvnd X11 interface.
So result is Nvidia is now maintaining two stacks instead of one. EGLStreams and the X11 stack.
Remember Valve is still selling to people games from the 1990s.
Like it or not the problem with Xwayland and Nvidia cannot be fixed in x.org X11 code base. The problem is 100 percent purely made by Nvidia own actions. Nvidia designed EGLStream and libglvnd glx in incompatible way. Yes Nvidia designed both parts. Yes Nvidia maintains the repositories for both parts. Without Nvidia deciding to fix it the result is going to be one mega huge hack no matter who other than Nvidia does it.
So valve taking over the maintainership of x11 at x.org is not going to help this problem as the problem is not in the x,org X11 code bases. In fact valve would be better of to put time into making like wine wayland work instead.
- Likes 2
Comment
-
Originally posted by oiaohm View Post
https://gitlab.freedesktop.org/mesa/..._requests/6429
Read again. Its not EGLStreams working properly that is the problem. Gnome and KDE in the Wayland compositors already support EGLStreams for Nvidia this days. We are talking about a year ago that KDE and Gnome in Wayland only mode with no X11 application support support EGLStreams.. Its the XWayland bit that is not working.
Originally posted by oiaohm View PostThis is all because when Nvidia designed EGLStreams they did not design it to be compatible with GLX by libglvnd that XWayland needs or for X11 inside X11 acceleration to work right.
Also FYI, the EGLStreams interface is very similar to what is used on Android and Windows, this is why they suggested it. Its actually LInux that is doing things "their own way" without knowing how compositors/desktops are done in other OS's (and there is a very strong argument that other OS's are doing a much better job here).
Originally posted by oiaohm View PostReally the huge hacks are what we are going to have because Nvidia have not implemented their driver right. Nvidia provided libglvnd as the abstraction for X11. Then when Nvidia made EGLStreams they have not made there X11 implementation use it so have not updated there libglvnd X11 interface.
Then when Linux people finally realized that apart from NVidia really doesn't have a choice (barring re-implementing their entire driver which isn't going to happen), EGLStreams is the best they can do. Note that NVidia blob can't work with GBM without a severe performance hit because they are fundamentally designed in a different way (grossly oversimplified, GBM is a synchronous interface where as EGLStreams is an asynchronous/stream based interface).
Also as another tidbit, NVidia actually wanted to use EGLstreams as the basic interface for compositing (since its an open standard approved by Khronos) but Linux people largely ignored this.
Originally posted by oiaohm View PostLike it or not the problem with Xwayland and Nvidia cannot be fixed in x.org X11 code base. The problem is 100 percent purely made by Nvidia own actions. Nvidia designed EGLStream and libglvnd glx in incompatible way. Yes Nvidia designed both parts. Yes Nvidia maintains the repositories for both parts. Without Nvidia deciding to fix it the result is going to be one mega huge hack no matter who other than Nvidia does it.
So valve taking over the maintainership of x11 at x.org is not going to help this problem as the problem is not in the x,org X11 code bases. In fact valve would be better of to put time into making like wine wayland work instead.
And yes, EGLStreams isn't functioning completely correctly but again lets put things into context. Wayland was created TWELVE years ago and it took a good 6 years of constant bugs and fixes from various parts on the stack (MESA/GBM/etc) to get to where we are now. On the other hand, NVidia suggested EGLStreams even before Wayland, Linux said f off and so understandably NVidia shrugged their shoulders and didn't do anything since Linux didn't want to work with them. Fast forward more than a decade and suddenly desktop OS's are scrambling to get NVidia blob working with Wayland since devs want to move away from X11 and they didn't want to work with NVidia in the past. So in summary, Linux's OS graphics stack had 6-12 years (depending on how to measure it) to get things sought of working where as NVidia had a few years (at best?).
The biggest issue here Is Linux's developers unable to accept the fact that NVidia's stance is not going to change (for completely rational reasons) and to be collaborative in working with them. That is purely Linux's fault.Last edited by mdedetrich; 26 October 2020, 11:25 AM.
- Likes 2
Comment
-
Originally posted by BesiegedAce View PostI can already predict the plethora of short live forks that'll eventually spawn out of X.org. To be clear, I hope that it's maintained to some degree, but it is time for something newer and better to come along.
Comment
Comment