Just for the records, does that mean we can have fully accelerated X11 (quite) soon?
Announcement
Collapse
No announcement yet.
Broadcom Open-Sources VideoCore IV 3D Graphics Stack
Collapse
X
-
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)); } }
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
-
Originally posted by pasaulais View PostIt'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
Comment
-
Originally posted by Calinou View PostBroadcom 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...
Comment
-
Originally posted by robclark View PostThis 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!
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 PostLet's hope now that the rest of the mobile gpu players are paying attention.
Comment
-
Originally posted by pasaulais View PostBoth the GL driver and the shader compiler? Could you post the paths from the tarball?
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
-
Originally posted by Philip View PostMost 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
-
Comment