/vulkan-tutorial-rust

Following the vulkan tutorial(https://vulkan-tutorial.com/) using the Rust programming language.

Primary LanguageRustMIT LicenseMIT

vulkan-tutorial-rust

Build Status LICENSE

A Rust implementation of the Vulkan Tutorial based on ash crate.

Status

The environment configuration is same as ash. See here for more detail.

Vulkan is quite hard. All examples on official website have been finished. 🍻

Usage

Enter the project root directory, download the assets by the python3 script:

vulkan-tutorial-rust$ python download_asset.py

Run any example with the following command:

$ cargo run --bin example_number

Here replace example_number with option in the following table:

example_number Code Reference Note
00 00_base_code.rs Link
01 01_instance_creation.rs Link
02 02_validation_layers.rs Link
03 03_physical_device_selection.rs Link
04 04_logical_device.rs Link
05 05_window_surface.rs Link
06 06_swap_chain_creation.rs Link
07 07_image_view.rs Link
08 08_graphics_pipeline.rs Link
09 09_shader_modules.rs Link
10 10_fixed_functions.rs Link
11 11_render_passes.rs Link
12 12_graphics_pipeline_complete.rs Link
13 13_framebuffers.rs Link
14 14_command_buffers.rs Link
15 15_hello_triangle.rs Link
16 16_swap_chain_recreation.rs Link
17 17_vertex_input.rs Link The Validation Layer will complain. This example may crash on Windows.
18 18_vertex_buffer.rs Link
19 19_staging_buffer.rs Link
20 20_index_buffer.rs Link
21 21_descriptor_layout.rs Link The Validation Layer will complain.
22 22_descriptor_sets.rs Link
23 23_texture_image.rs Link
24 24_sampler.rs Link
25 25_texture_mapping.rs Link
26 26_depth_buffering.rs Link
27 27_model_loading.rs Link Test this example in release mode.
28 28_mipmapping.rs Link Test this example in release mode.
29 29_multisampling.rs Link Test this example in release mode.

example usage

$ cargo run --bin 00

Snapshot

All snapshots

See also

bwasty/vulkan-tutorial-rs — another Rust implementation using Vulkano

adrien-ben/vulkan-tutorial-rs — another Rust implementation with some more custom chapters.

KhronosGroup/Vulkan-samples — Offical examples from KhronosGroup

SaschaWillems/Vulkan — More examples in C++