[GH-ISSUE #466] [Raspberry Pi] Gopher64 stuck with window not responding after opening up any game #48

Open
opened 2026-03-03 13:45:15 +03:00 by kerem · 9 comments
Owner

Originally created by @ell1e on GitHub (Jul 4, 2025).
Original GitHub issue: https://github.com/gopher64/gopher64/issues/466

My apologies if this is an obvious user error of some sort. But for me Gopher64 will always be stuck with window not responding after I tried opening up any game:

Image

I'm on a Raspberry Pi 5, Duckstation works flawlessly on this. Based on that, I expected Gopher64 to be usable as well, but something seems to be going wrong;

Affected hardware: Raspberry Pi 5 (ARM64)

Affected operating system: postmarketOS Edge based on Alpine Edge

Affected Gopher64 version: v1.0.18 installed via Flathub

Originally created by @ell1e on GitHub (Jul 4, 2025). Original GitHub issue: https://github.com/gopher64/gopher64/issues/466 My apologies if this is an obvious user error of some sort. But for me Gopher64 will always be stuck with window not responding after I tried opening up any game: ![Image](https://github.com/user-attachments/assets/bcd423c3-add7-44ef-ad41-ed442a09cfed) I'm on a Raspberry Pi 5, Duckstation works flawlessly on this. Based on that, I expected Gopher64 to be usable as well, but something seems to be going wrong; **Affected hardware:** Raspberry Pi 5 (ARM64) **Affected operating system:** postmarketOS Edge based on Alpine Edge **Affected Gopher64 version:** v1.0.18 installed via Flathub
Author
Owner

@loganmc10 commented on GitHub (Jul 4, 2025):

I'll be honest, I've never tested gopher64 on a raspberry pi, or even on ARM for that matter.

I may get around one day to picking up a Pi and troubleshooting it, but for now I don't really have any advice, I'm not sure what the issue could be.

<!-- gh-comment-id:3036427726 --> @loganmc10 commented on GitHub (Jul 4, 2025): I'll be honest, I've never tested gopher64 on a raspberry pi, or even on ARM for that matter. I may get around one day to picking up a Pi and troubleshooting it, but for now I don't really have any advice, I'm not sure what the issue could be.
Author
Owner

@ell1e commented on GitHub (Jul 4, 2025):

The GPU of the Raspberry Pi 5 is rather weak, so perhaps that could be a factor? I know it supports Vulkan, but probably not the latest modern extensions. KDE Plasma 6 runs perfectly fine with all the usual 3d effects though, so 3d acceleration definitely works.

<!-- gh-comment-id:3036811174 --> @ell1e commented on GitHub (Jul 4, 2025): The GPU of the Raspberry Pi 5 is rather weak, so perhaps that could be a factor? I know it supports Vulkan, but probably not the latest modern extensions. KDE Plasma 6 runs perfectly fine with all the usual 3d effects though, so 3d acceleration definitely works.
Author
Owner

@acidnine commented on GitHub (Aug 26, 2025):

I decided to test with my Pi 5, I was unable to launch it on the stock Raspberry Pi OS with Bookworm so I tested with Ubuntu 25.04 and the GUI appears to run fine but on launching a rom it appears to crash the same way. I'm not sure what else to do to get more detailed logging but am up to help out if I can.

Console output:

[INFO]: Targeting VK_KHR_present_wait latency to 1 frames.
[INFO]: Layer count: 2
[INFO]: Found layer: VK_LAYER_MESA_device_select.
[INFO]: Found layer: VK_LAYER_MESA_overlay.
[INFO]: Enabling instance extension: VK_KHR_surface.
[INFO]: Enabling instance extension: VK_KHR_wayland_surface.
[INFO]: Enabling instance extension: VK_EXT_debug_utils.
[INFO]: Enabling instance extension: VK_KHR_get_surface_capabilities2.
[INFO]: Enabling instance extension: VK_EXT_swapchain_colorspace.
[INFO]: Enabling instance extension: VK_EXT_surface_maintenance1.
[INFO]: Found Vulkan GPU: V3D 7.1.7.0
[INFO]: API: 1.3.305
[INFO]: Driver: 25.0.3
[INFO]: Found Vulkan GPU: llvmpipe (LLVM 19.1.7, 128 bits)
[INFO]: API: 1.4.305
[INFO]: Driver: 0.0.1
[INFO]: Using Vulkan GPU: V3D 7.1.7.0
[INFO]: Enabling device extension: VK_KHR_swapchain.
[INFO]: Enabling device extension: VK_KHR_external_semaphore_fd.
[INFO]: Enabling device extension: VK_KHR_external_memory_fd.
[INFO]: Enabling device extension: VK_EXT_external_memory_dma_buf.
[INFO]: Enabling device extension: VK_EXT_image_drm_format_modifier.
[INFO]: Enabling device extension: VK_EXT_index_type_uint8.
[INFO]: Enabling device extension: VK_KHR_maintenance5.
[INFO]: Enabling device extension: VK_KHR_performance_query.
[INFO]: Enabling device extension: VK_EXT_memory_budget.
[INFO]: Enabling device extension: VK_EXT_swapchain_maintenance1.
[INFO]: Using present mode: 1.
[INFO]: Current transform is enum 0x1.
[INFO]: Supported transform 0x1: IDENTITY_BIT_KHR.
[INFO]: Swapchain current extent: -1 x -1
[INFO]: Targeting 3 swapchain images.
[INFO]: Created swapchain 640 x 480 (fmt: 64, transform: 1).
[INFO]: Got 4 swapchain images.
[WARN]: VK_EXT_external_memory_host not supported or failed, falling back to a slower path.
[WARN]: Device does not support 8 and 16-bit integer arithmetic support. Falling back to 32-bit arithmetic everywhere.
Killed

<!-- gh-comment-id:3222553858 --> @acidnine commented on GitHub (Aug 26, 2025): I decided to test with my Pi 5, I was unable to launch it on the stock Raspberry Pi OS with Bookworm so I tested with Ubuntu 25.04 and the GUI appears to run fine but on launching a rom it appears to crash the same way. I'm not sure what else to do to get more detailed logging but am up to help out if I can. Console output: > [INFO]: Targeting VK_KHR_present_wait latency to 1 frames. > [INFO]: Layer count: 2 > [INFO]: Found layer: VK_LAYER_MESA_device_select. > [INFO]: Found layer: VK_LAYER_MESA_overlay. > [INFO]: Enabling instance extension: VK_KHR_surface. > [INFO]: Enabling instance extension: VK_KHR_wayland_surface. > [INFO]: Enabling instance extension: VK_EXT_debug_utils. > [INFO]: Enabling instance extension: VK_KHR_get_surface_capabilities2. > [INFO]: Enabling instance extension: VK_EXT_swapchain_colorspace. > [INFO]: Enabling instance extension: VK_EXT_surface_maintenance1. > [INFO]: Found Vulkan GPU: V3D 7.1.7.0 > [INFO]: API: 1.3.305 > [INFO]: Driver: 25.0.3 > [INFO]: Found Vulkan GPU: llvmpipe (LLVM 19.1.7, 128 bits) > [INFO]: API: 1.4.305 > [INFO]: Driver: 0.0.1 > [INFO]: Using Vulkan GPU: V3D 7.1.7.0 > [INFO]: Enabling device extension: VK_KHR_swapchain. > [INFO]: Enabling device extension: VK_KHR_external_semaphore_fd. > [INFO]: Enabling device extension: VK_KHR_external_memory_fd. > [INFO]: Enabling device extension: VK_EXT_external_memory_dma_buf. > [INFO]: Enabling device extension: VK_EXT_image_drm_format_modifier. > [INFO]: Enabling device extension: VK_EXT_index_type_uint8. > [INFO]: Enabling device extension: VK_KHR_maintenance5. > [INFO]: Enabling device extension: VK_KHR_performance_query. > [INFO]: Enabling device extension: VK_EXT_memory_budget. > [INFO]: Enabling device extension: VK_EXT_swapchain_maintenance1. > [INFO]: Using present mode: 1. > [INFO]: Current transform is enum 0x1. > [INFO]: Supported transform 0x1: IDENTITY_BIT_KHR. > [INFO]: Swapchain current extent: -1 x -1 > [INFO]: Targeting 3 swapchain images. > [INFO]: Created swapchain 640 x 480 (fmt: 64, transform: 1). > [INFO]: Got 4 swapchain images. > [WARN]: VK_EXT_external_memory_host not supported or failed, falling back to a slower path. > [WARN]: Device does not support 8 and 16-bit integer arithmetic support. Falling back to 32-bit arithmetic everywhere. > Killed
Author
Owner

@fac3l3ss79 commented on GitHub (Sep 21, 2025):

I successfully compiled in a Raspberry pi 5 with Bookworm and I get a similar console output as above with gopher64 not launching properly.

<!-- gh-comment-id:3316303271 --> @fac3l3ss79 commented on GitHub (Sep 21, 2025): I successfully compiled in a Raspberry pi 5 with Bookworm and I get a similar console output as above with gopher64 not launching properly.
Author
Owner

@loganmc10 commented on GitHub (Sep 23, 2025):

Can someone try to run a debug build, or cargo build --profile=release-with-debug and run it with gdb to see exactly where it crashed?

<!-- gh-comment-id:3325098579 --> @loganmc10 commented on GitHub (Sep 23, 2025): Can someone try to run a debug build, or `cargo build --profile=release-with-debug` and run it with gdb to see exactly where it crashed?
Author
Owner

@synthic commented on GitHub (Nov 15, 2025):

I ran a debug build on Trixie and this was the result:

(gdb) run /home/pi/n64/sm64.z64
Starting program: /home/pi/n64/gopher64/target/release-with-debug/gopher64 /home/pi/n64/sm64.z64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff753ece0 (LWP 21149)]
[New Thread 0x7ffff732ece0 (LWP 21150)]
[New Thread 0x7ffff711ece0 (LWP 21151)]
[New Thread 0x7ffff6f0ece0 (LWP 21152)]
[New Thread 0x7ffff6cfece0 (LWP 21153)]
[INFO]: Targeting VK_KHR_present_wait latency to 1 frames.
[INFO]: Layer count: 2
[INFO]: Found layer: VK_LAYER_MESA_device_select.
[INFO]: Found layer: VK_LAYER_MESA_overlay.
[INFO]: Enabling instance extension: VK_KHR_surface.
[INFO]: Enabling instance extension: VK_KHR_xlib_surface.
[INFO]: Enabling instance extension: VK_EXT_debug_utils.
[INFO]: Enabling instance extension: VK_KHR_get_surface_capabilities2.
[INFO]: Enabling instance extension: VK_EXT_swapchain_colorspace.
[INFO]: Enabling instance extension: VK_EXT_surface_maintenance1.
[New Thread 0x7fffd3faace0 (LWP 21155)]
[INFO]: Found Vulkan GPU: V3D 7.1.7.0
[INFO]:     API: 1.3.305
[INFO]:     Driver: 25.0.7
[INFO]: Found Vulkan GPU: llvmpipe (LLVM 19.1.7, 128 bits)
[INFO]:     API: 1.4.305
[INFO]:     Driver: 0.0.1
[INFO]: Using Vulkan GPU: V3D 7.1.7.0
[INFO]: Enabling device extension: VK_KHR_swapchain.
[INFO]: Enabling device extension: VK_KHR_external_semaphore_fd.
[INFO]: Enabling device extension: VK_KHR_external_memory_fd.
[INFO]: Enabling device extension: VK_EXT_external_memory_dma_buf.
[INFO]: Enabling device extension: VK_EXT_image_drm_format_modifier.
[INFO]: Enabling device extension: VK_EXT_index_type_uint8.
[INFO]: Enabling device extension: VK_KHR_maintenance5.
[INFO]: Enabling device extension: VK_KHR_performance_query.
[INFO]: Enabling device extension: VK_EXT_memory_budget.
[INFO]: Enabling device extension: VK_EXT_swapchain_maintenance1.
[New Thread 0x7ffff4d1ece0 (LWP 21156)]
[INFO]: Using present mode: 0.
[INFO]: Current transform is enum 0x1.
[INFO]: Supported transform 0x1: IDENTITY_BIT_KHR.
[INFO]: Swapchain current extent: 640 x 480
[INFO]: Targeting 3 swapchain images.
[New Thread 0x7fffd679ece0 (LWP 21157)]
[New Thread 0x7fffd5f8ece0 (LWP 21158)]
[INFO]: Created swapchain 640 x 480 (fmt: 44, transform: 1).
[INFO]: Got 3 swapchain images.
[New Thread 0x7fffd577ece0 (LWP 21159)]
[WARN]: VK_EXT_external_memory_host not supported or failed, falling back to a slower path.
[New Thread 0x7fffd4f6ece0 (LWP 21160)]
[WARN]: Device does not support 8 and 16-bit integer arithmetic support. Falling back to 32-bit arithmetic everywhere.
[New Thread 0x7fffd379ace0 (LWP 21161)]
[New Thread 0x7fffd2e7ece0 (LWP 21162)]
[New Thread 0x7fffd266ece0 (LWP 21163)]
[New Thread 0x7fffd1e5ece0 (LWP 21164)]
[Thread 0x7fffd1e5ece0 (LWP 21164) exited]
[New Thread 0x7fffd1e5ece0 (LWP 21165)]
^C
Thread 1 "gopher64" received signal SIGINT, Interrupt.
0x00007ffff79aefa8 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff79aefa8 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
#1  0x00007ffff79a2658 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
#2  0x00007ffff79a29f0 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
#3  0x00007ffff79a7af4 in ?? () from /lib/aarch64-linux-gnu/libc.so.6
#4  0x0000555557587ff8 in std::sys::thread::unix::Thread::join () at library/std/src/sys/thread/unix.rs:134
#5  0x0000555556ba50d8 in std::thread::JoinInner<()>::join<()> (self=...) at /rustc/ed61e7d7e242494fb7057f2657300d9e77bb4fcb/library/std/src/thread/mod.rs:1806
#6  std::thread::JoinHandle<()>::join<()> (self=...) at /rustc/ed61e7d7e242494fb7057f2657300d9e77bb4fcb/library/std/src/thread/mod.rs:1961
#7  0x0000555556d8a928 in gopher64::main::{async_block#0} () at src/main.rs:118
#8  0x0000555556d6f51c in tokio::runtime::park::{impl#4}::block_on::{closure#0}<gopher64::main::{async_block_env#0}> () at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/park.rs:285
#9  tokio::task::coop::with_budget<core::task::poll::Poll<core::result::Result<(), std::io::error::Error>>, tokio::runtime::park::{impl#4}::block_on::{closure_env#0}<gopher64::main::{async_block_env#0}>> (budget=..., f=...)
    at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167
