# Running OPENRNDR on Raspberry Pi 4

**URL:** <https://openrndr.discourse.group/t/running-openrndr-on-raspberry-pi-4/151>\
**Category:** How to?\
**Created:** [October 1, 2020, 10:29pm UTC](https://openrndr.discourse.group/t/running-openrndr-on-raspberry-pi-4/151 "2020-10-01T22:29:53Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![kazik](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/kazik/32/7_2.png) [@kazik](https://openrndr.discourse.group/u/kazik)\
**Post date:** [October 1, 2020, 10:29pm UTC](https://openrndr.discourse.group/t/running-openrndr-on-raspberry-pi-4/151/1 "2020-10-01T22:29:53Z")

</div>

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 [shadertoy.com](http://shadertoy.com) 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?

---

<div class="post-metadata">

**Author:** ![edwin](https://avatars.discourse-cdn.com/v4/letter/e/73ab20/32.png) [@edwin](https://openrndr.discourse.group/u/edwin)\
**Post date:** [October 7, 2020, 5:24pm UTC](https://openrndr.discourse.group/t/running-openrndr-on-raspberry-pi-4/151/2 "2020-10-07T17:24:31Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![kazik](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/kazik/32/7_2.png) [@kazik](https://openrndr.discourse.group/u/kazik)\
**Post date:** [October 9, 2020, 9:23am UTC](https://openrndr.discourse.group/t/running-openrndr-on-raspberry-pi-4/151/3 "2020-10-09T09:23:34Z")

</div>

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.

> <https://github.com/patriciogonzalezvivo/glslViewer/issues/141>
>
> glslViewer installs via apt-get without issue, but attempting to run a shader with glslViewer from the command line results in:
> \* failed...

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [October 9, 2020, 10:02am UTC](https://openrndr.discourse.group/t/running-openrndr-on-raspberry-pi-4/151/4 "2020-10-09T10:02:54Z")

</div>

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:

> **[Raspberry Pi 4 is Now OpenGL ES 3.1 Conformant, Work on Vulkan Drivers Started...](https://www.cnx-software.com/2020/02/03/raspberry-pi-4-opengl-es-3-1-conformant-vulkan-drivers/)**
>
> The Raspberry Pi 4 is now OpenGL ES 3.1 conformant ensuring better 3D graphics and compute compability, and work on Vulkan drivers has already started.

And there’s an issue for that:

> <https://github.com/openrndr/openrndr/issues/103>
>
> To be able to run OPENRNDR on mobile devices and low power computers an GLES dri…ver is required.
> 
> Steps
> 
> \- \[\] rewrite every shader
> \- \[\] more
> \- \[\] steps

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:

> <https://gamedev.stackexchange.com/questions/150/what-is-the-difference-between-opengl-es-and-opengl>

---

<div class="post-metadata">

**Author:** ![abe](https://yyz2.discourse-cdn.com/free1/user_avatar/openrndr.discourse.group/abe/32/700_2.png) [@abe](https://openrndr.discourse.group/u/abe)\
**Post date:** [March 10, 2024, 9:29am UTC](https://openrndr.discourse.group/t/running-openrndr-on-raspberry-pi-4/151/5 "2024-03-10T09:29:19Z")

</div>

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

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](https://github.com/openrndr/openrndr/wiki/Building-OPENRNDR-and-ORX)
- Clone the [template](https://github.com/openrndr/openrndr-template) and make sure it uses the SNAPSHOT versions as described in the wiki page above
- Run the template with GLES:

```auto
./gradlew run -Dorg.openrndr.gl3.gl_type=gles

```

- Report back. Did the program run succesfully? 🙂
