nannou-org / nannou

A Creative Coding Framework for Rust.
https://nannou.cc/
6.05k stars 306 forks source link

Running Nannou at all produces segfault, but WGPU works as expected #979

Open shrinus opened 2 months ago

shrinus commented 2 months ago

Hello,

I am trying to get nannou to work on my arch linux computer and im having a bit of trouble

Currently, I am simply trying to produce a window with nannou.

``use nannou::prelude::*;

fn main() { nannou::app(model).update(update).simple_window(view).run(); }

struct Model {}

fn model(_app: &App) -> Model { Model {} }

fn update(_app: &App, _model: &mut Model, _update: Update) {}

fn view(_app: &App, _model: &Model, frame: Frame) { frame.clear(PURPLE); }``

running with cargo run --release causes a seg fault.

running gdb target/release/nannou_project yeilds

Thread 1 "nannou_project" received signal SIGSEGV, Segmentation fault. 0x00007fffee410857 in ?? () from /usr/lib/libnvidia-glcore.so.560.35.03

I think? this is a problem caused by openGl, so i ran some WGPU examples.

these work as expected, and even recognize my discrete GPU and use vulkan.

[2024-09-14T22:35:13Z INFO wgpu_examples::hello] Available adapters: [2024-09-14T22:35:13Z INFO wgpu_examples::hello] AdapterInfo { name: "NVIDIA GeForce RTX 3050 Ti Laptop GPU", vendor: 4318, device: 9632, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "560.35.03", backend: Vulkan } [2024-09-14T22:35:13Z INFO wgpu_examples::hello] AdapterInfo { name: "Mesa Intel(R) UHD Graphics (TGL GT1)", vendor: 32902, device: 0, device_type: IntegratedGpu, driver: "", driver_info: "4.6 (Core Profile) Mesa 24.2.2-arch1.1", backend: Gl } [2024-09-14T22:35:13Z INFO wgpu_examples::hello] Selected adapter: AdapterInfo { name: "NVIDIA GeForce RTX 3050 Ti Laptop GPU", vendor: 4318, device: 9632, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "560.35.03", backend: Vulkan }

$ cargo run --bin wgpu-examples boids Finished dev [unoptimized + debuginfo] target(s) in 0.11s Runningtarget/debug/wgpu-examples boids [2024-09-14T22:37:33Z INFO wgpu_examples::framework] Initializing wgpu... [2024-09-14T22:37:35Z INFO wgpu_core::instance] Adapter AdapterInfo { name: "NVIDIA GeForce RTX 3050 Ti Laptop GPU", vendor: 4318, device: 9632, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "560.35.03", backend: Vulkan } [2024-09-14T22:37:35Z INFO wgpu_examples::framework] Using NVIDIA GeForce RTX 3050 Ti Laptop GPU (Vulkan) [2024-09-14T22:37:35Z INFO wgpu_examples::framework] Entering event loop... [2024-09-14T22:37:35Z INFO wgpu_examples::framework] Surface resume PhysicalSize { width: 1600, height: 1200 } [2024-09-14T22:37:35Z INFO wgpu_examples::framework] Surface resize PhysicalSize { width: 1600, height: 1200 } [2024-09-14T22:37:36Z INFO wgpu_examples::framework] Frame time 2.37ms (422.6 FPS)

I tried exporting the WGPU_BACKEND environment variable but nothing changes.

tychedelia commented 2 months ago

This is almost certainly a problem with your drivers or wgpu upstream. You may want to ensure that your drivers are up to date and that you are testing the wgpu examples against 0.17.1, which is our wgpu version on master.