#10 tokio::task::coop::budget<core::task::poll::Poll<core::result::Result<(), std::io::error::Error>>, tokio::runtime::park::{impl#4}::block_on::{closure_env#0}<gopher64::main::{async_block_env#0}>> (f=...)
    at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133
#11 tokio::runtime::park::CachedParkThread::block_on<gopher64::main::{async_block_env#0}> (self=<optimized out>, f=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/park.rs:285
#12 0x0000555556b95940 in tokio::runtime::context::blocking::BlockingRegionGuard::block_on<gopher64::main::{async_block_env#0}> (f=..., self=<optimized out>)
    at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/blocking.rs:66
#13 tokio::runtime::scheduler::multi_thread::{impl#0}::block_on::{closure#0}<gopher64::main::{async_block_env#0}> (blocking=<optimized out>)
    at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/mod.rs:87
#14 tokio::runtime::context::runtime::enter_runtime<tokio::runtime::scheduler::multi_thread::{impl#0}::block_on::{closure_env#0}<gopher64::main::{async_block_env#0}>, core::result::Result<(), std::io::error::Error>> (
    handle=0x7fffffffe9c0, allow_block_in_place=true, f=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65
#15 tokio::runtime::scheduler::multi_thread::MultiThread::block_on<gopher64::main::{async_block_env#0}> (self=<optimized out>, handle=0x7fffffffe9c0, future=...)
    at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/mod.rs:86
