ec- / Quake3e

Improved Quake III Arena engine
GNU General Public License v2.0
1.15k stars 148 forks source link

Notes on Raspberry Pi 4 Model B Vulkan support #287

Open kungfooman opened 3 weeks ago

kungfooman commented 3 weeks ago

If it wasn't for @ensiform I would have probably never figured this out. I'm using TwisterOS and apt install libsdl2-dev only installs version 2.0.10+5rpi but 2.3 is needed, I used this one:

sudo apt install unp
wget https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.30.3.zip
unp release-2.30.3.zip
cd SDL[tab]
make
sudo make install

It would fail previously with:

Initializing Vulkan display
...setting mode -2: 1024 768
Couldn't get a visual

And a better error message when doing +set developer 1:

SDL_CreateWindow failed: Vulkan support is either not configured in SDL or not available in current SDL video driver (x11) or platform (same message displays like 17 times)

Afterwards I had to rebuild Q3E once more... but now I can finally run it with Vulkan!

Ideally there should be a SDL minimally supported version check?

ec- commented 3 weeks ago

IIRC Vulkan support has beed added to SDL2 since 2.0.5 otherwise it wouldn't even compile - that's why USE_VULKAN_API definition was added to compile in legacy environments

kungfooman commented 3 weeks ago

IIRC Vulkan support has beed added to SDL2 since 2.0.5 otherwise it wouldn't even compile - that's why USE_VULKAN_API definition was added to compile in legacy environments

Good point, thank you, I just know that it doesn't work even though it compiles, as you say. Maybe @ensiform knows why it doesn't work, even though it compiles?

ec- commented 3 weeks ago

Vulkan support is either not configured in SDL

I guess that when SDL 2.0.10+5rpi came out - there were no official Vulkan driver yet available so they run ./configure (or whatever) script and compile it without Vulkan support

@kungfooman could you point on what is located inside 2.0.10+5rpi development package, I'm interested in SDL_config.h - did it contains something like that:

/* Enable Vulkan support */
#define SDL_VIDEO_VULKAN 1