Changing my environment

I needed to change my environment as the image I was previously using: AM3358 Debian 10.3 2020-04-06 4GB SD IoT proved not to have graphics system set up in a sufficent manner for EGL context creation. Therefore I installed AM3358 Debian 9.12 2020-04-06 4GB SD ImgTec and had to configure it.

I also had to compile CMake from scratch and since I did not set any cross-compilation toolchains, I use the BBB for compilation. It took around 2 hours to compile, so please be patient if you wish to follow in my step.

Coding

Similarly to last week, my focus continues with getting EGL to work headless. I also need to expand my knowledge of the Linux graphics system as I want the library to just work on any BB image and ideally with any BB. I am perusing following resources in order to learn more:

  • https://blogs.igalia.com/itoral/2014/07/29/a-brief-introduction-to-the-linux-graphics-stack/
  • https://people.freedesktop.org/~marcheu/linuxgraphicsdrivers.pdf
  • https://blogs.igalia.com/elima/2016/10/06/example-run-an-opengl-es-compute-shader-on-a-drm-render-node/ - this one seems most related to what I am doing

This will require some tinkering around but is probably doable in the project timeframe, once the goals are satisified. It may stretch beyond the GSoC but that is expected of a package which may be mainlined/brought upstream.

After reading the Introduction to the Linux Graphics Stack, many concepts, such as DRI/DRM, Framebuffer rendering and what is MESA are much clearer to me. Also this post made several things clearer for me, especially it distincted EGL from GLES - the former is used to establish platform-dependent context and the latter is used for drawing into it.

With all honesty I can recommend the blog above as an incredible source of information on Linux Graphics and Computer Graphics overall. It is a shame that knowledge about different Linux subsystems is in such scatter and is always difficult to come across…

Blog

I will write an introductory blog on the planned approach and some updates on what I did so far.