Skip to content

Commit eca76f0

Browse files
committed
feat: use cargo-gpu instead of out-of-workspace shaders binary
1 parent b237d42 commit eca76f0

File tree

55 files changed

+884
-1708
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+884
-1708
lines changed

Cargo.lock

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/renderling/Cargo.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ license = "MIT OR Apache-2.0"
88
keywords = ["game", "graphics", "shader", "rendering"]
99
categories = ["rendering", "game-development", "graphics"]
1010
readme = "../../README.md"
11+
build = "src/build.rs"
1112

1213
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1314

@@ -90,6 +91,13 @@ wasm = ["wgpu/fragile-send-sync-non-atomic-wasm"]
9091
[patch.crates-io]
9192
spirv-std = { git = "https://github.com/Rust-GPU/rust-gpu" }
9293

94+
[build-dependencies]
95+
naga = { version = "22.1", features = ["spv-in", "wgsl-out", "wgsl-in", "msl-out"] }
96+
pathdiff = "0.2.2"
97+
quote = "1.0"
98+
serde = {version = "1.0", features = ["derive"]}
99+
serde_json = {workspace = true}
100+
93101
# dependencies for CPU and GPU code
94102
[dependencies]
95103
spirv-std = { version = "0.9" }
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,40 @@
11
#![allow(dead_code)]
2-
//! Automatically generated with `cd shaders && cargo run --release`.
3-
//!
4-
//! Provides the shader linkage for
5-
//! [bloom::bloom_downsample_fragment](crate::bloom::bloom_downsample_fragment).
6-
//!
7-
//! **source path**:
8-
//! `crates/renderling/src/linkage/bloom-bloom_downsample_fragment.spv`
9-
use super::ShaderLinkage;
10-
use std::sync::Arc;
11-
#[cfg(not(target_arch = "wasm32"))]
12-
pub const ENTRY_POINT: &str = "bloom::bloom_downsample_fragment";
13-
#[cfg(target_arch = "wasm32")]
14-
pub const ENTRY_POINT: &str = "bloombloom_downsample_fragment";
2+
//! Automatically generated by Renderling's `build.rs`.
3+
use crate::linkage::ShaderLinkage;
4+
mod native {
5+
pub const ENTRY_POINT: &str = "bloom::bloom_downsample_fragment";
6+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
7+
wgpu::include_spirv!("../../shaders/bloom-bloom_downsample_fragment.spv")
8+
}
9+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
10+
super::ShaderLinkage {
11+
entry_point: ENTRY_POINT,
12+
module: device.create_shader_module(descriptor()).into(),
13+
}
14+
}
15+
}
16+
mod web {
17+
pub const ENTRY_POINT: &str = "bloombloom_downsample_fragment";
18+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
19+
wgpu::include_spirv!("../../shaders/bloom-bloom_downsample_fragment.wgsl")
20+
}
21+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
22+
super::ShaderLinkage {
23+
entry_point: ENTRY_POINT,
24+
module: device.create_shader_module(descriptor()).into(),
25+
}
26+
}
27+
}
28+
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
29+
native::linkage(device)
30+
}
31+
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
32+
web::linkage(device)
33+
}
1534
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
16-
ShaderLinkage {
17-
module: Arc::new(
18-
device
19-
.create_shader_module(wgpu::include_spirv!("bloom-bloom_downsample_fragment.spv")),
20-
),
21-
entry_point: ENTRY_POINT,
35+
if cfg!(feature = "wasm") {
36+
web::linkage(device)
37+
} else {
38+
native::linkage(device)
2239
}
2340
}
Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,40 @@
11
#![allow(dead_code)]
2-
//! Automatically generated with `cd shaders && cargo run --release`.
3-
//!
4-
//! Provides the shader linkage for
5-
//! [bloom::bloom_mix_fragment](crate::bloom::bloom_mix_fragment).
6-
//!
7-
//! **source path**:
8-
//! `crates/renderling/src/linkage/bloom-bloom_mix_fragment.spv`
9-
use super::ShaderLinkage;
10-
use std::sync::Arc;
11-
#[cfg(not(target_arch = "wasm32"))]
12-
pub const ENTRY_POINT: &str = "bloom::bloom_mix_fragment";
13-
#[cfg(target_arch = "wasm32")]
14-
pub const ENTRY_POINT: &str = "bloombloom_mix_fragment";
2+
//! Automatically generated by Renderling's `build.rs`.
3+
use crate::linkage::ShaderLinkage;
4+
mod native {
5+
pub const ENTRY_POINT: &str = "bloom::bloom_mix_fragment";
6+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
7+
wgpu::include_spirv!("../../shaders/bloom-bloom_mix_fragment.spv")
8+
}
9+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
10+
super::ShaderLinkage {
11+
entry_point: ENTRY_POINT,
12+
module: device.create_shader_module(descriptor()).into(),
13+
}
14+
}
15+
}
16+
mod web {
17+
pub const ENTRY_POINT: &str = "bloombloom_mix_fragment";
18+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
19+
wgpu::include_spirv!("../../shaders/bloom-bloom_mix_fragment.wgsl")
20+
}
21+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
22+
super::ShaderLinkage {
23+
entry_point: ENTRY_POINT,
24+
module: device.create_shader_module(descriptor()).into(),
25+
}
26+
}
27+
}
28+
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
29+
native::linkage(device)
30+
}
31+
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
32+
web::linkage(device)
33+
}
1534
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
16-
ShaderLinkage {
17-
module: Arc::new(
18-
device.create_shader_module(wgpu::include_spirv!("bloom-bloom_mix_fragment.spv")),
19-
),
20-
entry_point: ENTRY_POINT,
35+
if cfg!(feature = "wasm") {
36+
web::linkage(device)
37+
} else {
38+
native::linkage(device)
2139
}
2240
}
Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,40 @@
11
#![allow(dead_code)]
2-
//! Automatically generated with `cd shaders && cargo run --release`.
3-
//!
4-
//! Provides the shader linkage for
5-
//! [bloom::bloom_upsample_fragment](crate::bloom::bloom_upsample_fragment).
6-
//!
7-
//! **source path**:
8-
//! `crates/renderling/src/linkage/bloom-bloom_upsample_fragment.spv`
9-
use super::ShaderLinkage;
10-
use std::sync::Arc;
11-
#[cfg(not(target_arch = "wasm32"))]
12-
pub const ENTRY_POINT: &str = "bloom::bloom_upsample_fragment";
13-
#[cfg(target_arch = "wasm32")]
14-
pub const ENTRY_POINT: &str = "bloombloom_upsample_fragment";
2+
//! Automatically generated by Renderling's `build.rs`.
3+
use crate::linkage::ShaderLinkage;
4+
mod native {
5+
pub const ENTRY_POINT: &str = "bloom::bloom_upsample_fragment";
6+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
7+
wgpu::include_spirv!("../../shaders/bloom-bloom_upsample_fragment.spv")
8+
}
9+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
10+
super::ShaderLinkage {
11+
entry_point: ENTRY_POINT,
12+
module: device.create_shader_module(descriptor()).into(),
13+
}
14+
}
15+
}
16+
mod web {
17+
pub const ENTRY_POINT: &str = "bloombloom_upsample_fragment";
18+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
19+
wgpu::include_spirv!("../../shaders/bloom-bloom_upsample_fragment.wgsl")
20+
}
21+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
22+
super::ShaderLinkage {
23+
entry_point: ENTRY_POINT,
24+
module: device.create_shader_module(descriptor()).into(),
25+
}
26+
}
27+
}
28+
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
29+
native::linkage(device)
30+
}
31+
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
32+
web::linkage(device)
33+
}
1534
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
16-
ShaderLinkage {
17-
module: Arc::new(
18-
device.create_shader_module(wgpu::include_spirv!("bloom-bloom_upsample_fragment.spv")),
19-
),
20-
entry_point: ENTRY_POINT,
35+
if cfg!(feature = "wasm") {
36+
web::linkage(device)
37+
} else {
38+
native::linkage(device)
2139
}
2240
}
Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,40 @@
11
#![allow(dead_code)]
2-
//! Automatically generated with `cd shaders && cargo run --release`.
3-
//!
4-
//! Provides the shader linkage for
5-
//! [bloom::bloom_vertex](crate::bloom::bloom_vertex).
6-
//!
7-
//! **source path**: `crates/renderling/src/linkage/bloom-bloom_vertex.spv`
8-
use super::ShaderLinkage;
9-
use std::sync::Arc;
10-
#[cfg(not(target_arch = "wasm32"))]
11-
pub const ENTRY_POINT: &str = "bloom::bloom_vertex";
12-
#[cfg(target_arch = "wasm32")]
13-
pub const ENTRY_POINT: &str = "bloombloom_vertex";
2+
//! Automatically generated by Renderling's `build.rs`.
3+
use crate::linkage::ShaderLinkage;
4+
mod native {
5+
pub const ENTRY_POINT: &str = "bloom::bloom_vertex";
6+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
7+
wgpu::include_spirv!("../../shaders/bloom-bloom_vertex.spv")
8+
}
9+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
10+
super::ShaderLinkage {
11+
entry_point: ENTRY_POINT,
12+
module: device.create_shader_module(descriptor()).into(),
13+
}
14+
}
15+
}
16+
mod web {
17+
pub const ENTRY_POINT: &str = "bloombloom_vertex";
18+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
19+
wgpu::include_spirv!("../../shaders/bloom-bloom_vertex.wgsl")
20+
}
21+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
22+
super::ShaderLinkage {
23+
entry_point: ENTRY_POINT,
24+
module: device.create_shader_module(descriptor()).into(),
25+
}
26+
}
27+
}
28+
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
29+
native::linkage(device)
30+
}
31+
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
32+
web::linkage(device)
33+
}
1434
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
15-
ShaderLinkage {
16-
module: Arc::new(
17-
device.create_shader_module(wgpu::include_spirv!("bloom-bloom_vertex.spv")),
18-
),
19-
entry_point: ENTRY_POINT,
35+
if cfg!(feature = "wasm") {
36+
web::linkage(device)
37+
} else {
38+
native::linkage(device)
2039
}
2140
}
Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,40 @@
11
#![allow(dead_code)]
2-
//! Automatically generated with `cd shaders && cargo run --release`.
3-
//!
4-
//! Provides the shader linkage for
5-
//! [convolution::brdf_lut_convolution_fragment](crate::convolution::brdf_lut_convolution_fragment).
6-
//!
7-
//! **source path**:
8-
//! `crates/renderling/src/linkage/convolution-brdf_lut_convolution_fragment.
9-
//! spv`
10-
use super::ShaderLinkage;
11-
use std::sync::Arc;
12-
#[cfg(not(target_arch = "wasm32"))]
13-
pub const ENTRY_POINT: &str = "convolution::brdf_lut_convolution_fragment";
14-
#[cfg(target_arch = "wasm32")]
15-
pub const ENTRY_POINT: &str = "convolutionbrdf_lut_convolution_fragment";
2+
//! Automatically generated by Renderling's `build.rs`.
3+
use crate::linkage::ShaderLinkage;
4+
mod native {
5+
pub const ENTRY_POINT: &str = "convolution::brdf_lut_convolution_fragment";
6+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
7+
wgpu::include_spirv!("../../shaders/convolution-brdf_lut_convolution_fragment.spv")
8+
}
9+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
10+
super::ShaderLinkage {
11+
entry_point: ENTRY_POINT,
12+
module: device.create_shader_module(descriptor()).into(),
13+
}
14+
}
15+
}
16+
mod web {
17+
pub const ENTRY_POINT: &str = "convolutionbrdf_lut_convolution_fragment";
18+
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
19+
wgpu::include_spirv!("../../shaders/convolution-brdf_lut_convolution_fragment.wgsl")
20+
}
21+
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
22+
super::ShaderLinkage {
23+
entry_point: ENTRY_POINT,
24+
module: device.create_shader_module(descriptor()).into(),
25+
}
26+
}
27+
}
28+
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
29+
native::linkage(device)
30+
}
31+
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
32+
web::linkage(device)
33+
}
1634
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
17-
ShaderLinkage {
18-
module: Arc::new(device.create_shader_module(wgpu::include_spirv!(
19-
"convolution-brdf_lut_convolution_fragment.spv"
20-
))),
21-
entry_point: ENTRY_POINT,
35+
if cfg!(feature = "wasm") {
36+
web::linkage(device)
37+
} else {
38+
native::linkage(device)
2239
}
2340
}

0 commit comments

Comments
 (0)