compute-shader-101
raylib
compute-shader-101 | raylib | |
---|---|---|
8 | 399 | |
489 | 18,907 | |
2.7% | - | |
0.0 | 9.8 | |
3 months ago | 5 days ago | |
Rust | C | |
Apache License 2.0 | zlib License |
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.
compute-shader-101
-
wgpu-rs resources for computing purposes only
You might find compute shader 101 useful.
- Vulkan terms vs. Direct3D 12 (aka DirectX 12) terms
-
WGPU setup and compute shader feedback - and Tutorial.
Compute Shader 101 - Github, Video, Slideshow. additional resources at end of slide show.
-
Compute Shaders and Rust - looking for some guidance.
Yes, compute-shader-101 is sample code + video + slides.
-
Prefix sum on portable compute shaders
Workgroup in Vulkan/WebGPU lingo is equivalent to "thread block" in CUDA speak; see [1] for a decoder ring.
> Using atomics to solve this is rarely a good idea, atomics will make things go slowly, and there is often a way to restructure the problem so that you can let threads read data from a previous dispatch, and break your pipeline into more dispatches if necessary.
This depends on the exact workload, but I disagree. A multiple dispatch solution to prefix sum requires reading the input at least twice, while decoupled look-back is single pass. That's a 1.5x difference if you're memory saturated, which is a good assumption here.
The Nanite talk (which I linked) showed a very similar result, for very similar reasons. They have a multi-dispatch approach to their adaptive LOD resolver, and it's about 25% slower than the one that uses atomics to manage the job queue.
Thus, I think we can solidly conclud that atomics are an essential part of the toolkit for GPU compute.
You do make an important distinction between runtime and development environment, and I should fix that, but there's still a point to be made. Most people doing machine learning work need a dev environment (or use Colab), even if they're theoretically just consuming GPU code that other people wrote. And if you do distribute a CUDA binary, it only runs on Nvidia. By contrast, my stuff is a 20-second "cargo build" and you can write your own GPU code with very minimal additional setup.
[1]: https://github.com/googlefonts/compute-shader-101/blob/main/...
-
Compute shaders - where to learn more outside of unity
googlefonts/compute-shader-101: Sample code for compute shader 101 training (github.com)
-
Vulkan Memory Allocator
I agree strongly with you about the need for good resources. Here are a few I've found that are useful.
* A trip through the Graphics Pipeline[1] is slightly dated (10 years old) but still very relevant.
* If you're interested in compute shaders specifically, I've put together "compute shader 101"
* Alyssa Rosenzweig's posts[3] on reverse engineering GPUs casts a lot of light on how they work at a low level. It helps to have a big-picture understanding first.
I think there is demand for a good book on this topic.
[1]: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-...
[2]: https://github.com/googlefonts/compute-shader-101
[3]: https://rosenzweig.io/
-
Compute shader 101 (video and slides)
This is a talk I've been working on for a while. It starts off motivating why you might want to write compute shaders (tl;dr you can exploit the impressive compute power of GPUs but portably), then explains the basics of how, including some sample code to help get people started.
Slides: https://docs.google.com/presentation/d/1dVSXORW6JurLUcx5UhE1...
Sample code: https://github.com/googlefonts/compute-shader-101
Feedback is welcome (please file issues against the open source repo), and AMA in this thread.
raylib
-
Zig! Can you C?
Fetch Packages... raylib... ./ray_test_zig/build.zig.zon:7:20: error: url field is missing corresponding hash field .url = "https://github.com/raysan5/raylib/archive/refs/tags/5.0.tar.gz", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note: expected .hash = "1220c28847ca8e8756734ae84355802b764c9d9cf4de057dbc6fc2b15c56e726f27b",
- Ask HN: Do you know any open source (2D or 3D) asset libraries?
- Raylib – A simple and easy-to-use library to enjoy videogames programming
-
Can't make my mind about which engine to use
libGDX is great, but I can understand if it's not for some people. This also applies to love2d, raylib and Monogame
-
Raylib Library For Video Games Programming as Senior Developer
Raylib library
- Advice for managing a group of beginner C programmers, myself included
-
What are some good projects in C for an experienced dev?
Here is a cool C project you could learn from: https://github.com/raysan5/raylib Its an open source game lib.
- Raylib v5.0
-
raylib 5.0 is coming November 18, 2023?
Did I miss something or is raylib 5 really coming next saturday? https://github.com/raysan5/raylib/commit/737cd0be7fb009bf837a00847128b00051c5f096
-
Not only Unity...
RayLib (ZLIBL/C/Lua) https://github.com/raysan5/raylib
What are some alternatives?
rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
SFML - Simple and Fast Multimedia Library
emscripten - Emscripten: An LLVM-to-WebAssembly Compiler
SDL2 - SDL2 bindings to perl
strange-attractors
bevy - A refreshingly simple data-driven game engine built in Rust
vello - An experimental GPU compute-centric 2D renderer.
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
gpgpu-rs - Simple experimental async GPGPU framework for Rust
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
Vulkan-Guide - One stop shop for getting started with the Vulkan API
SDL - Simple Directmedia Layer