Okay, okay, so I thought it would be awesome to have a good CPU framebuffer graphics rendering library, but it turned out that’s not enough for me. Why? Well, the justification is a little bit difficult to explain, but in a few words, the motivation will be obvious. When you use OpenCL on classic VidCore IV Raspberry Pi platforms, it ties up the GPU and needs exclusive, non-shared, uninterrupted access to it. Yeah, like many things on Raspberry Pi, the same can be said about the accelerated SPI display output library. This means that you cannot use the Mesa VC4 driver at the same time, so that means OpenGL cannot be used for graphics rendering in an OpenCL application. And no, VidCore IV is not good enough to support OpenGL ES 3.1, so no Compute Shaders extension is remotely on the radar for support either.
So… if you’re creating an OpenCL accelerated application, and you need 3D graphics rendering capabilities at the same time, what is the solution? Well, if you already have your own OpenCL 3D graphics rendering library, this problem is a piece of cake to solve. So, now that the justification is obvious, how do I approach the conversion to parallel on the code I have so far?