#16 tokio::runtime::runtime::Runtime::block_on_inner<gopher64::main::{async_block_env#0}> (self=<optimized out>, future=<error reading variable: Cannot access memory at address 0x0>)
    at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:370
#17 tokio::runtime::runtime::Runtime::block_on<gopher64::main::{async_block_env#0}> (self=<optimized out>, future=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342
#18 0x0000555556d8a034 in gopher64::main () at src/main.rs:162
(gdb) l
73	    )]
74	    clear_input_bindings: bool,
75	}
76	
77	#[tokio::main]
78	async fn main() -> std::io::Result<()> {
79	    let dirs = ui::get_dirs();
80	
81	    std::fs::create_dir_all(dirs.config_dir)?;
82	    std::fs::create_dir_all(dirs.data_dir.join("saves"))?;
(gdb) q
A debugging session is active.

	Inferior 1 [process 21147] will be killed.

Quit anyway? (y or n) y

Looks like it's getting stuck somewhere in the main function (line 78), hopefully this helps.

<!-- gh-comment-id:3536524647 --> @synthic commented on GitHub (Nov 15, 2025): I ran a debug build on Trixie and this was the result: ``` (gdb) run /home/pi/n64/sm64.z64 Starting program: /home/pi/n64/gopher64/target/release-with-debug/gopher64 /home/pi/n64/sm64.z64 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff753ece0 (LWP 21149)] [New Thread 0x7ffff732ece0 (LWP 21150)] [New Thread 0x7ffff711ece0 (LWP 21151)] [New Thread 0x7ffff6f0ece0 (LWP 21152)] [New Thread 0x7ffff6cfece0 (LWP 21153)] [INFO]: Targeting VK_KHR_present_wait latency to 1 frames. [INFO]: Layer count: 2 [INFO]: Found layer: VK_LAYER_MESA_device_select. [INFO]: Found layer: VK_LAYER_MESA_overlay. [INFO]: Enabling instance extension: VK_KHR_surface. [INFO]: Enabling instance extension: VK_KHR_xlib_surface. [INFO]: Enabling instance extension: VK_EXT_debug_utils. [INFO]: Enabling instance extension: VK_KHR_get_surface_capabilities2. [INFO]: Enabling instance extension: VK_EXT_swapchain_colorspace. [INFO]: Enabling instance extension: VK_EXT_surface_maintenance1. [New Thread 0x7fffd3faace0 (LWP 21155)] [INFO]: Found Vulkan GPU: V3D 7.1.7.0 [INFO]: API: 1.3.305 [INFO]: Driver: 25.0.7 [INFO]: Found Vulkan GPU: llvmpipe (LLVM 19.1.7, 128 bits) [INFO]: API: 1.4.305 [INFO]: Driver: 0.0.1 [INFO]: Using Vulkan GPU: V3D 7.1.7.0 [INFO]: Enabling device extension: VK_KHR_swapchain. [INFO]: Enabling device extension: VK_KHR_external_semaphore_fd. [INFO]: Enabling device extension: VK_KHR_external_memory_fd. [INFO]: Enabling device extension: VK_EXT_external_memory_dma_buf. [INFO]: Enabling device extension: VK_EXT_image_drm_format_modifier. [INFO]: Enabling device extension: VK_EXT_index_type_uint8. [INFO]: Enabling device extension: VK_KHR_maintenance5. [INFO]: Enabling device extension: VK_KHR_performance_query. [INFO]: Enabling device extension: VK_EXT_memory_budget. [INFO]: Enabling device extension: VK_EXT_swapchain_maintenance1. [New Thread 0x7ffff4d1ece0 (LWP 21156)] [INFO]: Using present mode: 0. [INFO]: Current transform is enum 0x1. [INFO]: Supported transform 0x1: IDENTITY_BIT_KHR. [INFO]: Swapchain current extent: 640 x 480 [INFO]: Targeting 3 swapchain images. [New Thread 0x7fffd679ece0 (LWP 21157)] [New Thread 0x7fffd5f8ece0 (LWP 21158)] [INFO]: Created swapchain 640 x 480 (fmt: 44, transform: 1). [INFO]: Got 3 swapchain images. [New Thread 0x7fffd577ece0 (LWP 21159)] [WARN]: VK_EXT_external_memory_host not supported or failed, falling back to a slower path. [New Thread 0x7fffd4f6ece0 (LWP 21160)] [WARN]: Device does not support 8 and 16-bit integer arithmetic support. Falling back to 32-bit arithmetic everywhere. [New Thread 0x7fffd379ace0 (LWP 21161)] [New Thread 0x7fffd2e7ece0 (LWP 21162)] [New Thread 0x7fffd266ece0 (LWP 21163)] [New Thread 0x7fffd1e5ece0 (LWP 21164)] [Thread 0x7fffd1e5ece0 (LWP 21164) exited] [New Thread 0x7fffd1e5ece0 (LWP 21165)] ^C Thread 1 "gopher64" received signal SIGINT, Interrupt. 0x00007ffff79aefa8 in ?? () from /lib/aarch64-linux-gnu/libc.so.6 (gdb) bt #0 0x00007ffff79aefa8 in ?? () from /lib/aarch64-linux-gnu/libc.so.6 #1 0x00007ffff79a2658 in ?? () from /lib/aarch64-linux-gnu/libc.so.6 #2 0x00007ffff79a29f0 in ?? () from /lib/aarch64-linux-gnu/libc.so.6 #3 0x00007ffff79a7af4 in ?? () from /lib/aarch64-linux-gnu/libc.so.6 #4 0x0000555557587ff8 in std::sys::thread::unix::Thread::join () at library/std/src/sys/thread/unix.rs:134 #5 0x0000555556ba50d8 in std::thread::JoinInner<()>::join<()> (self=...) at /rustc/ed61e7d7e242494fb7057f2657300d9e77bb4fcb/library/std/src/thread/mod.rs:1806 #6 std::thread::JoinHandle<()>::join<()> (self=...) at /rustc/ed61e7d7e242494fb7057f2657300d9e77bb4fcb/library/std/src/thread/mod.rs:1961 #7 0x0000555556d8a928 in gopher64::main::{async_block#0} () at src/main.rs:118 #8 0x0000555556d6f51c in tokio::runtime::park::{impl#4}::block_on::{closure#0}<gopher64::main::{async_block_env#0}> () at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/park.rs:285 #9 tokio::task::coop::with_budget<core::task::poll::Poll<core::result::Result<(), std::io::error::Error>>, tokio::runtime::park::{impl#4}::block_on::{closure_env#0}<gopher64::main::{async_block_env#0}>> (budget=..., f=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:167 #10 tokio::task::coop::budget<core::task::poll::Poll<core::result::Result<(), std::io::error::Error>>, tokio::runtime::park::{impl#4}::block_on::{closure_env#0}<gopher64::main::{async_block_env#0}>> (f=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/task/coop/mod.rs:133 #11 tokio::runtime::park::CachedParkThread::block_on<gopher64::main::{async_block_env#0}> (self=<optimized out>, f=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/park.rs:285 #12 0x0000555556b95940 in tokio::runtime::context::blocking::BlockingRegionGuard::block_on<gopher64::main::{async_block_env#0}> (f=..., self=<optimized out>) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/blocking.rs:66 #13 tokio::runtime::scheduler::multi_thread::{impl#0}::block_on::{closure#0}<gopher64::main::{async_block_env#0}> (blocking=<optimized out>) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/mod.rs:87 #14 tokio::runtime::context::runtime::enter_runtime<tokio::runtime::scheduler::multi_thread::{impl#0}::block_on::{closure_env#0}<gopher64::main::{async_block_env#0}>, core::result::Result<(), std::io::error::Error>> ( handle=0x7fffffffe9c0, allow_block_in_place=true, f=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/context/runtime.rs:65 #15 tokio::runtime::scheduler::multi_thread::MultiThread::block_on<gopher64::main::{async_block_env#0}> (self=<optimized out>, handle=0x7fffffffe9c0, future=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/mod.rs:86 #16 tokio::runtime::runtime::Runtime::block_on_inner<gopher64::main::{async_block_env#0}> (self=<optimized out>, future=<error reading variable: Cannot access memory at address 0x0>) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:370 #17 tokio::runtime::runtime::Runtime::block_on<gopher64::main::{async_block_env#0}> (self=<optimized out>, future=...) at /home/pi/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:342 #18 0x0000555556d8a034 in gopher64::main () at src/main.rs:162 (gdb) l 73 )] 74 clear_input_bindings: bool, 75 } 76 77 #[tokio::main] 78 async fn main() -> std::io::Result<()> { 79 let dirs = ui::get_dirs(); 80 81 std::fs::create_dir_all(dirs.config_dir)?; 82 std::fs::create_dir_all(dirs.data_dir.join("saves"))?; (gdb) q A debugging session is active. Inferior 1 [process 21147] will be killed. Quit anyway? (y or n) y ``` Looks like it's getting stuck somewhere in the main function (line 78), hopefully this helps.
Author
Owner

@loganmc10 commented on GitHub (Nov 15, 2025):

I think it is just the case that the video card doesn't support VK_EXT_external_memory_host

VK_EXT_external_memory_host not supported or failed, falling back to a slower path.

I know that it lists it as a warning in the logs, but in the readme for parallel-rdp it says:

For integration in emulators, VK_EXT_external_memory_host is currently required

I don't think it works without that extension.

<!-- gh-comment-id:3536561816 --> @loganmc10 commented on GitHub (Nov 15, 2025): I think it is just the case that the video card doesn't support VK_EXT_external_memory_host ``` VK_EXT_external_memory_host not supported or failed, falling back to a slower path. ``` I know that it lists it as a warning in the logs, but in the readme for parallel-rdp it says: ``` For integration in emulators, VK_EXT_external_memory_host is currently required ``` I don't think it works without that extension.
Author
Owner

@synthic commented on GitHub (Nov 15, 2025):

Maybe it's a bug in parallel-rdp, or possibly in the Raspberry Pi v3d driver implementation. When running vulkaninfo it prints this:

Device Extensions: count = 156
	VK_AMDX_shader_enqueue                             : extension revision 2
	VK_ANDROID_external_memory_android_hardware_buffer : extension revision 5
	VK_ARM_rasterization_order_attachment_access       : extension revision 1
	VK_EXT_4444_formats                                : extension revision 1
	VK_EXT_attachment_feedback_loop_dynamic_state      : extension revision 1
	VK_EXT_attachment_feedback_loop_layout             : extension revision 2
	VK_EXT_border_color_swizzle                        : extension revision 1
	VK_EXT_calibrated_timestamps                       : extension revision 2
	VK_EXT_color_write_enable                          : extension revision 1
	VK_EXT_conditional_rendering                       : extension revision 2
	VK_EXT_custom_border_color                         : extension revision 12
	VK_EXT_depth_clip_control                          : extension revision 1
	VK_EXT_depth_clip_enable                           : extension revision 1
	VK_EXT_depth_range_unrestricted                    : extension revision 1
	VK_EXT_descriptor_buffer                           : extension revision 1
	VK_EXT_descriptor_indexing                         : extension revision 2
	VK_EXT_device_generated_commands                   : extension revision 1
	VK_EXT_dynamic_rendering_unused_attachments        : extension revision 1
	VK_EXT_extended_dynamic_state                      : extension revision 1
	VK_EXT_extended_dynamic_state2                     : extension revision 1
	VK_EXT_extended_dynamic_state3                     : extension revision 2
	VK_EXT_external_memory_dma_buf                     : extension revision 1
	VK_EXT_external_memory_host                        : extension revision 1

It looks like the extension is available so I guess it's just not being detected for some reason.

<!-- gh-comment-id:3536584202 --> @synthic commented on GitHub (Nov 15, 2025): Maybe it's a bug in parallel-rdp, or possibly in the Raspberry Pi v3d driver implementation. When running `vulkaninfo` it prints this: ``` Device Extensions: count = 156 VK_AMDX_shader_enqueue : extension revision 2 VK_ANDROID_external_memory_android_hardware_buffer : extension revision 5 VK_ARM_rasterization_order_attachment_access : extension revision 1 VK_EXT_4444_formats : extension revision 1 VK_EXT_attachment_feedback_loop_dynamic_state : extension revision 1 VK_EXT_attachment_feedback_loop_layout : extension revision 2 VK_EXT_border_color_swizzle : extension revision 1 VK_EXT_calibrated_timestamps : extension revision 2 VK_EXT_color_write_enable : extension revision 1 VK_EXT_conditional_rendering : extension revision 2 VK_EXT_custom_border_color : extension revision 12 VK_EXT_depth_clip_control : extension revision 1 VK_EXT_depth_clip_enable : extension revision 1 VK_EXT_depth_range_unrestricted : extension revision 1 VK_EXT_descriptor_buffer : extension revision 1 VK_EXT_descriptor_indexing : extension revision 2 VK_EXT_device_generated_commands : extension revision 1 VK_EXT_dynamic_rendering_unused_attachments : extension revision 1 VK_EXT_extended_dynamic_state : extension revision 1 VK_EXT_extended_dynamic_state2 : extension revision 1 VK_EXT_extended_dynamic_state3 : extension revision 2 VK_EXT_external_memory_dma_buf : extension revision 1 VK_EXT_external_memory_host : extension revision 1 ``` It looks like the extension is available so I guess it's just not being detected for some reason.
Author
Owner

@synthic commented on GitHub (Nov 16, 2025):

Update: I was looking at the wrong device apparently. That list was for the llvmpipe device (software renderer). Unfortunately, V3D does not currently support the VK_EXT_external_memory_host extension.

I tried to run gopher64 with GRANITE_VULKAN_DEVICE_INDEX=1 set and it actually works! However, the FPS is quite low as could be expected from a software renderer.

Looks like there is an open issue regarding this here, so at least they are working on adding it:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/5222

<!-- gh-comment-id:3537225790 --> @synthic commented on GitHub (Nov 16, 2025): Update: I was looking at the wrong device apparently. That list was for the `llvmpipe` device (software renderer). Unfortunately, `V3D` does not currently support the `VK_EXT_external_memory_host` extension. I tried to run gopher64 with `GRANITE_VULKAN_DEVICE_INDEX=1` set and it actually works! However, the FPS is quite low as could be expected from a software renderer. Looks like there is an open issue regarding this here, so at least they are working on adding it: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5222
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/gopher64#48
No description provided.