-
-
Notifications
You must be signed in to change notification settings - Fork 535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add OpenGL Support #74
Comments
I'm getting the same error: thread 'main' panicked at 'Failed to create renderer: VkError(ERROR_INITIALIZATION_FAILED)', src/libcore/result.rs:1165:5 stack backtrace: 0: backtrace::backtrace::libunwind::trace at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88 1: backtrace::backtrace::trace_unsynchronized at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66 2: std::sys_common::backtrace::_print_fmt at src/libstd/sys_common/backtrace.rs:77 3: ::fmt at src/libstd/sys_common/backtrace.rs:61 4: core::fmt::write at src/libcore/fmt/mod.rs:1028 5: std::io::Write::write_fmt at src/libstd/io/mod.rs:1412 6: std::sys_common::backtrace::_print at src/libstd/sys_common/backtrace.rs:65 7: std::sys_common::backtrace::print at src/libstd/sys_common/backtrace.rs:50 8: std::panicking::default_hook::{{closure}} at src/libstd/panicking.rs:188 9: std::panicking::default_hook at src/libstd/panicking.rs:205 10: std::panicking::rust_panic_with_hook at src/libstd/panicking.rs:464 11: std::panicking::continue_panic_fmt at src/libstd/panicking.rs:373 12: rust_begin_unwind at src/libstd/panicking.rs:302 13: core::panicking::panic_fmt at src/libcore/panicking.rs:139 14: core::result::unwrap_failed at src/libcore/result.rs:1165 15: core::result::Result::expect at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libcore/result.rs:960 16: neovide::window::ui_loop at src/window.rs:58 17: std::rt::lang_start::{{closure}} at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14/src/libstd/rt.rs:61 18: std::rt::lang_start_internal::{{closure}} at src/libstd/rt.rs:48 19: std::panicking::try::do_call at src/libstd/panicking.rs:287 20: __rust_maybe_catch_panic at src/libpanic_unwind/lib.rs:78 21: std::panicking::try at src/libstd/panicking.rs:265 22: std::panic::catch_unwind at src/libstd/panic.rs:396 23: std::rt::lang_start_internal at src/libstd/rt.rs:47 24: main 25: __libc_start_main 26: _start note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. |
Similar error for me
Looks like there's something unstable with either our envs or the dependencies. |
This feels like an issue with your graphics driver setup. Neovide uses vulkan which has shaky support on some systems. A quick search shows up https://askubuntu.com/questions/67567/how-to-fix-error-xlib-extension-nv-glx-missing-on-display which seems relevant. Unfortunately I am not an expert on linux systems :( |
I have some thoughts for how to abstract the renderer in order to target more systems. Thats a pretty large task however. There are a couple of avenues. Skulpin used Vulkan, but skia does support opengl so it would be interesting to try to make an equivalent library on top of opengl. Maybe extend Skulpin to support opengl via a flag... Personally I like Vulkan on windows systems because it is well supported and gives strong control over the rendering, but it seems like opengl might be more stable on linux or macos. Like I said above though I don't have easy access to a linux box, especially not one with a modern gpu, so I would need someone to push this forward. If I can find a collaborator for this effort I will for sure help in any way I can. |
I'll try to play around with it to see what is exactly wrong. Probably old drivers, hopefully I'll get this working, for now I plan on to reinstall graphic drivers and Vulkan SDK. From good news: app runs perfectly fine on MacOS. |
I have brought the issue up with the upstream skulpin library. We'll see |
For my case it's clear - hardware does not support Vulkan at all. It may also be the case for you guys since looks like skuplin will try to run on your integrated graphics card (if I'm not mistaken): // window.rs # 58
let mut skulpin_renderer = RendererBuilder::new()
.prefer_integrated_gpu() |
I think that's the case. My gpu is not supported either. |
Yes I set the app to prefer the integrated gpu, but it should fallback to the discrete if it doesn't work. I think the long term solution is to add opengl support. Which will likely take some time. Like I said above, I would love some help in this area. |
Upstream opengl support tracked here: aclysma/skulpin#37. Its going to be a while before I can go tackle this. So if somebody wants to take it up that would be great. |
I had the same issue described here, and got it working after installing a few packages:
This should work on most Ubuntu-based distributions |
Thanks for the suggestion! I will add it to the readme |
I had similar error:
And just as @rainerborene, I've solved this by installing vulkan drivers. My system is:
and CPU is Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz I've installed vulkan drivers via:
After that neovide worked immediately without reboot. |
@max-lv Vulkan is not supported on older devices.
I already have |
@pickfire So does neovide work for you or does it not? |
No, I failed to build from source with some SDL linking issue but I guess the build won't work too since vulkan does not work on my device. |
Your system looks more than capable of running Vulkan, though you haven't provided your GPU or the linking error. Arch Linux has a fairly high curve for setting up Vulkan, since there are several different packages you need to install. |
Intel HD Graphics 3000 |
Do you mean this linking issue? #306 Edit: yeah I think it might be a gpu problem. https://www.intel.com/content/www/us/en/support/articles/000005524/graphics.html |
Does not work on Arch within a vmware workstation player 16 VM too. Not sure if it's because of Arch or the fact that it's running in a VM though. |
superseded by #491 |
Backtrace in debug build:
The text was updated successfully, but these errors were encountered: