Announcement

Collapse
No announcement yet.

Broadcom Open-Sources VideoCore IV 3D Graphics Stack

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

  • #11
    Just for the records, does that mean we can have fully accelerated X11 (quite) soon?

    Comment


    • #12
      It's really great that Broadcom open sourced the code that interfaces with the GPU and the documentation. On the OpenGL ES side, it looks like they included only the RPC wrapper and not the actual driver or shader compiler:

      Code:
      brcm_usrlib/dag/vmcsx/interface/khronos/glxx/glxx_client.c:
      
      /* OES_shader_source */
      GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader)
      {
      	LOG_FUNC
         if (IS_OPENGLES_20()) {
            RPC_CALL1(glCompileShader_impl_20,
                      GLCOMPILESHADER_ID_20,
                      RPC_UINT(shader));
         }
      }
      That's a shame, but if the real OpenGL implementation runs on their GPU people couldn't have hacked on it without their GPU toolchain anyway.

      At least now it's easier to write an open source driver for it. Hopefully someone with a RPi will write a Mesa driver and a compiler backend for QPU!

      Comment


      • #13
        Originally posted by pasaulais View Post
        It's really great that Broadcom open sourced the code that interfaces with the GPU and the documentation. On the OpenGL ES side, it looks like they included only the RPC wrapper and not the actual driver or shader compiler
        Its all in there take another look it to a while for me to find it too.

        Comment


        • #14
          Originally posted by Calinou View Post
          Broadcom releasing the source code of something is more like "seeing the pretty lights of the community's BFG", they always get flamed around for doing it wrong...
          This time, it looks like they've done it right, and then some. Both src *and* docs. I didn't look at the src (not terribly interested in that myself), the doc looks actually pretty comprehensive (from a fairly quick flip-thru). Even with an errata section, which is pretty nice when you are working on a driver and the hw isn't doing what you think it should. So kudos for bcm! Let's hope now that the rest of the mobile gpu players are paying attention.

          Comment


          • #15
            Originally posted by robclark View Post
            This time, it looks like they've done it right, and then some. Both src *and* docs. I didn't look at the src (not terribly interested in that myself), the doc looks actually pretty comprehensive (from a fairly quick flip-thru). Even with an errata section, which is pretty nice when you are working on a driver and the hw isn't doing what you think it should. So kudos for bcm!
            Wow, hearing this from you makes me even more confident that this is a useful contribution to open-source by Broadcom.
            About a year ago, I had the opportunity to talk to Pete Lomas from the RPi foundation, and back then he wasn't optimistic
            freely available programming docs for the GPU will ever happen.

            Originally posted by robclark View Post
            Let's hope now that the rest of the mobile gpu players are paying attention.
            This.

            Comment


            • #16
              Originally posted by tarceri View Post
              Its all in there take another look it to a while for me to find it too.
              Both the GL driver and the shader compiler? Could you post the paths from the tarball?

              Comment


              • #17
                Originally posted by pasaulais View Post
                Both the GL driver and the shader compiler? Could you post the paths from the tarball?
                Most of it is under brcm_usrlib/dag/vmcsx/middleware/khronos/ (unofficial GitHub link).

                glsl/ has the shader compiler. The OpenGL ES drivers are mainly in gl20/ (for GLES 2.0), gl11/ (for 1.1), glxx/ (for common code between both).

                dag/vmcsx/interface/khronos/glxx is the public driver interface (which gets compiled into libGLESv2.so etc). The "RPC_CALL1" etc in that code is not actually RPC in this version of the codebase, it's a direct function call. (In the version of the GL driver previously available on Raspberry Pi, it *was* an RPC call into the firmware blob on another processor, but the newly released code runs everything on the ARM.)

                Comment


                • #18
                  Originally posted by Philip View Post
                  Most of it is under brcm_usrlib/dag/vmcsx/middleware/khronos/ (unofficial GitHub link).

                  glsl/ has the shader compiler. The OpenGL ES drivers are mainly in gl20/ (for GLES 2.0), gl11/ (for 1.1), glxx/ (for common code between both).

                  dag/vmcsx/interface/khronos/glxx is the public driver interface (which gets compiled into libGLESv2.so etc). The "RPC_CALL1" etc in that code is not actually RPC in this version of the codebase, it's a direct function call. (In the version of the GL driver previously available on Raspberry Pi, it *was* an RPC call into the firmware blob on another processor, but the newly released code runs everything on the ARM.)
                  You're right, I missed it when I first looked at it. That's awesome. Thanks!

                  Comment


                  • #19
                    How likely is accelerated OpenGL (Not GLES) on the pi now?

                    Comment


                    • #20
                      From proprietary to BSD is a set back

                      Broadcom's move to release it's graphics stack under the a BSD-like license is not an step forward but a step back because the creation of more proprietary software then when it was itself proprietary.
                      Last edited by endman; 01 March 2014, 05:26 PM.

                      Comment

                      Working...
                      X