Announcement

Collapse
No announcement yet.

Raspberry Pi's VC4 Gallium3D Driver Switches To Using NIR

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

  • Raspberry Pi's VC4 Gallium3D Driver Switches To Using NIR

    Phoronix: Raspberry Pi's VC4 Gallium3D Driver Switches To Using NIR

    With the latest Git code for Mesa 10.6 development, the Raspberry Pi VC4 Gallium3D driver has switched to using the NIR intermediate representation...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Can s.o. explain what NIR does and where it is placed in the driver infrastructure?

    Thank you in advance.

    Comment


    • #3
      Originally posted by Kemosabe View Post
      Can s.o. explain what NIR does and where it is placed in the driver infrastructure?

      Thank you in advance.
      NIR is intermediary representation.

      GLSL is not turned into GPU native code stright away.

      Some optimization and scheduling is done in the middle. And not on glsl string but some more suitable representation. For Intel and VC4 this representation is NIR.

      Comment


      • #4
        Originally posted by Kemosabe View Post
        Can s.o. explain what NIR does and where it is placed in the driver infrastructure?

        Thank you in advance.
        Vendors (game devs and others) ship GLSL shaders that have to be compiled through a few intermediary steps before it hits GPU native code. This replaces some of that middle layer with one that can be optimized a lot more easily in the future, thus allowing better performance to be gained from the existing drivers. (Super simplified version)
        All opinions are my own not those of my employer if you know who they are.

        Comment


        • #5
          Good directions

          An IR that many drivers use is also a great advantage in breaking-up this monsterous structure that has become Graphics Driver Development. Being compatible with every OpenGL standard is very difficult, but as the hardware drivers just support a common IR then OpenGL compatibility becomes just a library shared across all drivers.

          This means that Mesa and Intel can work together on OpenGL compatibility rather than competing. If others like NVidia got on-board, there would be even more shared development. This is a strength of the open-source community: we strive to generalize duplicated code. As this happens, it will become easier to bring-up Graphics hardware on Linux than Windows (until they adopt something similar).

          Comment


          • #6
            Originally posted by snadrus View Post
            An IR that many drivers use is also a great advantage in breaking-up this monsterous structure that has become Graphics Driver Development. Being compatible with every OpenGL standard is very difficult, but as the hardware drivers just support a common IR then OpenGL compatibility becomes just a library shared across all drivers.

            This means that Mesa and Intel can work together on OpenGL compatibility rather than competing. If others like NVidia got on-board, there would be even more shared development. This is a strength of the open-source community: we strive to generalize duplicated code. As this happens, it will become easier to bring-up Graphics hardware on Linux than Windows (until they adopt something similar).
            I don't know if I'd say that "mesa" and "intel" are currently competing.. but for sure, NIR will allow for some re-use of compiler passes between intel classic mesa driver an other gallium drivers (at least vc4 and freedreno in the near term.. maybe others in longer term)

            Comment


            • #7
              Originally posted by snadrus View Post
              An IR that many drivers use is also a great advantage in breaking-up this monsterous structure that has become Graphics Driver Development. Being compatible with every OpenGL standard is very difficult, but as the hardware drivers just support a common IR then OpenGL compatibility becomes just a library shared across all drivers.
              This doesn't really help drivers be more compatible with OpenGL. It's more about getting better optimizations on shader code (for Intel) and for the ARM drivers it's about getting to share those optimizations for free rather than having to do them themselves.

              Since the radeon and nouveau drivers already have whole optimization stacks of their own, it's unlikely they'll use NIR AFAIU.
              Last edited by smitty3268; 02 April 2015, 08:16 PM.

              Comment

              Working...
              X