What is a good (hopefully open source) graphics package for the iMX8X and Torizon? is GTK still the best bet? I only need 2D, not 3D. Does Torizon come with any graphics package in a container?
What is a good (hopefully open source) graphics package for the iMX8X and Torizon?
For i.MX8/X on Torizon all Toradex provided containers can be found on the torizon dockerhub page: Docker Hub
Any arm64v8 container should “just work” on the i.MX8X. Do note that Torizon + Colibri i.MX8X is not a very well tested platform so be prepared for some things to not work correctly, but please don’t hesitate to report these issues.
As for graphics stacks, as you can see on our dockerhub page the only default container with a full graphics stack has Qt libraries. Of course each container is based on a Debian distribution so you can pull in alternative graphic frameworks with apt. Also there’s other non-Toradex containers stored on dockerhub featuring other graphics frameworks, just need to make sure that they have a arm64 variant.
Other than 2D, do you have other any other requirements? Graphics acceleration? Specific language? Otherwise our default suggestion is typically Qt since it’s what has been tested so far on our platforms.
I’m involved with a digital dash product. As I mentioned it doesn’t have any 3D graphics - just gauges and digital readouts. The project started using the VF61 which of course doesn’t have any graphics acceleration and has a memory speed of 396 MHz. There’s a lot of glitching on the screen, even at a 10fps rate - hence the need for a faster processor/memory. Also the selected display is a 24-bit parallel I/F. I looked at the iMX 6Solox which has a GPU and a much faster processor, but the memory speed is still 396MHz. I looked at the iMX7 series which has faster processor, memory, and GPU, but I also use the M4 for most of the data acquisition and 64KB is not enough memory. The iMX8X seems to fit the bill well, but it appears its just being released.
The VF61 design used an inhouse graphics package that we developed (since it has no GPU). Therefore we’re new at using a GPU and the associated SW. Currently there’s not a lot in the budget for purchasing graphics SW (quote was done based on using our inhouse pkg) so I was looking at GTK+. I’m not that familiar with Open GL and Open VG - is it possible to directly send commands to the GPU driver or is a higher package required? As I mentioned above there aren’t any elaborate graphics involved - drawing bitmaps (the whole background is a big bitmap with overlays on top of it), several dial-type gauges, digital (text) readouts, and bitmaps used for status outputs. What is a reasonable graphics package to use for this?
Alright I think I understand your situation better now.
So just to be clear about your options OpenGL and OpenVG would work for your scenario, OpenGL is even commonly used underneath Qt. Since you’re not planning to do anything complex graphically then any decent graphics stack should suffice, especially for bitmaps.
Though since you’ve inquired specifically about GTK/GTK+. I did some digging and we actually have a demo that utilizes GTK in a container on Torizon.
Demo source: GitHub - toradex/ai2go-imx8: Demo container XNOR.ai for IMX.8
The above repository has source code for the demo application as well as the Dockerfile used to build the end container. This was built for the i.MX8 though should still be applicable for the i.MX8X. The UI utilizes GTK API in C and while not an exact fit for your project, it is a good example of GTK usage on the i.MX8/X platform.
I hope this helps with your decision making.