Announcement

Collapse
No announcement yet.

NVIDIA's List Of Known Wayland Issues From SLI To VDPAU, VR & More

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    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.

    Look, 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.

    Also, have a look at https://mesamatrix.net/ for conformance. All of radeonsi, mesa, zink, llvmpipe and i965 has 100% compatibility. Nvidia is not even fully compliant with OpenGL 4.6.
    List you submitted is Nouveau (That is why it is MESA matrix) not Nvidia propertiary driver. Also here is proper conformance test : https://github.com/KhronosGroup/VK-GL-CTS

    Comment


    • #62
      Originally posted by piotrj3 View Post
      1st. 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 Nvidia Dolphin 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.
      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.

      Originally posted by piotrj3 View Post
      2nd. 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."
      The problem here problem that glamor shows is just where Nvidia is not conforming to opengl standard.

      Originally posted by piotrj3 View Post
      3rd. 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.
      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.

      Originally posted by piotrj3 View Post
      4th. 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.
      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.

      Originally posted by piotrj3 View Post
      5th. For gamers 30% performance loss of today is not acceptable.
      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..

      Originally posted by piotrj3 View Post
      6th. Present is already supporting explicit sync. So complete redesign is not needed.
      There is a problem here


      Originally posted by piotrj3 View Post
      I 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.
      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.
      Last edited by oiaohm; 24 May 2022, 10:41 AM.

      Comment


      • #63
        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.
        Provide 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

        "“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.

        Comment


        • #64
          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.
          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 wertigon View Post
          Look, 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.
          Sure and NVidia is under no obligation to participate in projects that use SVN if it takes excessive time for them to contribute or simply put it hurts their brand image. You 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 said simply put that rebuilding their entire driver to work with implicit sync is simply not going to happen, thats like asking Linux to recode their entire kernel in a different language (and in this case a worse one). You do realize that their driver at this point is over a million lines long and its entirely based on explicit sync, do you have any concept of proportionality?
          Last edited by mdedetrich; 24 May 2022, 11:54 AM.

          Comment


          • #65
            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.
            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.

            Originally posted by mdedetrich View Post
            You 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.
            You 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 mdedetrich View Post

            do you have any concept of proportionality?
            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.

            ​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


            • #66
              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.
              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.

              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 Post
              You 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.
              This 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 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.
              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).

              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 Post
              ​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! 😁
              Yeah look I know you get the fuzzies whenever you delude yourself into thinking that NVidia is caught into some trap and the little Linux guy somehow forced NVidia to do something they didn't like but thats not reality (as is evident you have issues in actually understanding whats going on).
              Last edited by mdedetrich; 24 May 2022, 03:25 PM.

              Comment


              • #67
                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.
                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 mdedetrich View Post
                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
                Nvidia 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.

                Originally posted by mdedetrich View Post
                This 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
                Pace is glacial and will happen eventually, maybe, possibly. Implicit will always be required if you want to natively support OpenGL correctly, though.

                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.
                If this is true that is fantastic news. Write a proof of concept and submit it on monday, do an active pros & cons evaluation, make sure collaborations happens and we might have this one out by 2025!

                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?

                Comment


                • #68
                  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).
                  Again this is wrong, the best way forward is not to shoehorn NVidia into implementing implicit sync but fixing the current issues explicit sync. People tried shoehorning NVidia to do implicit sync for 10 years and it didn't work, and it wont work now for a multitude of reasons (largely because its stupid and not just technically but also logistically and effort wise).


                  Originally posted by wertigon View Post
                  Nvidia 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.
                  Then don't do it quickly, and even that statement of doing it quickly is wrong because forcing NVidia to go the implicit sync route is not quick at all (for anyone, not just NVidia). Like its obvious from the discussion (which you didn't read evidently), but to get implicit sync working the way you describe requires a ridiculous amount of hacks and workarounds which is actually going to reside in mesa. It makes zero sense. Thats what James Jones correctly pointed out, there is no quick way to do implicit sync. Its a bunch of hacky workarounds that also will effect performance massively.

                  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 Post
                  Pace is glacial and will happen eventually, maybe, possibly. Implicit will always be required if you want to natively support OpenGL correctly, though.
                  Sigh, again someone commenting on something they don't understand. If you have explicit sync, you can implement implicit ontop. If it makes it easier for you to understand, one is the superset of the other (and yes I know this is largely not technically correct but I have hit that point of trying to explain something to someone). The reason why implicit sync has the word "implicit" in it is the synchronization method is done "automatically" (which in practice means suboptimal and in certain cases creates bugs because the synchronization is being done in a way that is incorrect) but with explicit sync you have manual control over synchronization which gives you the option of doing it automatically (if you want) but you can also do it differently.

                  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 Post
                  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,
                  Lol if you think NVidia is "hurting" you are sadly mistaken. Actually the only people hurting are the Wayland devs. Users who are not religious about desktop environments will just continue using X11 with NVidia until Wayland is ready, thats simply it.

                  Originally posted by wertigon View Post
                  by all accounts, will lead to a 2-3% performance increase when all is said and done.
                  Well its actually closer to 30-50% but actually reading about whats going on and figuring out the details is evidently not your strong suite

                  Originally posted by wertigon View Post
                  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?
                  No its not, you can delude yourself into thinking its all NVidia's fault if that makes you happy or make sense of whats going on, but actually this attitude is the reason why people like yourself are constantly whining about NVidia instead of actually constructively solving the problem at hand.
                  Last edited by mdedetrich; 24 May 2022, 05:19 PM.

                  Comment


                  • #69
                    Originally posted by piotrj3 View Post
                    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)
                    DMA-BUF and GBM does in fact have official extensions with the kronous group.

                    Originally posted by piotrj3 View Post
                    Provide 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
                    There is a problem here. You get marked as Opengl 4.6 conforming without passing the test prior to Opengl 3.0. You still have people running opengl 1.2 applications at times. As I said Nvidia wrote the tests and they are in the conformance suite. Mesamatrix does not display the result early tests but all open source drivers do in fact pass them.


                    Comment


                    • #70
                      Originally posted by mdedetrich View Post

                      *Bunch of bullshit that pretty much completely contradicts what you already just said*
                      Not sure if trolling, or simply confunded. According to you:

                      * 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

                      Working...
                      X