Update rust-gpu to `0.10.0-alpha.1` (#4033)

* rust-gpu alpha.1: update nix flake

* rust-gpu alpha.1: disable non-working mold shell hook

* rust-gpu alpha.1: update rust-gpu to `0.10.0-alpha.1` on crates

* Review

* Fix gpu nodes

* Reduce wasm size

---------

Co-authored-by: Timon <me@timon.zip>
This commit is contained in:
Firestar99 2026-04-28 01:53:49 +02:00 committed by GitHub
parent 3d84e63ef9
commit 824d1162eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 61 additions and 261 deletions

View File

@ -9,6 +9,9 @@ rustflags = [
"-C", "-C",
"link-arg=--max-memory=4294967296", "link-arg=--max-memory=4294967296",
"--cfg=web_sys_unstable_apis", "--cfg=web_sys_unstable_apis",
# TODO: Remove this and find a better way to stay within the 25MB limit of cloudflare pages
"-C",
"opt-level=s",
] ]
[env] [env]

View File

@ -9,7 +9,7 @@ let
"rustc-dev" "rustc-dev"
"llvm-tools" "llvm-tools"
]; ];
toolchain = pkgs.rust-bin.nightly."2025-06-23".default.override { toolchain = pkgs.rust-bin.nightly."2026-04-11".default.override {
inherit extensions; inherit extensions;
}; };
cargo = pkgs.writeShellScriptBin "cargo" '' cargo = pkgs.writeShellScriptBin "cargo" ''
@ -32,14 +32,12 @@ let
}).buildRustPackage }).buildRustPackage
(finalAttrs: { (finalAttrs: {
pname = "rustc_codegen_spirv"; pname = "rustc_codegen_spirv";
version = "0-unstable-2025-08-04"; version = "0.10.0-alpha.1";
src = pkgs.fetchFromGitHub { src = pkgs.fetchCrate {
owner = "Firestar99"; inherit (finalAttrs) pname version;
repo = "rust-gpu-new"; sha256 = "sha256-zJEpExkPgYzwo7fR4ge4GxJNj7H5yo4bJ4eTOw36+7c=";
rev = "c12f216121820580731440ee79ebc7403d6ea04f";
hash = "sha256-rG1cZvOV0vYb1dETOzzbJ0asYdE039UZImobXZfKIno=";
}; };
cargoHash = "sha256-AEigcEc5wiBd3zLqWN/2HSbkfOVFneAqNvg9HsouZf4="; cargoHash = "sha256-J1rtbfGqrL2NJ7Bu2pYfDwCdUmnECB/kzxrpYluA0kY=";
cargoBuildFlags = [ cargoBuildFlags = [
"-p" "-p"
"rustc_codegen_spirv" "rustc_codegen_spirv"

View File

@ -22,7 +22,6 @@ pkgs.mkShell (
pkgs.lld pkgs.lld
pkgs.nodejs pkgs.nodejs
pkgs.nodePackages.npm
pkgs.binaryen pkgs.binaryen
pkgs.wasm-bindgen-cli_0_2_100 pkgs.wasm-bindgen-cli_0_2_100
pkgs.wasm-pack pkgs.wasm-pack
@ -55,9 +54,9 @@ pkgs.mkShell (
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath libs}:${deps.cef.env.CEF_PATH}"; LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath libs}:${deps.cef.env.CEF_PATH}";
XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS"; XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS";
shellHook = '' # shellHook = ''
alias cargo='mold --run cargo' # alias cargo='mold --run cargo'
''; # '';
} }
// deps.cef.env // deps.cef.env
// deps.rustGPU.env // deps.rustGPU.env

View File

@ -82,7 +82,6 @@ deps.crane.lib.buildPackage (
pkgs.pkg-config pkgs.pkg-config
pkgs.lld pkgs.lld
pkgs.nodejs pkgs.nodejs
pkgs.nodePackages.npm
pkgs.binaryen pkgs.binaryen
pkgs.wasm-bindgen-cli_0_2_100 pkgs.wasm-bindgen-cli_0_2_100
pkgs.wasm-pack pkgs.wasm-pack

218
Cargo.lock generated
View File

@ -446,22 +446,16 @@ dependencies = [
] ]
[[package]] [[package]]
name = "cargo-gpu" name = "cargo-gpu-install"
version = "0.1.0" version = "0.10.0-alpha.1"
source = "git+https://github.com/Firestar99/cargo-gpu?rev=3952a22d16edbd38689f3a876e417899f21e1fe7#3952a22d16edbd38689f3a876e417899f21e1fe7" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82bad075de69e455c338955b4a7d58c0ced253185ef7703a3c6a3846e2d5ee66"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"cargo_metadata", "cargo_metadata",
"clap",
"crossterm",
"directories", "directories",
"dunce",
"env_logger",
"log", "log",
"relative-path",
"semver",
"serde", "serde",
"serde_json",
"spirv-builder", "spirv-builder",
] ]
@ -780,15 +774,6 @@ dependencies = [
"windows-sys 0.60.2", "windows-sys 0.60.2",
] ]
[[package]]
name = "convert_case"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7"
dependencies = [
"unicode-segmentation",
]
[[package]] [[package]]
name = "convert_case" name = "convert_case"
version = "0.8.0" version = "0.8.0"
@ -1001,33 +986,6 @@ version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
[[package]]
name = "crossterm"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
dependencies = [
"bitflags 2.11.0",
"crossterm_winapi",
"derive_more",
"document-features",
"mio",
"parking_lot",
"rustix",
"signal-hook",
"signal-hook-mio",
"winapi",
]
[[package]]
name = "crossterm_winapi"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
dependencies = [
"winapi",
]
[[package]] [[package]]
name = "crunchy" name = "crunchy"
version = "0.2.4" version = "0.2.4"
@ -1138,7 +1096,6 @@ version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
dependencies = [ dependencies = [
"convert_case 0.7.1",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.106", "syn 2.0.106",
@ -1615,15 +1572,6 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
[[package]]
name = "fsevent-sys"
version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "futf" name = "futf"
version = "0.1.5" version = "0.1.5"
@ -1819,13 +1767,13 @@ dependencies = [
[[package]] [[package]]
name = "glam" name = "glam"
version = "0.29.3" version = "0.32.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" checksum = "f70749695b063ecbf6b62949ccccde2e733ec3ecbbd71d467dca4e5c6c97cca0"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"libm", "libm",
"serde", "serde_core",
] ]
[[package]] [[package]]
@ -2709,26 +2657,6 @@ dependencies = [
"rustversion", "rustversion",
] ]
[[package]]
name = "inotify"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
dependencies = [
"bitflags 2.11.0",
"inotify-sys",
"libc",
]
[[package]]
name = "inotify-sys"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "interpreted-executor" name = "interpreted-executor"
version = "0.1.0" version = "0.1.0"
@ -2909,26 +2837,6 @@ version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
[[package]]
name = "kqueue"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a"
dependencies = [
"kqueue-sys",
"libc",
]
[[package]]
name = "kqueue-sys"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
dependencies = [
"bitflags 1.3.2",
"libc",
]
[[package]] [[package]]
name = "kurbo" name = "kurbo"
version = "0.13.0" version = "0.13.0"
@ -3199,7 +3107,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
dependencies = [ dependencies = [
"libc", "libc",
"log",
"wasi 0.11.1+wasi-snapshot-preview1", "wasi 0.11.1+wasi-snapshot-preview1",
"windows-sys 0.59.0", "windows-sys 0.59.0",
] ]
@ -3337,7 +3244,7 @@ dependencies = [
name = "node-docs" name = "node-docs"
version = "0.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"convert_case 0.8.0", "convert_case",
"graph-craft", "graph-craft",
"graphene-std", "graphene-std",
"indoc", "indoc",
@ -3349,7 +3256,7 @@ dependencies = [
name = "node-macro" name = "node-macro"
version = "0.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"convert_case 0.8.0", "convert_case",
"core-types", "core-types",
"indoc", "indoc",
"no-std-types", "no-std-types",
@ -3361,30 +3268,6 @@ dependencies = [
"syn 2.0.106", "syn 2.0.106",
] ]
[[package]]
name = "notify"
version = "8.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3"
dependencies = [
"bitflags 2.11.0",
"fsevent-sys",
"inotify",
"kqueue",
"libc",
"log",
"mio",
"notify-types",
"walkdir",
"windows-sys 0.60.2",
]
[[package]]
name = "notify-types"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d"
[[package]] [[package]]
name = "nu-ansi-term" name = "nu-ansi-term"
version = "0.50.1" version = "0.50.1"
@ -4366,7 +4249,7 @@ dependencies = [
name = "raster-nodes-shaders" name = "raster-nodes-shaders"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"cargo-gpu", "cargo-gpu-install",
"env_logger", "env_logger",
"log", "log",
] ]
@ -4505,15 +4388,6 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
[[package]]
name = "relative-path"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bca40a312222d8ba74837cb474edef44b37f561da5f773981007a10bbaa992b0"
dependencies = [
"serde",
]
[[package]] [[package]]
name = "renderdoc-sys" name = "renderdoc-sys"
version = "1.1.0" version = "1.1.0"
@ -4697,25 +4571,18 @@ version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
[[package]]
name = "rustc_codegen_spirv-target-specs"
version = "0.9.0"
source = "git+https://github.com/Rust-GPU/rust-gpu?rev=c12f216121820580731440ee79ebc7403d6ea04f#3f05f5482824e3b1fbb44c9ef90a8795a0204c7c"
dependencies = [
"serde",
"strum",
"thiserror 2.0.18",
]
[[package]] [[package]]
name = "rustc_codegen_spirv-types" name = "rustc_codegen_spirv-types"
version = "0.9.0" version = "0.10.0-alpha.1"
source = "git+https://github.com/Rust-GPU/rust-gpu?rev=c12f216121820580731440ee79ebc7403d6ea04f#3f05f5482824e3b1fbb44c9ef90a8795a0204c7c" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ac3a589ac4bf0931b69299679803063986f280a2b82ace70e7f8b2d0db0dec2"
dependencies = [ dependencies = [
"rspirv", "rspirv",
"semver",
"serde", "serde",
"serde_json", "serde_json",
"spirv", "spirv",
"thiserror 2.0.18",
] ]
[[package]] [[package]]
@ -5101,36 +4968,6 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "signal-hook"
version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
dependencies = [
"libc",
"signal-hook-registry",
]
[[package]]
name = "signal-hook-mio"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd"
dependencies = [
"libc",
"mio",
"signal-hook",
]
[[package]]
name = "signal-hook-registry"
version = "1.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "simd-adler32" name = "simd-adler32"
version = "0.3.7" version = "0.3.7"
@ -5286,16 +5123,14 @@ dependencies = [
[[package]] [[package]]
name = "spirv-builder" name = "spirv-builder"
version = "0.9.0" version = "0.10.0-alpha.1"
source = "git+https://github.com/Rust-GPU/rust-gpu?rev=c12f216121820580731440ee79ebc7403d6ea04f#3f05f5482824e3b1fbb44c9ef90a8795a0204c7c" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b721e6d7d7bc999126e838d16b070c8beada89ff8251c3f8a9e5292102827d86"
dependencies = [ dependencies = [
"cargo_metadata", "cargo_metadata",
"clap",
"log", "log",
"memchr", "memchr",
"notify",
"raw-string", "raw-string",
"rustc_codegen_spirv-target-specs",
"rustc_codegen_spirv-types", "rustc_codegen_spirv-types",
"semver", "semver",
"serde", "serde",
@ -5305,8 +5140,9 @@ dependencies = [
[[package]] [[package]]
name = "spirv-std" name = "spirv-std"
version = "0.9.0" version = "0.10.0-alpha.1"
source = "git+https://github.com/Firestar99/rust-gpu-new?rev=c12f216121820580731440ee79ebc7403d6ea04f#c12f216121820580731440ee79ebc7403d6ea04f" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68cdc5ca01151f2627fdf1cff34bf6452f5dc212a6d09f4aa5a9b4f17e9bc8e3"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"bytemuck", "bytemuck",
@ -5319,8 +5155,9 @@ dependencies = [
[[package]] [[package]]
name = "spirv-std-macros" name = "spirv-std-macros"
version = "0.9.0" version = "0.10.0-alpha.1"
source = "git+https://github.com/Firestar99/rust-gpu-new?rev=c12f216121820580731440ee79ebc7403d6ea04f#c12f216121820580731440ee79ebc7403d6ea04f" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b8538ad79b81964125710a912c46f3ea71c4f5732bab5d24d506b86ea8fde0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -5330,8 +5167,9 @@ dependencies = [
[[package]] [[package]]
name = "spirv-std-types" name = "spirv-std-types"
version = "0.9.0" version = "0.10.0-alpha.1"
source = "git+https://github.com/Firestar99/rust-gpu-new?rev=c12f216121820580731440ee79ebc7403d6ea04f#c12f216121820580731440ee79ebc7403d6ea04f" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28b7ffce7843c3a9f5d5d2b9c21402d4cd026c26780b2f16a3cd6de3e6436230"
[[package]] [[package]]
name = "stable_deref_trait" name = "stable_deref_trait"
@ -5536,7 +5374,7 @@ dependencies = [
name = "text-nodes" name = "text-nodes"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"convert_case 0.8.0", "convert_case",
"core-types", "core-types",
"dyn-any", "dyn-any",
"fancy-regex", "fancy-regex",

View File

@ -164,7 +164,7 @@ polycool = "0.4"
# Linebender ecosystem (END) # Linebender ecosystem (END)
rand = { version = "0.9", default-features = false, features = ["std_rng"] } rand = { version = "0.9", default-features = false, features = ["std_rng"] }
rand_chacha = "0.9" rand_chacha = "0.9"
glam = { version = "0.29", default-features = false, features = [ glam = { version = "0.32.1", default-features = false, features = [
"nostd-libm", "nostd-libm",
"scalar-math", "scalar-math",
"bytemuck", "bytemuck",
@ -211,8 +211,8 @@ rfd = "0.17"
open = "5.3" open = "5.3"
spin = "0.10" spin = "0.10"
clap = "4.5" clap = "4.5"
spirv-std = { git = "https://github.com/Firestar99/rust-gpu-new", rev = "c12f216121820580731440ee79ebc7403d6ea04f", features = ["bytemuck"] } spirv-std = { version = "0.10.0-alpha.1", features = ["bytemuck"] }
cargo-gpu = { git = "https://github.com/Firestar99/cargo-gpu", rev = "3952a22d16edbd38689f3a876e417899f21e1fe7", default-features = false } cargo-gpu-install = { version = "0.10.0-alpha.1", default-features = false }
qrcodegen = "1.8" qrcodegen = "1.8"
lzma-rust2 = { version = "0.16", default-features = false, features = ["std", "encoder", "optimization", "xz"] } lzma-rust2 = { version = "0.16", default-features = false, features = ["std", "encoder", "optimization", "xz"] }
scraper = "0.25" scraper = "0.25"

View File

@ -2,11 +2,11 @@
"nodes": { "nodes": {
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1770169865, "lastModified": 1776635034,
"narHash": "sha256-iPiy13xzDQ9GjpOez+NNIjh/qjl7i4RDf9dF2x5mF9I=", "narHash": "sha256-OEOJrT3ZfwbChzODfIH4GzlNTtOFuZFWPtW7jIeR8xU=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "8254ccf3b5b5131890ee073776f2e61c6d1e55d4", "rev": "dc7496d8ea6e526b1254b55d09b966e94673750f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -17,11 +17,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1770197578, "lastModified": 1776548001,
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -45,11 +45,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770347142, "lastModified": 1776741231,
"narHash": "sha256-uz+ZSqXpXEPtdRPYwvgsum/CfNq7AUQ/0gZHqTigiPM=", "narHash": "sha256-k9G98qzn+7npROUaks8VqCFm7cFtEG8ulQLBBo5lItg=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "2859683cd9ef7858d324c5399b0d8d6652bf4044", "rev": "02061303f7c4c964f7b4584dabd9e985b4cd442b",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -28,7 +28,7 @@ glam = ["dep:glam"]
dyn-any-derive = { path = "derive", optional = true } dyn-any-derive = { path = "derive", optional = true }
# Optional dependencies # Optional dependencies
glam = { version = "0.29", optional = true, default-features = false } glam = { version = "0.32.1", optional = true, default-features = false }
reqwest = { version = "0.13", optional = true, default-features = false } reqwest = { version = "0.13", optional = true, default-features = false }
[package.metadata.docs.rs] [package.metadata.docs.rs]

View File

@ -40,7 +40,6 @@ glam_array!(glam::Vec2, [f32; 2]);
glam_array!(glam::Vec3, [f32; 3]); glam_array!(glam::Vec3, [f32; 3]);
// glam_array!(Vec3A, [f32; 4]); // glam_array!(Vec3A, [f32; 4]);
glam_array!(glam::Vec4, [f32; 4]); glam_array!(glam::Vec4, [f32; 4]);
glam_array!(glam::Quat, [f32; 4]);
glam_cols_array!(glam::Mat2, [f32; 4]); glam_cols_array!(glam::Mat2, [f32; 4]);
glam_cols_array!(glam::Mat3, [f32; 9]); glam_cols_array!(glam::Mat3, [f32; 9]);
// glam_cols_array!(Mat3A, [f32; 4]); // glam_cols_array!(Mat3A, [f32; 4]);
@ -51,7 +50,6 @@ glam_cols_array!(glam::Affine3A, [f32; 12]);
glam_array!(glam::DVec2, [f64; 2]); glam_array!(glam::DVec2, [f64; 2]);
glam_array!(glam::DVec3, [f64; 3]); glam_array!(glam::DVec3, [f64; 3]);
glam_array!(glam::DVec4, [f64; 4]); glam_array!(glam::DVec4, [f64; 4]);
glam_array!(glam::DQuat, [f64; 4]);
glam_cols_array!(glam::DMat2, [f64; 4]); glam_cols_array!(glam::DMat2, [f64; 4]);
glam_cols_array!(glam::DMat3, [f64; 9]); glam_cols_array!(glam::DMat3, [f64; 9]);
glam_cols_array!(glam::DMat4, [f64; 16]); glam_cols_array!(glam::DMat4, [f64; 16]);

View File

@ -26,7 +26,6 @@ identity!(isize);
identity!(f32); identity!(f32);
identity!(f64); identity!(f64);
identity!(spirv_std::arch::SubgroupMask);
identity!(spirv_std::memory::Semantics); identity!(spirv_std::memory::Semantics);
identity!(spirv_std::ray_tracing::RayFlags); identity!(spirv_std::ray_tracing::RayFlags);
identity!(spirv_std::indirect_command::DrawIndirectCommand); identity!(spirv_std::indirect_command::DrawIndirectCommand);

View File

@ -3,7 +3,7 @@ use crate::shader_runtime::per_pixel_adjust_runtime::PerPixelAdjustShaderRuntime
pub mod per_pixel_adjust_runtime; pub mod per_pixel_adjust_runtime;
pub const FULLSCREEN_VERTEX_SHADER_NAME: &str = "fullscreen_vertexfullscreen_vertex"; pub const FULLSCREEN_VERTEX_SHADER_NAME: &str = "fullscreen_vertex_fullscreen_vertex";
pub struct ShaderRuntime { pub struct ShaderRuntime {
context: WgpuContext, context: WgpuContext,

View File

@ -70,8 +70,7 @@ impl PerPixelAdjustGraphicsPipeline {
let fragment_name = &name; let fragment_name = &name;
let fragment_name = &fragment_name[(fragment_name.find("::").unwrap() + 2)..]; let fragment_name = &fragment_name[(fragment_name.find("::").unwrap() + 2)..];
// TODO workaround to naga removing `:` let fragment_name = fragment_name.replace("::", "_");
let fragment_name = fragment_name.replace(":", "");
let shader_module = device.create_shader_module(ShaderModuleDescriptor { let shader_module = device.create_shader_module(ShaderModuleDescriptor {
label: Some(&format!("PerPixelAdjust {name} wgsl shader")), label: Some(&format!("PerPixelAdjust {name} wgsl shader")),
source: ShaderSource::Wgsl(Cow::Borrowed(info.wgsl_shader)), source: ShaderSource::Wgsl(Cow::Borrowed(info.wgsl_shader)),

View File

@ -66,7 +66,7 @@ impl ShaderCodegen for PerPixelAdjust {
} }
} }
let entry_point_mod = format_ident!("{}_gpu_entry_point", fn_name); let entry_point_mod = format_ident!("{}_gpu", fn_name);
let entry_point_name_ident = format_ident!("ENTRY_POINT_NAME"); let entry_point_name_ident = format_ident!("ENTRY_POINT_NAME");
let entry_point_name = quote!(#entry_point_mod::#entry_point_name_ident); let entry_point_name = quote!(#entry_point_mod::#entry_point_name_ident);
let uniform_struct_ident = format_ident!("Uniform"); let uniform_struct_ident = format_ident!("Uniform");

View File

@ -6,12 +6,9 @@ description = "graphene raster data format"
authors = ["Graphite Authors <contact@graphite.art>"] authors = ["Graphite Authors <contact@graphite.art>"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
[lib]
crate-type = ["rlib", "dylib"]
[dependencies] [dependencies]
[build-dependencies] [build-dependencies]
cargo-gpu = { workspace = true } cargo-gpu-install = { workspace = true }
env_logger = { workspace = true } env_logger = { workspace = true }
log = { workspace = true } log = { workspace = true }

View File

@ -1,5 +1,5 @@
use cargo_gpu::InstalledBackend; use cargo_gpu_install::install::{Install, InstalledBackend};
use cargo_gpu::spirv_builder::{MetadataPrintout, SpirvMetadata}; use cargo_gpu_install::spirv_builder::SpirvMetadata;
use std::path::PathBuf; use std::path::PathBuf;
pub fn main() -> Result<(), Box<dyn std::error::Error>> { pub fn main() -> Result<(), Box<dyn std::error::Error>> {
@ -29,19 +29,18 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
let rustc_codegen_spirv_path = std::env::var("RUSTC_CODEGEN_SPIRV_PATH").unwrap_or_default(); let rustc_codegen_spirv_path = std::env::var("RUSTC_CODEGEN_SPIRV_PATH").unwrap_or_default();
let backend = if rustc_codegen_spirv_path.is_empty() { let backend = if rustc_codegen_spirv_path.is_empty() {
// install the toolchain and build the `rustc_codegen_spirv` codegen backend with it // install the toolchain and build the `rustc_codegen_spirv` codegen backend with it
cargo_gpu::Install::from_shader_crate(shader_crate.clone()).run()? Install::from_shader_crate(shader_crate.clone()).run()?
} else { } else {
// use the `RUSTC_CODEGEN_SPIRV` environment variable to find the codegen backend // use the `RUSTC_CODEGEN_SPIRV` environment variable to find the codegen backend
let mut backend = InstalledBackend::default(); let mut backend = InstalledBackend::default();
backend.rustc_codegen_spirv_location = PathBuf::from(rustc_codegen_spirv_path); backend.rustc_codegen_spirv_location = PathBuf::from(rustc_codegen_spirv_path);
backend.toolchain_channel = "nightly".to_string(); backend.toolchain_channel = "nightly".to_string();
backend.target_spec_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
backend backend
}; };
// build the shader crate // build the shader crate
let mut builder = backend.to_spirv_builder(shader_crate, "spirv-unknown-naga-wgsl"); let mut builder = backend.to_spirv_builder(shader_crate, "spirv-unknown-naga-wgsl");
builder.print_metadata = MetadataPrintout::DependencyOnly; builder.build_script.defaults = true;
builder.spirv_metadata = SpirvMetadata::Full; builder.spirv_metadata = SpirvMetadata::Full;
let wgsl_result = builder.build()?; let wgsl_result = builder.build()?;
let path_to_spv = wgsl_result.module.unwrap_single(); let path_to_spv = wgsl_result.module.unwrap_single();

View File

@ -6,8 +6,5 @@ description = "graphene raster nodes shaders entrypoint"
authors = ["Graphite Authors <contact@graphite.art>"] authors = ["Graphite Authors <contact@graphite.art>"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
[lib]
crate-type = ["rlib", "dylib"]
[dependencies] [dependencies]
raster-nodes = { path = "../..", default-features = false } raster-nodes = { path = "../..", default-features = false }

View File

@ -1,26 +0,0 @@
{
"allows-weak-linkage": false,
"arch": "spirv",
"crt-objects-fallback": "false",
"crt-static-allows-dylibs": true,
"crt-static-respected": true,
"data-layout": "e-m:e-p:32:32:32-i64:64-n8:16:32:64",
"dll-prefix": "",
"dll-suffix": ".spv.json",
"dynamic-linking": true,
"emit-debug-gdb-scripts": false,
"env": "naga-wgsl",
"linker-flavor": "unix",
"linker-is-gnu": false,
"llvm-target": "spirv-unknown-naga-wgsl",
"main-needs-argc-argv": false,
"metadata": {
"description": null,
"host_tools": null,
"std": null,
"tier": null
},
"panic-strategy": "abort",
"simd-types-indirect": false,
"target-pointer-width": "32"
}