learn-wgpu VS vulkano

Compare learn-wgpu vs vulkano and see what are their differences.

vulkano

Safe and rich Rust wrapper around the Vulkan API (by vulkano-rs)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
learn-wgpu vulkano
75 22
1,378 4,287
- 1.3%
8.0 9.6
11 days ago 6 days ago
Rust Rust
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

learn-wgpu

Posts with mentions or reviews of learn-wgpu. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-19.
  • Practicing Rust, Learning Bevy, Creating a WASM Snake Game for the Browser
    4 projects | news.ycombinator.com | 19 Feb 2024
    Nice.

    Speaking of Snake game, if you want to go even deeper, you can try to use the wgpu crate to combine Rust and WebGPU to write everything from scratch. Here is the tutorial:

    https://sotrh.github.io/learn-wgpu/#what-is-wgpu

    I once wrote a code editor with wgpu, from font rendering to char/line state management (very rough) for music live coding:

    https://github.com/glicol/glicol-wgpu

    It runs in browsers, even including Safari!

  • Please review my ECS geospatial engine so far
    2 projects | /r/rust_gamedev | 10 Dec 2023
  • Realtime Ray Marching implemented with Rust and wgpu
    3 projects | /r/rust_gamedev | 6 Dec 2023
    https://sotrh.github.io/learn-wgpu/ This is probably the best resource out there for learning wgpu specifically. If you're unfamiliar with graphics, the learnopengl one is good. If you've got experience though, jumping right into that one is a shout or looking at some vulkan ones as they're pretty similar in terms of architecture.
  • Is it possible and realistic to learn independent of an API?
    3 projects | /r/GraphicsProgramming | 6 Dec 2023
    - https://sotrh.github.io/learn-wgpu
  • What would be a good project structure/ design for a game engine using WebGPU?
    2 projects | /r/webgpu | 3 Dec 2023
    Most of The WGPU I learnt is from https://sotrh.github.io/learn-wgpu/ but it doesn't really talk about designing n stuff, I thought of checking out the source code for Bevy or even games like veloren. But well, their codebases are pretty big to get started in the first place.
  • Trying to learn wgpu
    2 projects | /r/rust | 29 Jun 2023
    If you haven't seen it: https://sotrh.github.io/learn-wgpu/ is a good introduction that will explain most of what you asked, then can refer to rend3d or bevys renderer to see how a render graph works.
  • WebGPU with C++ ?
    5 projects | /r/webgpu | 29 Jun 2023
    I suggest looking into Rust for developing WASM applications with WebGPU, since Rust has in my experience way better support for WASM than c++. wgpu is the implementation of the WebGPU standard in rust and is very well documented. It also isn't just a backend for WebGPU but also for OpenGL, WebGL, Vulkan, Metal and DirectX, so you application can run on every device. There is a great tutorial series here.
  • What is Rust's potential in game development?
    12 projects | /r/rust | 15 Jun 2023
    So my advice would be to try Bevy, but don't force it if it doesn't work for you. If you're interested in more "low-level" graphics programming or you have some experience in that area, then learning wgpu is another thing you can do (and if you start doing advanced things with Bevy, you will want to be familiar with wgpu anyway)
  • Wgpu Questions: Vertex Buffers
    2 projects | /r/rust | 5 Jun 2023
    When should I create encoders and render passes? I'm following these WebGPU tutorials here, and it creates both an encoder and render pass from that encoder on a per-frame-basis. Can it be expensive to create these each frame? Should I at least cache the encoder to somewhere more persistent, so that I'm not creating a new one each frame? It looks like creating render passes need to be created each frame because they need to be dropped from their scopes in order to finish the render pass before submitting the queue.
  • Custom Intermediate buffers/textures for shaders
    3 projects | /r/godot | 23 May 2023
    For context, I've got rudimentary knowledge of how to work with shaders through learnopengl.com, and https://sotrh.github.io/learn-wgpu/.

vulkano

