Originally posted by wertigon
View Post
Announcement
Collapse
No announcement yet.
NVIDIA's List Of Known Wayland Issues From SLI To VDPAU, VR & More
Collapse
X
-
Originally posted by piotrj3 View Post1st. I don't know any GPU driver that totally passed OpenGL comformance test 100% on every still supported GPU on any major platform. There isn't one. Unless you mean core non optional features, then Nvidia passes it. In fact OpenGL comformance test orginally was submitted by NvidiaDolphin and former Ensemble studios develeper also said straight away that Nvidia has the most extensions out of all OpenGL drivers and are practically working the best.
To be correct Nvidia developer were only small part of the team that developed the comformance testsuite. Yes the implicit sync tests for opengl and egl were in fact written by Nvidia and they cannot pass them today.
Originally posted by piotrj3 View Post2nd. here we talk about userspace stack that isn't applying to every change. Changing how glamor/X/Wayland works (to be more explicit sync) won't make doom, quake or Blender refuse to work. There is no "Breaking compability changes" in what Nvidia proposes. The entire problem is "So we're not really proposing some radical change to the extension's design. The problem is just that this synchronization mechanism uses regular XSync fences and there's not really any way to trigger one of those asynchronously after we receive a notification from the GPU that it's finished rendering."
Originally posted by piotrj3 View Post3rd. Opengl somehow doesn't have that problem when working nativly under X, it does only under Wayland. Thing is again you can implement implicit sync in explicit sync so explicit sync driver doesn't make anyhow true user space stuff refuse to work. This is how Android does it, and this is how Windows does it and this is how DXVK or Zink does it.
Originally posted by piotrj3 View Post4th. If you want to develop so low-level things with bad performance, you basicly want to discredit entire OS as alternative largely. We heard from Nvidia that performance drop would be 30%. Also the more forward we go the more multi-threaded/multi-queue things and the more oversynchronization issue will be. So current 30% issue will be growing to be larger penalty.
Originally posted by piotrj3 View Post5th. For gamers 30% performance loss of today is not acceptable.
Originally posted by piotrj3 View Post6th. Present is already supporting explicit sync. So complete redesign is not needed.
Originally posted by piotrj3 View PostI would also mention, if Intel/Nvidia/AMD drivers by developers of Opengl developers like Dolphin are rated as at least "good" (with Nvidia being excellent) and mobile gpus like Andreno/ARM Mali being bad/horrible (and still being like that!) (PowerVR/Tegra being unknown) and yet somehow explicit sync android gpu stack actually works better with way more horrible drivers, with way less talented engineers then Nvidia/AMD/Intel. This i would say is true testament that probably Linux graphic stack has probably simply made wrong choices.
The reality is the mainline kernel when it comes to graphical stack these days is bugger all different to the Android one. I would say Android core developers have been more talented at implementing sync than the Nvidia developers. Nvidia managed to make a Explicit sync that cannot work correctly doing Implicit sync and when they do implicit sync on their Explicit sync they have massively more over head than everyone else. Yes AMD, Intel .... basically everyone else has managed to get this right.Last edited by oiaohm; 24 May 2022, 10:41 AM.
Comment
-
Originally posted by oiaohm View Post
https://github.com/KhronosGroup/VK-G...lcts/README.md
To be correct Nvidia developer were only small part of the team that developed the comformance testsuite. Yes the implicit sync tests for opengl and egl were in fact written by Nvidia and they cannot pass them today.
The problem here problem that glamor shows is just where Nvidia is not conforming to opengl standard.
The implicit sync tests in the opengl CTS as in the standard testsuite fail under X11 as well when you are using Nvidia. Do note these test pass when using AMD or Intel or arm or qualcomm or broadcom under either Wayland or X11.
Except AMD and Intel developers have already point out that some how AMD and Intel implementations are no where near 30% over-ahead. That right implict sync in the Linux kernel is implemented on top of explicit sync in most places.
This is not true. For old games that using older interfaces over 50% percent overhead is acceptable because system performance from when the game was released to now has improved so much..
There is a problem here
Android with it graphical sync is interesting. https://events.static.linuxfound.org...ncing_Talk.pdf sync-file in mainline kernel comes straight from Android. Android developers was very careful to make their explicit sync that you could implement implicit sync on top of it when you need it without horrible overhead.
The reality is the mainline kernel when it comes to graphical stack these days is bugger all different to the Android one. I would say Android core developers have been more talented at implementing sync than the Nvidia developers. Nvidia managed to make a Explicit sync that cannot work correctly doing Implicit sync and when they do implicit sync on their Explicit sync they have massively more over head than everyone else. Yes AMD, Intel .... basically everyone else has managed to get this right.
"“OpenGL is vital to our professional customers who need portable access to the latest graphics functionality. NVIDIA continues to work closely with the Khronos Group on the development of new OpenGL specifications and extensions. We welcome the official availability of the OpenGL 4.6 Adopters Program, and have already delivered conformant drivers on our full range of OpenGL 4.x-capable GPUs for improved rendering quality, performance and functionality,” said Bob Pette, vice president of Professional Visualization at NVIDIA."
Also : https://www.khronos.org/conformance/...roducts/opengl
https://www.khronos.org/conformance/...submission_195 Linux is even directly listed as conformant on Nvidia with OpenGL4.6. Also keep in mind there are 2 conformance tests, public and confidential. Confidential requires Khnosos developer account. Also Nvidia has first submition towards conformant driver from all companies in OpenGL 4.6 and also in 2013-2014 you see ONLY nvidia using opengl conformance test, because conformance test was theirs.
The only part of Nvidia i kind of might admit partly is not conformant is maybe EGL, but EGL has no conformance tests and parts Nvidia struggle with are not part of EGL (GBM, DMA-BUF etc. are all non EGL)Last edited by piotrj3; 24 May 2022, 11:35 AM.
- Likes 1
Comment
-
Originally posted by wertigon View Post
But... Nvidia isn't cooperating on Linux's terms. It's trying to "cooperate" on their own terms and failing miserably at it.
So actually if anything NVidia is slowly succeeding.
Originally posted by wertigon View PostLook, Nvidia is trying to implement git in an organisation that currently runs subversion. All internal processes are built to support subversion, all the CI tooling, all the editor support, et cetera et cetera et cetera.
Sure, git is the far superior versioning system in general. Do you want to be the employee that would push the git path, even though knowing that path would cost millions of dollars in retraining, retooling and opportunity costs? If you refuse to use anything other than git here, how long do you think it will take before you lose your job?
There is no difference with what Nvidia is doing, and the above scenario. Well, except that it is not possible to fire said employee due to being the child of one of the C[OETF]Os.Last edited by mdedetrich; 24 May 2022, 11:54 AM.
- Likes 2
Comment
-
Originally posted by mdedetrich View Post
Because Linux's implementation of things are outdated and shit, thats why. It may be hard to realize, but NVidia has standards and they are not going to implement something that will hamper their performance especially if the effort in implementing that can just be used to do things properly. And its not just NVidia that is saying this, other Linux/Mesa/Graphics dev's are saying the exact same thing and so your definition of "miserably failing" is hilarious because actually there is a lot of working being done right now to get parts of the stack moving to explicit sync which is exactly NVidia has been saying for a decade.
So actually if anything NVidia is slowly succeeding.
Originally posted by mdedetrich View PostYou seem to be under some impression thats NVidia is obligated to play on Linux's (or more precisely certain dev's) terms. Hint: They are not.
Nvidia is not obligated to do anything they do not want to do, but if they want to have a well working Linux driver they must implement a working implicit sync. There is just too much legacy crap to avoid that.
Originally posted by mdedetrich View Post
do you have any concept of proportionality?
I think it is pretty clear what path is the lesser of two evils here.
Nvidia are caught in a bear trap here. Do you chew off your leg or wait until you starve to death? Either option is bad, but staying stubborn will only bleed market share here. Pretty soon all Nvidia got left is Windows gamers - a rapidly shrinking pie. The foundation for where Nvidia will be in 2030 is laid now. Your call Nvidia! 😁
Comment
-
Originally posted by wertigon View Post
Wait so your argument is that Nvidia devs are too 1337 to listen to the arguments made by the Linux dev plebs? Okay then. I got nothing.
Of course NVidia's listened to the dev's arguments, but as has been said like 7 times already the Linux devs can argue as much as the cows go home but NVidia is not going to recode their entire driver for an OS that has <2% desktop market share especially considering that every other operating system doesn't enforce this use of implicit sync (I am talking Windows, Android (who rebuilt their own graphics stack), MacOSx. NVidia's driver is actually cross platform driver which means its Linux (and I guess Unix but they were never serious about desktop) which is the odd one out here
Originally posted by wertigon View PostYou seem to be under some impression that I am obligated to buy broken shit that does not work well with My OS of choice.
Nvidia is not obligated to do anything they do not want to do, but if they want to have a well working Linux driver they must implement a working implicit sync. There is just too much legacy crap to avoid that.
Originally posted by wertigon View Post
Yes. We can either drop implicit sync in the kernel and break all of userspace, or implement implicit sync on top of the explicit sync Nvidia already has.
No one is asking anyone to break user space and none of NVidia's or even the other mesa developers suggestions involved that. Its possible to additionally add explicit sync support in the areas its needed and tbh the only breakage I can think of is fixing Wayland's explicit sync support in the protocol (but then again that is so broken that no one uses it).
And in any case there are reasons outside of NVidia why the graphics stack is moving towards explicit, there are currently issues with certain parts of Vulkan API (again because of lack of implicit sync).
You seem to be under the impression that NVidia is the only one pushing implicit sync. While that may have been the case a decade ago currently its not. The main reason why explicit sync problem generally hasn't been solved yet is because there was no will by anyone to push it forward, there are even patches sitting there for 2 years (not by NVidia) and none of these break "user space".
You are arguing a problem that doesn't actually exist.
Originally posted by wertigon View PostI think it is pretty clear what path is the lesser of two evils here.
Nvidia are caught in a bear trap here. Do you chew off your leg or wait until you starve to death? Either option is bad, but staying stubborn will only bleed market share here. Pretty soon all Nvidia got left is Windows gamers - a rapidly shrinking pie. The foundation for where Nvidia will be in 2030 is laid now. Your call Nvidia! 😁Last edited by mdedetrich; 24 May 2022, 03:25 PM.
Comment
-
Originally posted by mdedetrich View Post
The linux devs are wrong in this regard, no one is right 100% of the time. If you bothered to read mailing list discussions they stuck to implicit sync for a number of reasons that ended many of which are invalid. Even the concept of implicit sync was chosen as a default because it fits into Linux's/Unix's "everything is a file with input/output buffers model" nicely which works until it doesn't.
Originally posted by mdedetrich View PostOf course NVidia's listened to the dev's arguments, but as has been said like 7 times already the Linux devs can argue as much as the cows go home but NVidia is not going to recode their entire driver for an OS that has <2% desktop market share especially considering that every other operating system doesn't enforce this use of implicit sync (I am talking Windows, Android (who rebuilt their own graphics stack), MacOSx. NVidia's driver is actually cross platform driver which means its Linux (and I guess Unix but they were never serious about desktop) which is the odd one out here
Originally posted by mdedetrich View PostThis is wrong, if you actually bothered reading the mailing lists and discussions the stack is slowly moving towards explicit sync. This is happening right now (I mean it should have happened a decade ago but better late then never). When its ready NVidia's driver will work without problems with Wayland, in meantime people will use X11
Originally posted by mdedetrich View Post
Uh, no
No one is asking anyone to break user space and none of NVidia's or even the other mesa developers suggestions involved that. Its possible to additionally add explicit sync support in the areas its needed and tbh the only breakage I can think of is fixing Wayland's explicit sync support in the protocol (but then again that is so broken that no one uses it).
You seem to be under the impression that NVidia is the only one pushing implicit sync. While that may have been the case a decade ago currently its not. The main reason why explicit sync problem generally hasn't been solved yet is because there was no will by anyone to push it forward, there are even patches sitting there for 2 years (not by NVidia) and none of these break "user space".
You are arguing a problem that doesn't actually exist.
Nvidia might not be the only one pushing explicit sync - but they sure as hell are the only ones actually hurting by it's omission. Everyone else is doing filthy implicit just fine, and that is the truth. Now they may be leaving performance on the table by doing that; but they also have no hurry to implement something that, by all accounts, will lead to a 2-3% performance increase when all is said and done.
Noone else has painted themselves into the explicit sync corner, so this one is all in Nvidias court. Now it just seems there is a question of what is more painful; implement implicit sync in Nvidias driver or implement explicit sync for everyone else?
- Likes 1
Comment
-
Originally posted by wertigon View Post
Which means implicit sync is the way to go on Linux. Not because it is better - but because it is what is chosen, and changing it now would take five years of development work, minimum. Ever heard of the term "technical debt"? It exists in every software project and is the reason we can't (always) have Nice Things(tm).
Originally posted by wertigon View PostNvidia can argue until the cows go home about the superiority of implicit vs explicit sync, microkernel vs monolithic, vim vs emacs and firefox vs gnome. This does not change the fact that we are at point X and cannot (quickly) move towards Y without breaking a *ton* of user space backwards compatibility.
And if you still want to argue that NVidia should recode their entire driver to have implicit sync, well then you are not going to see any result for over a decade. Why you think this is "quick" is beyond me.
Originally posted by wertigon View PostPace is glacial and will happen eventually, maybe, possibly. Implicit will always be required if you want to natively support OpenGL correctly, though.
Adding support for explicit sync in the areas is not going to make OpenGL not work or not be native. Thats not how it works and that statement doesn't even make any sense.
Originally posted by wertigon View PostNvidia might not be the only one pushing explicit sync - but they sure as hell are the only ones actually hurting by it's omission. Everyone else is doing filthy implicit just fine, and that is the truth. Now they may be leaving performance on the table by doing that; but they also have no hurry to implement something that,
Originally posted by wertigon View Postby all accounts, will lead to a 2-3% performance increase when all is said and done.
Originally posted by wertigon View PostNoone else has painted themselves into the explicit sync corner, so this one is all in Nvidias court. Now it just seems there is a question of what is more painful; implement implicit sync in Nvidias driver or implement explicit sync for everyone else?Last edited by mdedetrich; 24 May 2022, 05:19 PM.
Comment
-
Originally posted by piotrj3 View PostThe only part of Nvidia i kind of might admit partly is not conformant is maybe EGL, but EGL has no conformance tests and parts Nvidia struggle with are not part of EGL (GBM, DMA-BUF etc. are all non EGL)
Originally posted by piotrj3 View PostProvide me a source that Nvidia fails OpenGL 4.6 conformance test. In fact according to article on Khnosos group they were first to provide FULLY conformant driver with opengl 4.6
Comment
-
Originally posted by mdedetrich View Post
*Bunch of bullshit that pretty much completely contradicts what you already just said*
* Nvidia driver is based on explicit sync
* Implementing implicit sync support in that driver would require a recoding of all the driver
* Yet, somehow, magically, "If you have explicit sync, you can implement implicit ontop"
Which one is it? Either it is SUUUUUUUUUUPER hard to implement implicit sync, OR, it is not and it's fairly easy to implement on top of explicit. Either patches to implement explicit are already available, there is a branch in the kernel / mesa tree already being tested and it will come soon, or it will take years to make it happen.
Furthermore, these benchmarks show that Nvidia is faster on Xorg in games in some instances, while AMD is pretty much neck and neck, but no 30% performance loss is to be seen, which makes me think you are pretty much talking outta your arse with regards to 30% penalties: https://www.phoronix.com/scan.php?pa...g-Jammy-Gaming
The numbers simply do not support your claims.
Meanwhile, reality is:
* Nvidia is the only one that has any incentive for explicit sync, since everyone else already got implicit implementations done.
* Explicit sync seems to not be that much of a requirement given AMDs stellar performance in the benchmarks above
* ... Either that, or Nvidia does in fact use implicit sync and lying through their teeth about not doing it
* ... At which point explicit sync would provide a roughly 25% performance increase for both AMD and Nvidia
* ... Or AMD would provide a roughly 25% extra performance increase but Nvidia, being already on explicit sync, would provide... Zero benefit for themselves
So pretty much any way you slice it Nvidia is in a lose/lose situation here. We have the numbers to draw conclusions from, and 80%+ of all PCs support Wayland perfectly fine today, since only ~20% of all desktops/laptops have Nvidia cards in them. Rest are AMD or Intel.
So, seems to me like you're just making shit up to win the argument at this point. We are pretty much done here, good day sir.
Comment
Comment