Running OPENRNDR on Raspberry Pi 4

I was able to install 64bit Raspberry Pi OS on my Pi 4. I know that aarch64 is supported now, so I thought that maybe OPENRNDR will work out of the box. I can build opernrndr-template, but when I run it, it throws InvocationTargetException when creating new window.

  1. how to enable full stacktrace in log, also with chained exceptions, to see the root cause?
  2. is there any other debug I should enable?
  3. before I will start digging deeper, maybe it’s just pointless because it’s not going to work for some other reason?

I can run glxgears and even open some shaders from in Chromium, so I believe graphics acceleration works. Is there any crucial OpenGL feature which OPENRNDR depends on and which is not available on Raspberry Pi 4?

Does the RPI4 have OpenGL or OpenGLES? I have never tested it on RPI myself because I believed it didn’t come with OpenGL drivers.

Yes, it does, I believe since the beginning of Pi, although it’s not that powerful GPU. I did one installation at Dream World with Pi 1 + composite output connected to old CRT TV and running simple interactive shader. With limited PAL resolution it was totally fine. I used glslViewer from Patricio Gonzalez Vivo who is always making sure that the examples from The Book of Shaders will also run on Raspberry Pi. I know that it was a bit of a hassle to prepare glslViewer for Pi 4, but it was possible.

Hi, in the middle of that thread in github Patricio mentions

I need to implement an entire OpenGL ES content generation for RPI4 .

I don’t know if the final solution involves OpenGLES or OpenGL. Looks like ES:

And there’s an issue for that:

ps. If I’m not mistaken anything that runs on Shadertoy is GLES (because that’s what web browsers provide).

One more link with a good question but not so clear answer:

With the most recent changes, @edwin has added GLES support to OPENRNDR :slight_smile:

It’s on an early stage and testing would be helpful to discover any issues.

If anyone has a Raspberry Pi 4 or 5 and wants to help:

  • Log into your Pi
  • Clone and build a SNAPSHOT of openrndr and orx as described in Building OPENRNDR and ORX · openrndr/openrndr Wiki · GitHub
  • Clone the template and make sure it uses the SNAPSHOT versions as described in the wiki page above
  • Run the template with GLES:
    ./gradlew run -Dorg.openrndr.gl3.gl_type=gles
  • Report back. Did the program run succesfully? :slight_smile:
1 Like