Skip to content

Commit

Permalink
feat: use cargo-gpu instead of out-of-workspace shaders binary
Browse files Browse the repository at this point in the history
  • Loading branch information
schell committed Nov 5, 2024
1 parent b237d42 commit eca76f0
Show file tree
Hide file tree
Showing 55 changed files with 884 additions and 1,708 deletions.
10 changes: 10 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions crates/renderling/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ license = "MIT OR Apache-2.0"
keywords = ["game", "graphics", "shader", "rendering"]
categories = ["rendering", "game-development", "graphics"]
readme = "../../README.md"
build = "src/build.rs"

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

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

[build-dependencies]
naga = { version = "22.1", features = ["spv-in", "wgsl-out", "wgsl-in", "msl-out"] }
pathdiff = "0.2.2"
quote = "1.0"
serde = {version = "1.0", features = ["derive"]}
serde_json = {workspace = true}

# dependencies for CPU and GPU code
[dependencies]
spirv-std = { version = "0.9" }
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed crates/renderling/src/linkage/bloom-bloom_vertex.spv
Binary file not shown.
55 changes: 36 additions & 19 deletions crates/renderling/src/linkage/bloom_downsample_fragment.rs
Original file line number Diff line number Diff line change
@@ -1,23 +1,40 @@
#![allow(dead_code)]
//! Automatically generated with `cd shaders && cargo run --release`.
//!
//! Provides the shader linkage for
//! [bloom::bloom_downsample_fragment](crate::bloom::bloom_downsample_fragment).
//!
//! **source path**:
//! `crates/renderling/src/linkage/bloom-bloom_downsample_fragment.spv`
use super::ShaderLinkage;
use std::sync::Arc;
#[cfg(not(target_arch = "wasm32"))]
pub const ENTRY_POINT: &str = "bloom::bloom_downsample_fragment";
#[cfg(target_arch = "wasm32")]
pub const ENTRY_POINT: &str = "bloombloom_downsample_fragment";
//! Automatically generated by Renderling's `build.rs`.
use crate::linkage::ShaderLinkage;
mod native {
pub const ENTRY_POINT: &str = "bloom::bloom_downsample_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_downsample_fragment.spv")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
mod web {
pub const ENTRY_POINT: &str = "bloombloom_downsample_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_downsample_fragment.wgsl")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
native::linkage(device)
}
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
web::linkage(device)
}
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
ShaderLinkage {
module: Arc::new(
device
.create_shader_module(wgpu::include_spirv!("bloom-bloom_downsample_fragment.spv")),
),
entry_point: ENTRY_POINT,
if cfg!(feature = "wasm") {
web::linkage(device)
} else {
native::linkage(device)
}
}
54 changes: 36 additions & 18 deletions crates/renderling/src/linkage/bloom_mix_fragment.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,40 @@
#![allow(dead_code)]
//! Automatically generated with `cd shaders && cargo run --release`.
//!
//! Provides the shader linkage for
//! [bloom::bloom_mix_fragment](crate::bloom::bloom_mix_fragment).
//!
//! **source path**:
//! `crates/renderling/src/linkage/bloom-bloom_mix_fragment.spv`
use super::ShaderLinkage;
use std::sync::Arc;
#[cfg(not(target_arch = "wasm32"))]
pub const ENTRY_POINT: &str = "bloom::bloom_mix_fragment";
#[cfg(target_arch = "wasm32")]
pub const ENTRY_POINT: &str = "bloombloom_mix_fragment";
//! Automatically generated by Renderling's `build.rs`.
use crate::linkage::ShaderLinkage;
mod native {
pub const ENTRY_POINT: &str = "bloom::bloom_mix_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_mix_fragment.spv")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
mod web {
pub const ENTRY_POINT: &str = "bloombloom_mix_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_mix_fragment.wgsl")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
native::linkage(device)
}
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
web::linkage(device)
}
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
ShaderLinkage {
module: Arc::new(
device.create_shader_module(wgpu::include_spirv!("bloom-bloom_mix_fragment.spv")),
),
entry_point: ENTRY_POINT,
if cfg!(feature = "wasm") {
web::linkage(device)
} else {
native::linkage(device)
}
}
54 changes: 36 additions & 18 deletions crates/renderling/src/linkage/bloom_upsample_fragment.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,40 @@
#![allow(dead_code)]
//! Automatically generated with `cd shaders && cargo run --release`.
//!
//! Provides the shader linkage for
//! [bloom::bloom_upsample_fragment](crate::bloom::bloom_upsample_fragment).
//!
//! **source path**:
//! `crates/renderling/src/linkage/bloom-bloom_upsample_fragment.spv`
use super::ShaderLinkage;
use std::sync::Arc;
#[cfg(not(target_arch = "wasm32"))]
pub const ENTRY_POINT: &str = "bloom::bloom_upsample_fragment";
#[cfg(target_arch = "wasm32")]
pub const ENTRY_POINT: &str = "bloombloom_upsample_fragment";
//! Automatically generated by Renderling's `build.rs`.
use crate::linkage::ShaderLinkage;
mod native {
pub const ENTRY_POINT: &str = "bloom::bloom_upsample_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_upsample_fragment.spv")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
mod web {
pub const ENTRY_POINT: &str = "bloombloom_upsample_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_upsample_fragment.wgsl")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
native::linkage(device)
}
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
web::linkage(device)
}
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
ShaderLinkage {
module: Arc::new(
device.create_shader_module(wgpu::include_spirv!("bloom-bloom_upsample_fragment.spv")),
),
entry_point: ENTRY_POINT,
if cfg!(feature = "wasm") {
web::linkage(device)
} else {
native::linkage(device)
}
}
53 changes: 36 additions & 17 deletions crates/renderling/src/linkage/bloom_vertex.rs
Original file line number Diff line number Diff line change
@@ -1,21 +1,40 @@
#![allow(dead_code)]
//! Automatically generated with `cd shaders && cargo run --release`.
//!
//! Provides the shader linkage for
//! [bloom::bloom_vertex](crate::bloom::bloom_vertex).
//!
//! **source path**: `crates/renderling/src/linkage/bloom-bloom_vertex.spv`
use super::ShaderLinkage;
use std::sync::Arc;
#[cfg(not(target_arch = "wasm32"))]
pub const ENTRY_POINT: &str = "bloom::bloom_vertex";
#[cfg(target_arch = "wasm32")]
pub const ENTRY_POINT: &str = "bloombloom_vertex";
//! Automatically generated by Renderling's `build.rs`.
use crate::linkage::ShaderLinkage;
mod native {
pub const ENTRY_POINT: &str = "bloom::bloom_vertex";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_vertex.spv")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
mod web {
pub const ENTRY_POINT: &str = "bloombloom_vertex";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/bloom-bloom_vertex.wgsl")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
native::linkage(device)
}
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
web::linkage(device)
}
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
ShaderLinkage {
module: Arc::new(
device.create_shader_module(wgpu::include_spirv!("bloom-bloom_vertex.spv")),
),
entry_point: ENTRY_POINT,
if cfg!(feature = "wasm") {
web::linkage(device)
} else {
native::linkage(device)
}
}
55 changes: 36 additions & 19 deletions crates/renderling/src/linkage/brdf_lut_convolution_fragment.rs
Original file line number Diff line number Diff line change
@@ -1,23 +1,40 @@
#![allow(dead_code)]
//! Automatically generated with `cd shaders && cargo run --release`.
//!
//! Provides the shader linkage for
//! [convolution::brdf_lut_convolution_fragment](crate::convolution::brdf_lut_convolution_fragment).
//!
//! **source path**:
//! `crates/renderling/src/linkage/convolution-brdf_lut_convolution_fragment.
//! spv`
use super::ShaderLinkage;
use std::sync::Arc;
#[cfg(not(target_arch = "wasm32"))]
pub const ENTRY_POINT: &str = "convolution::brdf_lut_convolution_fragment";
#[cfg(target_arch = "wasm32")]
pub const ENTRY_POINT: &str = "convolutionbrdf_lut_convolution_fragment";
//! Automatically generated by Renderling's `build.rs`.
use crate::linkage::ShaderLinkage;
mod native {
pub const ENTRY_POINT: &str = "convolution::brdf_lut_convolution_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/convolution-brdf_lut_convolution_fragment.spv")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
mod web {
pub const ENTRY_POINT: &str = "convolutionbrdf_lut_convolution_fragment";
pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> {
wgpu::include_spirv!("../../shaders/convolution-brdf_lut_convolution_fragment.wgsl")
}
pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage {
super::ShaderLinkage {
entry_point: ENTRY_POINT,
module: device.create_shader_module(descriptor()).into(),
}
}
}
pub fn linkage_native(device: &wgpu::Device) -> ShaderLinkage {
native::linkage(device)
}
pub fn linkage_web(device: &wgpu::Device) -> ShaderLinkage {
web::linkage(device)
}
pub fn linkage(device: &wgpu::Device) -> ShaderLinkage {
ShaderLinkage {
module: Arc::new(device.create_shader_module(wgpu::include_spirv!(
"convolution-brdf_lut_convolution_fragment.spv"
))),
entry_point: ENTRY_POINT,
if cfg!(feature = "wasm") {
web::linkage(device)
} else {
native::linkage(device)
}
}
Loading

0 comments on commit eca76f0

Please sign in to comment.