It is definitely a Vulkan problem. Disabling the Vulkan driver seems to be quite stable. Also, very simple Vulkan projects like a single panel with text seems stable. The banding of big images is still there. Sometimes it runs in the editor, sometime it crashes.
Basically, it looks like the devs have not yet had the resources to seriously debug the Broadcom Pi Vulkan driver interface. The Igalia people have the driver passing Vulkan conformance tests, but it must have subtle differences to the AMD/Nvidia Vulkan running on x86 machines.
Has anyone tested Android or Apple ARM computers? Are there any ARM machines that run Godot 4 perfectly?
Its a good thing we got Vulkan to solve all the compatibility problems
Beta 1 worked in the editor once with the complex project, but there are many errors reported, so it may have just been luck. RPi is not viable in forward mobile in any 4.3 presently.
To disable Vulkan, select “Compatibility” in the top right corner. This can also be done by editing the project.godot file in the project directory.
Another way to test this is to use a stable x86 machine to create a project, set the renderer to either “mobile” or “compatibility”. Transfer the whole project directory to the Pi 5.
As far as I can see, a “compatibility” project on RPi with 4.3b2 works perfectly.
Another clue is that the Godot Project Manager (this should be what you see upon executing Godot_v4.3-beta2_linux.arm64) has options to “edit” or “run” a project. This will give different results, as “run” does not start the editor.
My complex project crashes the editor in “mobile” mode, but runs via the “Run” from the Godot Project Manager. The only visible problem is the banding of images larger than 1024 pixels.
At this point, Godot with Vulkan on RPi is not viable. There are two obvious problems -
The editor is broken on RPi in “mobility” mode which selects Vulkan. Not much point in characterizing this, as the errors would make a lot more sense to the devs.
The Vulkan implimentation can’t load images greater than 1024 in either X or Y. The loaded image is banded with missing data. Again, this is probably simple to diagnose if you are familiar with Godot render code.
One of the big advantages of Godot is the ability to transport a project directory from x86 across to arm64 (RPi). Not sure about windows projects - I haven’t tried that, but it should work. This makes it easy to do testing, as you don’t need the RPi to edit or change your project.
Anyone who is interested in targeting low end machines should set up a Pi5 and try their projects on that platform. If you have any “inefficient” code in your project, it will become very apparent on the Pi5. A Pi5 is a reasonable approximation of a console like Switch, so checking the performance could be helpful.
I don’t have time to work on this currently. My RPi5 is taking dust
I don’t think it’s a priority because I don’t think RPi’s are powerful enough to make good use of the Vulkan renderers currently, and also it’s not my domain of expertise. I do want to improve the overall UX and avoid things crashing, but for any serious project on RPi, I would advise using the GL Compatibility renderer.
Hopefully this shall help some people as I was hacking away to get this working, searching forums and did not find an answer. But actually did get Godot v4.3stable.official working and its not that many steps on a rasp pi 5.
Applied all updates available to me (as prompted by the OS on login). I know this could be a variable depending on when you attempt this, as it could have changed. But also think this might be non critical to this working and could be skipped?
Extracted this zip to a location on my machine. This was a double click from the GUI where the extractor kicked in and created an executable from the zip. The exe was named “Godot_v4.3-stable_linux.arm32”.
Double-clicked the extracted exe gave a prompt “This file … is executable. Do you want to execute it?” Which you click “Execute” and Godot starts!
I have repeated these steps on a fresh SDCARD install and all worked.
TBH. Im not sure if this is still a challenge for people, but I’ve not found much in way of “how to do this” on googling so hope this helps.
Sorry, my last post was garbled, so I wanted to run some more tests and correct it. Unfortunately I no longer have access to a RPi5, but this is where I got to with my RPi4, and I’ll rerun on a RPi5 soon.
The game is a pretty basic 2D one , and runs well using Vulkan on PC, SteamDeck, and macOS.
As I’m targeting the Picade I cross-compiled for Arm32 on my PC. The game generally runs fine, but I’ve been unable to get it rendering through Vulkan and, far as I can tell, it always falls back to OpenGL ES, with the warning:
Warning: Platform supports less than 48 textures per stage which is less than required by the Clustered renderer. Defaulting to Mobile renderer.
I’ve tried it on Raspbian Bullseye and Bookworm, as per below, but that error seems to suggest I haven’t got a scooby of getting it running through Vulkan.
However, what I can say is how amazing it is I can get the game running on a Pi with so little effort. Although I’d love to get Vulkan working, in my case OpenGL ES will possibly suffice.
I just downloaded the arm64 4.4 dev7 and tried it out. Fully working now on Pi5 with forward render and Vulkan! Godot auto-reverts to Mobile render based on vulkan implementation.
Editor works, and compiled program works. I even did a test with RPi Connect operating across local net to x86 linux machine. Even across Connect I am seeing 38-40fps at 1920x1080. Without Connect, 43fps. That is pretty good, I would say.
Reverting to compatability mode returns 50+fps, so the RPi vulkan is slower than GLES. The reason for this is not clear, and could possibly be related to the new wayland WM. A 3D test and comparison would be informative. Also, we may see improvements in the RPi Vulkan performance over time.
The test program is only 2D at the moment, so I can’t verify 3d operation or performance.
So, good job Godot devs! The Pi5 is now an equal partner in the Godot world.
Just copy a Godot project directory from your x86 PC and put it on your Pi5. Run it.
Hopefully many Godot game developers will try this and report the results. It is (now) a cheap and painless experiment.
Raspberry Pi have just released the Pi 500 - which is like a console device. For Godot game devs, that could be a new audience for their game.
Hey i built a .deb package that installs godot 4.3 and the editor works and the testing phase is the only thing left to complete it works very well on my rpi5 4gb but i want to test it on other pis as well if you can please help me test if you want i can email you the .deb file to install and if it works i will contribute this to godots own website. Anyone interested ??? reply for info
Using vulkan the frame rate is definitely GPU limited. I turned the GPU monitor on and it is maxed out. Limiting the FPS to 30, the GPU meter goes down to about 75%.
Running under the editor the Pi crashed after about 1 day. I will try a compiled version to see if it is an editor issue.
The other possibility is that the GPU maxed out may cause a crash. I will see if I can get the app to run at 30fps for a week with no issues.
One thing to note is that the Pi Vulkan driver is probably not battle tested yet as there don’t seem to be many serious vulkan games (pi based) out there so far.
I exported my project on the Pi 5 and started it. It has been running for almost 2 weeks - so very stable. That was a project created on the x86 linux PC and the whole directory copied to the Pi 5. The export and compile all done on the Pi5.
The crash I reported in my previous post was actually caused by using an inadequate powersupply and USB C cable. Use the RPi 27W PSU for intensive use.
The RPi will throttle if it overheats - that is not the problem. If the voltage from the PSU drops below a trip voltage, the Pi will reset. If you use a non qualified PSU and USB-C cable, the resistance in the cable may be enough to drop the volage at the Pi if the current spikes above 2.X amps.
While running the Godot editor + the app, the CPU and GPU monitors showed low CPU and max GPU. This suggests that saturated GPU draws a lot of current.
The bottom line is that from Godot 4.4 dev7, the Pi5 is a qualified platform including vulkan drivers. 3D is yet to be fully tested. Hopefully we will see more use of Godot on the Raspberry Pi (including the new Pi500).