Announcement

Collapse
No announcement yet.

NVIDIA Making Progress On Server-Side GLVND: Different Drivers For Different X Screens

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

  • #21
    Personally to me this article plus that I recently got a laptop with 2 radeons cards, has woken up a curiosity of how multi gpu works on Windows.

    Turns out, it's pretty bad. On GNU/Linux you set DRI_PRIME variable to choose which graphics card an application has to use. But on Windows it's complicated. They have opengl32.dll, which acts as a proxy to real vendor libraries. It's similar to GLVND. Except that (as far as I have read) neither it use any env. variables, nor it have an API to choose a GPU. The algorithm to choose a GPU is to simply use the one that manages your screen; also it's undocumented, hence unreliable.

    So, if you have multiple cards on Windows, of course you'd like to use a weaker one by default. And unfortunately if you want to run a game, it'd use the weaker card too. There are multiple hacks for application to choose another card, but they're all unreliable, and only works with specific combinations of vendor cards.

    I, kind of, proud to know, that graphics in GNU/Linux is more advanced than Windows

    Comment


    • #22
      Originally posted by Hi-Angel View Post
      Personally to me this article plus that I recently got a laptop with 2 radeons cards, has woken up a curiosity of how multi gpu works on Windows.

      Turns out, it's pretty bad. On GNU/Linux you set DRI_PRIME variable to choose which graphics card an application has to use. But on Windows it's complicated. They have opengl32.dll, which acts as a proxy to real vendor libraries. It's similar to GLVND. Except that (as far as I have read) neither it use any env. variables, nor it have an API to choose a GPU. The algorithm to choose a GPU is to simply use the one that manages your screen; also it's undocumented, hence unreliable.

      So, if you have multiple cards on Windows, of course you'd like to use a weaker one by default. And unfortunately if you want to run a game, it'd use the weaker card too. There are multiple hacks for application to choose another card, but they're all unreliable, and only works with specific combinations of vendor cards.

      I, kind of, proud to know, that graphics in GNU/Linux is more advanced than Windows
      With Explicit Multi-adapter in DirectX12, don't they now have an opportunity to make a new API for better, reliable hardware detection and being able to control what graphics card software runs on?
      Multi-Adapter
      https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
      DirectX 12 Multiadapter: Lighting up dormant silicon and making it work for you
      April 30, 2015
      https://blogs.msdn.microsoft.com/dir...-work-for-you/

      Comment


      • #23
        Originally posted by plonoma View Post

        With Explicit Multi-adapter in DirectX12, don't they now have an opportunity to make a new API for better, reliable hardware detection and being able to control what graphics card software runs on?
        Multi-Adapter
        https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
        DirectX 12 Multiadapter: Lighting up dormant silicon and making it work for you
        April 30, 2015
        https://blogs.msdn.microsoft.com/dir...-work-for-you/
        Well, may be, but it's not like they couldn't do that before. I dunno why they didn't.

        Comment


        • #24
          Originally posted by johnc View Post

          I would say no because it's reached a certain maturity level and a few other reasons:

          - The leader of the project is just phoning it in now. He doesn't have any drive to build something new or to guide the path of Linux. He just does PRs and collects paychecks now.
          - The big corporate leaders run Linux now. So they get to cull what becomes of Linux, and they have their own business motivations to make certain areas as annoying as possible. These companies have a stranglehold on Linux and choke-out any progress that hurts their bottom line.
          - A lot of the tinkerers and hobbyists have just moved on. They probably grew older and spend their time on other things now (career, family, etc.).
          - There really is no big distro for the "common guy" anymore. It's hard to generate interest when all you have are super-niche distros.
          Nothing is impossible. More difficult efforts have been achieved. I think in order to achieve interesting results, itt requires a great team with enough craziness and talent

          Comment


          • #25
            Originally posted by pal666 View Post
            i own smartphone which has best opensource graphic driver among smartphone graphic drivers(actually, many people do, since this gpu has large market share). so i vote with my money for best opensource graphic drivers. while morons like you vote with their money against opensource graphic drivers
            Can you specify what mobile phone is? What about the rest of the blobs? What about the "modem"?

            Comment


            • #26
              NVIDIA will not open source their drivers because they have proprietary licensed code from SGI in their codebase. There are a lot of things they have licensed from other vendors over the years which they cannot open source. This is the reason why NVIDIA cards are compatible with all the old CAD/3D software. In addition the NVIDIA driver is a unified driver, which means there's Windows proprietary code in the driver codebase, along with Mac Code and Solaris code. Code which would have to be sanitised. That costs money. What's needed on Linux is just the ability to have intel and NVIDIA cards active at the same time driving separate displays. This doesn't currently work and it affects anyone using an external USB-C gpu. Open source drivers are for ATi/Intel users and people that want to run older NVIDIA cards. It's unfortunate but that's just where the industry is.

              Comment


              • #27
                Originally posted by DMJC View Post
                NVIDIA will not open source their drivers because they have proprietary licensed code from SGI in their codebase. There are a lot of things they have licensed from other vendors over the years which they cannot open source. This is the reason why NVIDIA cards are compatible with all the old CAD/3D software. In addition the NVIDIA driver is a unified driver, which means there's Windows proprietary code in the driver codebase, along with Mac Code and Solaris code. Code which would have to be sanitised. That costs money. What's needed on Linux is just the ability to have intel and NVIDIA cards active at the same time driving separate displays. This doesn't currently work and it affects anyone using an external USB-C gpu. Open source drivers are for ATi/Intel users and people that want to run older NVIDIA cards. It's unfortunate but that's just where the industry is.
                So people will have to change their fates and change it. What do you think? A lot more difficult things have been achieved in the history of life and humanity, why not this one too?

                Comment


                • #28
                  Originally posted by DMJC View Post
                  NVIDIA will not open source their drivers because they have proprietary licensed code from SGI in their codebase. There are a lot of things they have licensed from other vendors over the years which they cannot open source. This is the reason why NVIDIA cards are compatible with all the old CAD/3D software. In addition the NVIDIA driver is a unified driver, which means there's Windows proprietary code in the driver codebase, along with Mac Code and Solaris code. Code which would have to be sanitised. That costs money. What's needed on Linux is just the ability to have intel and NVIDIA cards active at the same time driving separate displays. This doesn't currently work and it affects anyone using an external USB-C gpu. Open source drivers are for ATi/Intel users and people that want to run older NVIDIA cards. It's unfortunate but that's just where the industry is.
                  Not open sourcing their driver is not even the major problem here. Not allowing nouveau to progress in their own driver is what makes NVIDIA a not open source friendly company.
                  Just releasing the damn firmware and basic documentation would help a lot already.

                  Comment


                  • #29
                    Originally posted by dragon321 View Post
                    Oh, did I mention CUDA? So what can You offer me if I need CUDA? Waste money to rewrite all to OpenCL, only because ideology.
                    Hello, bio-medical researcher here.

                    And tell me, what are *you* going to do when CUDA fades into a has been platform, and Intel's Xeon Phi accelerators are the hot new stuff all of sudden ?
                    (real-world example that is happening in some sub-fields)

                    Oh, yeah, I know ! Use one of these CUDA-frontend-on-LLVM-transpilers !

                    High performance is a complicated matter.
                    Lots of technologies are only "passing fads" on the scale of everything else.
                    You can invest into something extremely specific - like CUDA, or Intel's Phi low-level libraries - but you've basically locked-in yourself.

                    Or you can invest into something more generic - openMP and the likes - but you won't achieve the top performance.

                    Then you need to factor in the life cycle and the price of the GPGPU nodes, the pace at which newer generations outperform them...

                    At the end of the day, investing 100% in CUDA might not necessarily be the best bet.

                    Originally posted by timofonic View Post
                    Originally posted by johnc View Post
                    Windows has been able to use multiple GPUs to drive different displays for a decade now, and do it as an extended desktop.

                    Remember when Linux used to be on the cutting edge? That was awhile ago.
                    Will Linux be able to be cutting edge again? I think only by radically changing everything and stop the archaicism of current days...
                    I love just how you can both find trolls that complain that linux just sucks now because they don't change anything and troll linux now sucks because they changed everything because of evil systemd.

                    BTW: Linux has been able to use multiple GPUs too. The only problem is that is works only with opensource driver (where the devs can put the functionality in - e.g.: DMABUFs). Meanwhile, Nvidia hasn't bothered to add multi-GPU to Linux (because their main linux market are workstations and compute nodes, not laptops) . The reason why you don't get multi-GPU has nothing to do with Windows vs Linux. It's only because this mythical "all perfect proprietary driver" doesn't give a rat's ass about your specific use case.

                    Originally posted by pal666 View Post
                    no, glvnd is not a contribution to open source, since no opensource driver needs it. it is only needed by nvidia proprietary shit
                    Actually I can see a very specific use of things such as glvnd in opensource land :
                    selectively using openGL *wrappers*.

                    For things like stereo 3D, on drivers that actually lack a real quad-buffer stereo implementation (which is useful for some 3D visualisation of complex data).
                    You could then throw in something like StereoGL (the openGL equivalent of Bino3D video player).

                    You'd want to use it when visualizing 3D stereo data.
                    You don't need it when simply using a regular openGL-accelerated desktop environment.

                    GLVND could help you route to stereoGL only when needed.

                    Comment

                    Working...
                    X