Announcement

Collapse
No announcement yet.

A Nouveau 3D Driver That Works For Old NVIDIA Hardware

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

  • A Nouveau 3D Driver That Works For Old NVIDIA Hardware

    Phoronix: A Nouveau 3D Driver That Works For Old NVIDIA Hardware

    While there is now DRM support in the Linux 2.6.33 kernel for the Nouveau driver that carries the bits for kernel mode-setting, 2D (EXA) acceleration, and other fundamental functions on NVIDIA graphics processors, the Gallium3D driver still is incomplete. Prior to focusing solely on Gallium3D for their OpenGL acceleration, the Nouveau project was working on a DRI driver for classic Mesa, but that work was dropped in 2008 to focus entirely on Gallium3D support...

    http://www.phoronix.com/vr.php?view=Nzk1NA

  • #2
    Believe me when I say I know people that still have a geforce 2 mx 440 I'm always, always happy about these news. Linux must support everything, from the beginning to the end. This is why I also love wine.. where microsofts interrupts support for a program to run on a specific windows version, wine does the trick. Freedom, future compatibility , these are the things I love.

    Comment


    • #3
      Old or not, these are great news and asbullext said, I now a lot of people with legacy NVidia cards.

      Comment


      • #4
        BTW too many good news from the open graphics world during the last days... Let's see if it stays in that way

        Comment


        • #5
          Very nice news. I have an old Twinhead P14 laptop with a Geforce4 440 GO or so. Very cool machine!

          Comment


          • #6
            *raises hand*
            I still have some Geforce 2 and a Gef. 3 floating around. The Geforce 3 was once the most expensive part of my own box I used (and still use) but I replaced it later with a less energy hungry Geforce 2 low end model that I bought cheap off ebay.
            So nice that these old things will fly again.

            Comment


            • #7
              Error in article

              NV20 covers the Geforce2 and Geforce4MX card families; Geforce3 and Geforce4 (not MX) are the NV30 families.

              The Geforce3 added fixed function shaders acceleration over the Geforce2 (it's a DirectX8, or OpenGL1.3, card). The Geforce4MX used a Geforce2's engine (DirectX7, or OpenGL 1.1), but with a revamped memory controller, making it much faster than Geforce3 on shaders-less applications.

              The Geforce4 added a few shaders functions (DirectX 8.1 or OpenGL 1.4) and a new memory controller to the Geforce3. Still, with a good preprocessor, you can run programmable shaders somewhat on those cards - making them eligible for Gallium3D support, while all shaders have to be supported entirely in software on Geforce2 and Geforce4MX - making them useless in Gallium.

              It has been a long discussion on Nouveau's mailing list about whether programming a Gallium3D driver for NV20 and lower was actually worthwhile. Seems like they decided it wasn't.

              Comment


              • #8
                when this branch will be merged to mesa-master ? I need it asap...

                Comment


                • #9
                  Originally posted by mitch074 View Post
                  NV20 covers the Geforce2 and Geforce4MX card families; Geforce3 and Geforce4 (not MX) are the NV30 families.

                  The Geforce3 added fixed function shaders acceleration over the Geforce2 (it's a DirectX8, or OpenGL1.3, card). The Geforce4MX used a Geforce2's engine (DirectX7, or OpenGL 1.1), but with a revamped memory controller, making it much faster than Geforce3 on shaders-less applications.

                  The Geforce4 added a few shaders functions (DirectX 8.1 or OpenGL 1.4) and a new memory controller to the Geforce3. Still, with a good preprocessor, you can run programmable shaders somewhat on those cards - making them eligible for Gallium3D support, while all shaders have to be supported entirely in software on Geforce2 and Geforce4MX - making them useless in Gallium.

                  It has been a long discussion on Nouveau's mailing list about whether programming a Gallium3D driver for NV20 and lower was actually worthwhile. Seems like they decided it wasn't.
                  NV30 are GeForce 5. The highest GeForce 4 code number is the NV28, the 4200 TI. The thing is, as you said, anything below NV30, with supposedly pixel shaders, requires some effort to use them. They are the first attempts for a programmable pipe and are thus crude implementations. Even GeForce 3 has pixel shaders (the nFinit FX engine), but it's pretty much useless. I was surprised to see GeForce 4 (non MX) cards being mentioned as Gallium3D friendly. I have an NV28M and anything involving pixel shaders that I've tried has failed. Maybe it's drivers related...

                  Comment


                  • #10
                    Originally posted by mitch074 View Post
                    NV20 covers the Geforce2 and Geforce4MX card families; Geforce3 and Geforce4 (not MX) are the NV30 families.
                    NV20's, NV25's and NV30's plus the tests the guy did was with a GF4 card.

                    Comment


                    • #11
                      Originally posted by ioannis View Post
                      NV30 are GeForce 5. The highest GeForce 4 code number is the NV28, the 4200 TI. The thing is, as you said, anything below NV30, with supposedly pixel shaders, requires some effort to use them. They are the first attempts for a programmable pipe and are thus crude implementations. Even GeForce 3 has pixel shaders (the nFinit FX engine), but it's pretty much useless. I was surprised to see GeForce 4 (non MX) cards being mentioned as Gallium3D friendly. I have an NV28M and anything involving pixel shaders that I've tried has failed. Maybe it's drivers related...
                      Ouch - I mixed these up one level.

                      NV1x: Geforce256, Geforce2
                      NV15+: Geforce4MX
                      NV2x: Geforce3
                      NV25+: Geforce4 Ti

                      NV30 are Geforce 5, indeed. They sport a NV2+ mode, which will be unused in Gallium in favour of the programmable shaders.

                      There was, at one time, talks about using an interpreter to use Gallium3D on NV2X. Current Mesa code uses NV2x' NV1x compatibility mode (which allows the use of NV1x driver code on NV2x, but of course, limited to NV1x capabilities). In essence, NV2x cards are underused.

                      That was some time ago though, I wonder what's up with that.

                      Comment


                      • #12
                        I think everyone agreed that it was theoretically possible to write driver code which would look at the requested shader processing, identify the cases which a fixed-function chip could handle (a lot of apps can still run on fixed-function chips today), then set the FF logic and proceed with the draw commands, and that's as far as it went. There are still some unanswered questions with that approach, like "what capabilities should the driver expose to the app and how do we manage that inside the driver stack ?".

                        Any Gallium3D-based 3D driver would normally expose shader support to the app, but some apps implement different code paths depending on what the driver supports and those apps may only work on fixed function chips if the app chooses fixed-function code paths based on the available driver extensions... then the 3D driver would turn the fixed function calls into shader code, pass that down to the Gallium3D HW driver, which would then translate the shader code back into fixed function operations... but which would fail if the app passed down "real" shader code rather than a shader implementation of fixed function operations. Maybe.

                        On the whole, implementing a traditional mesa stack for pre-shader chips seems like a better (if less interesting) solution.

                        Comment


                        • #13
                          well apparently the nvidia driver does this to some extent already as a geforce2 is reported as supporting OpenGL 1.4 iirc so some of that must be in software magic

                          Comment


                          • #14
                            The issue here is really just working with Gallium3D and older chips -- previous driver stacks, including the proprietary ones, had native support for fixed function GPUs. Gallium3D is the first low level API to be totally shader based...

                            Comment


                            • #15
                              Actually, this news needs a correction. The fixed function driver supports the whole nv20 family, which includes nv20, nv25 and nv28. That means the fixed driver supports all Geforce 3 and 4 Ti.

                              The gallium drivers are intended for nv30 and more, so that is geforce 5xxx and up.

                              Comment

                              Working...
                              X