Announcement

Collapse
No announcement yet.

Nouveau Lands GM107 Compute Support Ahead Of Mesa 11.2

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

  • Nouveau Lands GM107 Compute Support Ahead Of Mesa 11.2

    Phoronix: Nouveau Lands GM107 Compute Support Ahead Of Mesa 11.2

    Samuel Pitoiset has been leading the charge of Gallium3D compute support and his latest add to mainline Mesa ahead of the 11.2 branching is GM107 compute support...

    http://www.phoronix.com/scan.php?pag...-Compute-Lands

  • #2
    This is cool! We're almost able to play Alien: Isolation on FOSS drivers! :-D

    Comment


    • #3
      On the off chance that people interpret this as "applications can now use compute shaders on GM107", that is not what the change is about. It's just a small step along that path. Nothing user-visible.

      Comment


      • #4
        Originally posted by imirkin View Post
        On the off chance that people interpret this as "applications can now use compute shaders on GM107", that is not what the change is about. It's just a small step along that path. Nothing user-visible.
        And that'll be why GL3.txt wasn't updated

        Comment


        • #5
          Originally posted by imirkin View Post
          On the off chance that people interpret this as "applications can now use compute shaders on GM107", that is not what the change is about. It's just a small step along that path. Nothing user-visible.
          So what is missing to make CS useable? GL_ARB_shader_image_load_store and then lots of interop work with other extensions or what else is missing?

          Comment


          • #6
            Originally posted by W.Irrkopf View Post

            So what is missing to make CS useable? GL_ARB_shader_image_load_store and then lots of interop work with other extensions or what else is missing?
            Well, for one thing, Kepler+ and Fermi changed the interfaces around considerably. Among other things, Kepler+ can only have up to 8 constbufs, of which 1 goes to driver params, and another goes to texture-related stuff. GL requires at least 12, so we need to add an emulation layer there.

            A bunch of the state tracking stuff is off, which Samuel is currently struggling with, and that will be different for Fermi and Kepler+.

            I bet the atomic shared memory workarounds will be different on Maxwell than on Fermi (and they're also different on Kepler).

            In order to actually *use* GL_ARB_compute_shader, like you said, we need images. I have them half-working on Fermi, and there's an ancient impl of it for Kepler in the tree which I'm sure will need a ton of updating. No one's even looked at it on Maxwell.

            This is just off the top of my head, I'm sure there's lots more once those are done. (Once you resolve your #1 problem, #2 tends to get a promotion...)

            So all these "enable compute shader" commits are just about literally launching compute grids. Not all the surrounding stuff they need in order to be spec-compliant.

            That said, other than images, the Fermi impl *is* close for ARB_compute_shader, with an off chance of making it into 11.2 (but disabled). However Kepler+ need a bunch more work.

            Comment


            • #7
              I'm not sure to clearly understand, does this mean that we will be able to use OpenCL (or OpenACC or GCC 5+ equivalent) with nouveau?

              Comment


              • #8
                The compute support is the ability to launch compute kernels, it's very low level because the kernels are usually written in assembly. As Ilia already said, this is not yet useful for end-users because no high level interfaces (eg. ARB_compute_shader or OpenCL) are available. In the near future, we will be able to expose ARB_compute_shader on GK110+ (Kepler 2) and GM107 (Maxwell 1), but I still need to fix a bunch of things before landing the support. It's almost ready for Fermi and should probably be in mesa 11.2.

                Comment

                Working...
                X