Announcement

Collapse
No announcement yet.

The Gallium3D R600 Driver Now Has Texture Support

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

  • The Gallium3D R600 Driver Now Has Texture Support

    Phoronix: The Gallium3D R600 Driver Now Has Texture Support

    There's good news for those interested in the open-source Gallium3D driver for the ATI R600/R700 (Radeon HD 2000/3000/4000 series) graphics cards: the R600g driver is beginning to work. While there's been the classic Mesa R600/R700 driver for months now that is working fine for most users, once finished the Gallium3D version should offer better performance, better OpenGL support (OpenGL 2.1 support off the bat, but that's still a ways behind OpenGL 4.1), and many other possibilities via Gallium3D's different state trackers...

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

  • #2
    I've been itching to try this. I believe that this is the last major architectural change left after the migration to KMS and TTM, the in-kernel power saving etc.

    Comment


    • #3
      Why is there a custom GLSL compiler? Wouldn't this be in the OpenGL state tracker (compiling it into Gallium3D IR) and thus already available and/or common to all Gallium3D drivers???

      [With there perhaps a LLVM based optimizing compiler to compile Gallium3D IR into efficient hardware commands at the lowest layers]

      [my apologies for the double post / I posted an expanded question on the previous article... http://www.phoronix.com/forums/showt...25#post138646]

      Comment


      • #4
        Go ATI. It's coming together roughshod but it's coming together.

        Comment


        • #5
          Originally posted by Craig73 View Post
          Why is there a custom GLSL compiler? Wouldn't this be in the OpenGL state tracker (compiling it into Gallium3D IR) and thus already available and/or common to all Gallium3D drivers???

          [With there perhaps a LLVM based optimizing compiler to compile Gallium3D IR into efficient hardware commands at the lowest layers]

          [my apologies for the double post / I posted an expanded question on the previous article... http://www.phoronix.com/forums/showt...25#post138646]
          Just to close off this question, there is a common GLSL compiler generating an intermediate representation (Mesa IR / TGSI), then the custom compiler turns that intermediate representation into hardware-specific instructions.

          Comment


          • #6
            Originally posted by bridgman View Post
            Just to close off this question, there is a common GLSL compiler generating an intermediate representation (Mesa IR / TGSI), then the custom compiler turns that intermediate representation into hardware-specific instructions.
            So is that IR what actually crosses the state tracker <-> GPU driver interface?

            Comment


            • #7
              Yep, basically IR for the shader programs, some "when you draw, draw this way" calls, and some "draw these triangles" calls. There's more, but those are the important ones.

              Strictly speaking a state tracker implies Gallium3D so it would be TGSI rather than Mesa IR crossing the interface, but TGSI is just another form of IR.

              Comment


              • #8
                What is IR?

                Comment


                • #9
                  Originally posted by V!NCENT View Post
                  What is IR?
                  "Intermediate representation (IR)"
                  http://www.mesa3d.org/shading.html

                  Comment


                  • #10
                    IR = Intermediate Representation

                    Comment


                    • #11
                      You can kind of think of it as java bytecode, if that helps. Or assembly code. Then all the various hardware backends just have to be able to translate that into something the hardware understands, rather than having to worry about parsing GLSL or anything.

                      Comment


                      • #12
                        Originally posted by chrisrock View Post
                        "Intermediate representation (IR)"
                        http://www.mesa3d.org/shading.html
                        So IR is a term for, well, imtermediate representation and TGSI is an IR?

                        Comment


                        • #13
                          Exactly. Mesa IR, TGSI, LLVM IR and the "il" used in our proprietary driver stack are all different IRs.

                          Some IR's use a "stream" format (something that looks like source code) intended primarily as an human-readable interface between layers (TGSI, il), others use a more structured format which allows compiler phases to run optimization passes on the IR directly (Mesa IR), still others offer multiple representations (LLVM).

                          Comment


                          • #14
                            Originally posted by bridgman View Post
                            Exactly. Mesa IR, TGSI, LLVM IR and the "il" used in our proprietary driver stack are all different IRs.
                            Ah OK. For a second there I thought that my understanding of Gallium was not correct

                            IL means intermediate layer then, right? :P

                            Some IR's use a "stream" format (something that looks like source code) intended primarily as an human-readable interface between layers
                            Like X.org's protocol parser implementation? Or is that something else altogether?

                            Comment


                            • #15
                              Originally posted by V!NCENT View Post
                              IL means intermediate layer then, right? :P
                              Intermediate Language

                              Originally posted by V!NCENT View Post
                              Like X.org's protocol parser implementation? Or is that something else altogether?
                              I haven't looked at that part of X for maybe 20 years, will let someone else answer

                              A simpler example would be a C compiler that generates assembler source code then passes it to an assembler for conversion to something the CPU can execute.

                              Comment

                              Working...
                              X