Posts with mentions or reviews of vulkano. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-17.
  • Hey Rustaceans! Got a question? Ask here (16/2023)!
    15 projects | /r/rust | 17 Apr 2023
    There is also [Vulkano](https://github.com/vulkano-rs/vulkano). It has a safe high level api and lower level layers, all the way down to [ash](https://github.com/ash-rs/ash) which is more or less raw vulkan. It's more explicit and verbose than [wgpu](https://github.com/gfx-rs/wgpu) though, so maybe try wgpu first and see how you like it.
  • How to learn writing a Wayland compositor?
    6 projects | /r/rust | 25 Mar 2023
    Understand Wayland concepts: Familiarize yourself with the basic concepts and principles of Wayland. This will help you gain a solid understanding of how the system works. You can refer to the official Wayland documentation (https://wayland.freedesktop.org/docs/html/) and the Wayland book (https://wayland-book.com/). Learn Rust: If you're not already proficient in Rust, take some time to learn the language. The Rust Book (https://doc.rust-lang.org/book/) is a great place to start. Study existing Wayland compositors: Since you mentioned Anvil and smallvil, you can study their source code to gain insights into how they're designed and implemented. Try to understand the structure and how different components interact with each other. Dive into Smithay: Smithay (https://github.com/Smithay/smithay) is a Rust library for building Wayland compositors. Familiarize yourself with the library and its components. You can start by studying the provided examples and reading the API documentation. Learn graphics programming: Since you're interested in graphics effects, you'll need to learn about graphics programming concepts, such as shaders, framebuffers, and texturing. Vulkan (https://www.vulkan.org/) is a popular graphics API that you can use with Rust. Check out the following resources to learn more about Vulkan and graphics programming in Rust: Vulkan Tutorial (https://vulkan-tutorial.com/) gfx-rs (https://github.com/gfx-rs/gfx), a Rust graphics library Vulkano (https://github.com/vulkano-rs/vulkano), a safe, pure-Rust wrapper around the Vulkan API Start small: Break down the compositor project into smaller, manageable tasks. Begin by implementing basic functionality, like setting up a window and drawing simple shapes. Gradually add more features, such as input handling and window management. Ask for help: Join the Wayland and Rust communities to ask questions and seek advice. You can find them on forums, mailing lists, and chat platforms like Discord or IRC. The Wayland mailing list (https://lists.freedesktop.org/mailman/listinfo/wayland-devel) and the Rust programming subreddit (https://www.reddit.com/r/rust/) are good places to start. Iterate and experiment: As you progress, keep experimenting with different graphics effects and shaders. Try to implement the features you're interested in, such as blur, window previews, and window switching.
  • I made JSON.parse() 2x faster
    4 projects | /r/programming | 6 Mar 2023
  • Is C++ still the language when entering 3D programming in 2023?
    6 projects | /r/gamedev | 1 Feb 2023
    Something like vulkano in Rust or zig-gamedev in zig might be a much more enjoyable approach: They're similarly bare metal languages but have a lot of advantages over C++ (borrow checker's safety, simpler syntax). However, they're not commonly used by big studios.
  • Silverblue loads nouveau instead of installed nvidia
    3 projects | /r/silverblue | 12 Apr 2022
    rpm-ostree install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo rpm-ostree uninstall akmod-nvidia sudo rpm-ostree install akmod-nvidia-470xx rpm-ostree kargs --append=rd.driver.blacklist=nouveau --append=modprobe.blacklist=nouveau --append=nvidia-drm.modeset=1 sudo systemctl reboot sudo rpm-ostree install nvidia-settings-470xx xorg-x11-drv-nvidia-470xx-power sudo rpm-ostree uninstall xorg-x11-drv-nvidia-cuda sudo rpm-ostree install xorg-x11-drv-nvidia-470xx-cuda sudo rpm-ostree install xorg-x11-drv-nvidia-470xx-devel sudo rpm-ostree install xorg-x11-drv-nvidia-470xx-cuda-devel sudo rpm-ostree install cuda-samples sudo rpm-ostree install vulkan-tools vkmark mesa-vulkan-devel sudo rpm-ostree install libshaderc-devel sudo rpm-ostree install clang clang-tools-extra libstdc++-devel sudo rpm-ostree install glib2-devel glib-devel avahi-gobject-devel sudo rpm-ostree install cairo-devel pango-devel gdk-pixbuf2-devel sudo rpm-ostree install graphene-devel gtk4-devel cairo-gobject-devel sudo systemctl reboot modinfo /usr/lib/modules/$(uname -r)/kernel/drivers/video/nvidia.ko | grep ^version find /usr/lib/modules -name nvidia.ko -exec modinfo {} \; sudo lspci -v | grep -A 20 VGA git clone https://github.com/Rust-GPU/Rust-CUDA.git git clone https://github.com/vulkano-rs/vulkano.git git clone https://github.com/Relm4/relm4.git glxgears glxinfo glxgears glxinfo vkcube vkcubepp ./teapot ./triangle ./occlusion-query ./interactive_fractal
  • A 2D Pixel Physics Simulator with Cellular Automata written in Rust
    8 projects | /r/rust | 19 Jan 2022
    I use the awesome Vulkano for rendering and computation, and Rapier for simple physics. Contour is used for the initial shapes, but rapier forms the physics colliders from it. Hecs is used as well. And you might recognize Egui as gui :). I gotta say, I'm starting to be pretty happy with the rust ecosystem overall.
  • What do the "| |" characters do?
    2 projects | /r/rust | 14 Jan 2022
    As recently seen in: https://github.com/vulkano-rs/vulkano/blob/master/examples/src/bin/triangle.rs several times but I've seen them arround several other times also.
  • Crate the implements Vulkano/Vulkan?
    2 projects | /r/rust | 24 Nov 2021
    Vulkano's website is terrible, yeah, and I'm not really encouraging you to use it, but fyi, the updated examples from their repo areā€¦ up-to-date. And they're exceptionally well-commented. So if you run out of options (which I have), take a look at the most recent triangle.rs.
  • Hey Rustaceans! Got an easy question? Ask here (43/2021)!
    14 projects | /r/rust | 25 Oct 2021
    There's a few ways to do it. The low-level method is to write a HLSL shader then use something like vulkan to run it (vulkano example). If you want a 100% rust method, then wgpu and rust-gpu exists to let you define your shaders directly in rust while they handle more of the boilerplate.
  • Has anyone used both Ash and Erupt for Vulkan? Why would I pick one over the other?
    2 projects | /r/rust | 22 Sep 2021

What are some alternatives?

When comparing learn-wgpu and vulkano you can also consider the following projects:

wgpu - Cross-platform, safe, pure-rust graphics api.

ash - Vulkan bindings for Rust

glium - Safe OpenGL wrapper for the Rust language.

SDL - Simple Directmedia Layer

winit - Window handling library in pure Rust

Vulkan - Examples and demos for the new Vulkan API

egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

wgsl-mode - Emacs syntax highlighting for the WebGPU Shading Language (WGSL)

vulkan-tutorial-rs - Vulkan tutorial written in Rust using Ash

luminance-rs - Type-safe, type-level and stateless Rust graphics framework

fltk-rs - Rust bindings for the FLTK GUI library.

rust-bindgen - Automatically generates Rust FFI bindings to C (and some C++) libraries.