Restore functionality of GPU infrastructure (#1797)

* Update gpu nodes to compile again

Restructure `gpu-executor` and `wgpu-executor`

And libssl to nix shell

Fix graphene-cli and add half percision color format

Fix texture scaling

Remove vulkan executor

Fix compile errors

Improve execution request deduplication

* Fix warnings

* Fix graph compile issues

* Code review

* Remove test file

* Fix lint

* Wip make node futures send

* Make futures Send on non wasm targets

* Fix warnings

* Fix nested use of block_on

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Dennis Kobert
2024-07-15 13:14:48 +00:00
committed by GitHub
co-authored by Keavon Chambers
parent 59a943f42f
commit 212f08c6c8
66 changed files with 1572 additions and 1577 deletions
Generated
+237 -82
View File
@@ -279,7 +279,7 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
dependencies = [
"event-listener",
"event-listener 5.3.1",
"event-listener-strategy",
"futures-core",
"pin-project-lite",
@@ -346,11 +346,20 @@ version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
dependencies = [
"event-listener",
"event-listener 5.3.1",
"event-listener-strategy",
"pin-project-lite",
]
[[package]]
name = "async-mutex"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
dependencies = [
"event-listener 2.5.3",
]
[[package]]
name = "async-process"
version = "2.2.3"
@@ -364,7 +373,7 @@ dependencies = [
"async-task",
"blocking",
"cfg-if",
"event-listener",
"event-listener 5.3.1",
"futures-lite",
"rustix",
"tracing",
@@ -1016,6 +1025,7 @@ dependencies = [
"graphene-core",
"reqwest 0.12.5",
"serde_json",
"wgpu-executor",
]
[[package]]
@@ -1157,15 +1167,6 @@ dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-queue"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.20"
@@ -1242,6 +1243,17 @@ dependencies = [
"winapi",
]
[[package]]
name = "d3d12"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813"
dependencies = [
"bitflags 2.6.0",
"libloading 0.8.4",
"winapi",
]
[[package]]
name = "darling"
version = "0.20.9"
@@ -1374,6 +1386,15 @@ dependencies = [
"libloading 0.8.4",
]
[[package]]
name = "document-features"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95"
dependencies = [
"litrs",
]
[[package]]
name = "downcast-rs"
version = "1.2.1"
@@ -1549,6 +1570,12 @@ dependencies = [
"num-traits",
]
[[package]]
name = "event-listener"
version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "event-listener"
version = "5.3.1"
@@ -1566,7 +1593,7 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
dependencies = [
"event-listener",
"event-listener 5.3.1",
"pin-project-lite",
]
@@ -2213,6 +2240,7 @@ dependencies = [
"log",
"serde",
"serde_json",
"wgpu-executor",
]
[[package]]
@@ -2222,7 +2250,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
dependencies = [
"bitflags 2.6.0",
"gpu-descriptor-types",
"gpu-descriptor-types 0.1.2",
"hashbrown 0.14.5",
]
[[package]]
name = "gpu-descriptor"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557"
dependencies = [
"bitflags 2.6.0",
"gpu-descriptor-types 0.2.0",
"hashbrown 0.14.5",
]
@@ -2235,6 +2274,15 @@ dependencies = [
"bitflags 2.6.0",
]
[[package]]
name = "gpu-descriptor-types"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91"
dependencies = [
"bitflags 2.6.0",
]
[[package]]
name = "gpu-executor"
version = "0.1.0"
@@ -2261,6 +2309,7 @@ dependencies = [
"bezier-rs",
"bytemuck",
"dyn-any",
"futures",
"glam",
"graphene-core",
"js-sys",
@@ -2299,7 +2348,7 @@ dependencies = [
"serde_json",
"tokio",
"wasm-bindgen",
"wgpu",
"wgpu 0.20.1",
"wgpu-executor",
]
@@ -2312,6 +2361,7 @@ dependencies = [
"bytemuck",
"dyn-any",
"glam",
"half",
"image 0.25.1",
"js-sys",
"kurbo 0.11.0 (git+https://github.com/linebender/kurbo.git)",
@@ -2364,11 +2414,10 @@ dependencies = [
"url",
"usvg",
"vello",
"vulkan-executor",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"wgpu",
"wgpu 0.20.1",
"wgpu-executor",
"wgpu-types 0.17.0",
"winit",
@@ -2396,6 +2445,7 @@ dependencies = [
name = "graphite-editor"
version = "0.0.0"
dependencies = [
"async-mutex",
"bezier-rs",
"bitflags 2.6.0",
"derivative",
@@ -2455,7 +2505,7 @@ dependencies = [
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"wgpu",
"wgpu 0.20.1",
]
[[package]]
@@ -2567,8 +2617,10 @@ version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
dependencies = [
"bytemuck",
"cfg-if",
"crunchy",
"serde",
]
[[package]]
@@ -3038,6 +3090,7 @@ dependencies = [
"num-traits",
"once_cell",
"serde",
"wgpu 0.20.1",
"wgpu-executor",
]
@@ -3332,6 +3385,12 @@ version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "litrs"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5"
[[package]]
name = "lock_api"
version = "0.4.12"
@@ -3484,6 +3543,21 @@ dependencies = [
"paste",
]
[[package]]
name = "metal"
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5637e166ea14be6063a3f8ba5ccb9a4159df7d8f6d61c02fc3d480b1f90dcfcb"
dependencies = [
"bitflags 2.6.0",
"block",
"core-graphics-types",
"foreign-types 0.5.0",
"log",
"objc",
"paste",
]
[[package]]
name = "meval"
version = "0.2.0"
@@ -3533,6 +3607,27 @@ version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843"
dependencies = [
"bit-set",
"bitflags 2.6.0",
"codespan-reporting",
"hexf-parse",
"indexmap 2.2.6",
"log",
"num-traits",
"rustc-hash 1.1.0",
"spirv",
"termcolor",
"thiserror",
"unicode-xid",
]
[[package]]
name = "naga"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e536ae46fcab0876853bd4a632ede5df4b1c2527a58f6c5a4150fe86be858231"
dependencies = [
"arrayvec",
"bit-set",
"bitflags 2.6.0",
"codespan-reporting",
@@ -6900,7 +6995,7 @@ dependencies = [
"raw-window-handle 0.6.2",
"skrifa",
"vello_encoding",
"wgpu",
"wgpu 0.19.4",
]
[[package]]
@@ -6933,15 +7028,6 @@ version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "vk-parse"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6a0bda9bbe6b9e50e6456c80aa8fe4cca3b21e4311a1130c41e4915ec2e32a"
dependencies = [
"xml-rs",
]
[[package]]
name = "vswhom"
version = "0.1.0"
@@ -6962,49 +7048,6 @@ dependencies = [
"libc",
]
[[package]]
name = "vulkan-executor"
version = "0.1.0"
dependencies = [
"anyhow",
"base64 0.22.1",
"bytemuck",
"dyn-any",
"glam",
"graph-craft",
"graphene-core",
"log",
"num-traits",
"serde",
"vulkano",
]
[[package]]
name = "vulkano"
version = "0.31.0"
source = "git+https://github.com/GraphiteEditor/vulkano?branch=fix_rust_gpu#dbec4e91030c60849caccaa3b933fc2aac0d327b"
dependencies = [
"ahash",
"ash",
"bytemuck",
"core-graphics-types",
"crossbeam-queue",
"half",
"heck 0.4.1",
"indexmap 1.9.3",
"lazy_static",
"libloading 0.7.4",
"objc",
"parking_lot",
"proc-macro2",
"quote",
"regex",
"serde",
"serde_json",
"smallvec",
"vk-parse",
]
[[package]]
name = "walkdir"
version = "2.5.0"
@@ -7355,7 +7398,7 @@ dependencies = [
"cfg_aliases 0.1.1",
"js-sys",
"log",
"naga",
"naga 0.19.2",
"parking_lot",
"profiling",
"raw-window-handle 0.6.2",
@@ -7364,11 +7407,37 @@ dependencies = [
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"wgpu-core",
"wgpu-hal",
"wgpu-core 0.19.4",
"wgpu-hal 0.19.4",
"wgpu-types 0.19.2",
]
[[package]]
name = "wgpu"
version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90e37c7b9921b75dfd26dd973fdcbce36f13dfa6e2dc82aece584e0ed48c355c"
dependencies = [
"arrayvec",
"cfg-if",
"cfg_aliases 0.1.1",
"document-features",
"js-sys",
"log",
"naga 0.20.0",
"parking_lot",
"profiling",
"raw-window-handle 0.6.2",
"smallvec",
"static_assertions",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"wgpu-core 0.21.1",
"wgpu-hal 0.21.1",
"wgpu-types 0.20.0",
]
[[package]]
name = "wgpu-core"
version = "0.19.4"
@@ -7382,7 +7451,7 @@ dependencies = [
"codespan-reporting",
"indexmap 2.2.6",
"log",
"naga",
"naga 0.19.2",
"once_cell",
"parking_lot",
"profiling",
@@ -7391,10 +7460,38 @@ dependencies = [
"smallvec",
"thiserror",
"web-sys",
"wgpu-hal",
"wgpu-hal 0.19.4",
"wgpu-types 0.19.2",
]
[[package]]
name = "wgpu-core"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d50819ab545b867d8a454d1d756b90cd5f15da1f2943334ca314af10583c9d39"
dependencies = [
"arrayvec",
"bit-vec",
"bitflags 2.6.0",
"bytemuck",
"cfg_aliases 0.1.1",
"codespan-reporting",
"document-features",
"indexmap 2.2.6",
"log",
"naga 0.20.0",
"once_cell",
"parking_lot",
"profiling",
"raw-window-handle 0.6.2",
"rustc-hash 1.1.0",
"smallvec",
"thiserror",
"web-sys",
"wgpu-hal 0.21.1",
"wgpu-types 0.20.0",
]
[[package]]
name = "wgpu-executor"
version = "0.1.0"
@@ -7408,13 +7505,15 @@ dependencies = [
"glam",
"gpu-executor",
"graphene-core",
"half",
"log",
"node-macro",
"num-traits",
"nvtx",
"serde",
"spirv",
"web-sys",
"wgpu",
"wgpu 0.20.1",
"winit",
]
@@ -7432,20 +7531,20 @@ dependencies = [
"block",
"cfg_aliases 0.1.1",
"core-graphics-types",
"d3d12",
"d3d12 0.19.0",
"glow",
"glutin_wgl_sys",
"gpu-alloc",
"gpu-allocator",
"gpu-descriptor",
"gpu-descriptor 0.2.4",
"hassle-rs",
"js-sys",
"khronos-egl",
"libc",
"libloading 0.8.4",
"log",
"metal",
"naga",
"metal 0.27.0",
"naga 0.19.2",
"ndk-sys 0.5.0+25.2.9519653",
"objc",
"once_cell",
@@ -7463,6 +7562,51 @@ dependencies = [
"winapi",
]
[[package]]
name = "wgpu-hal"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222"
dependencies = [
"android_system_properties",
"arrayvec",
"ash",
"bit-set",
"bitflags 2.6.0",
"block",
"cfg_aliases 0.1.1",
"core-graphics-types",
"d3d12 0.20.0",
"glow",
"glutin_wgl_sys",
"gpu-alloc",
"gpu-allocator",
"gpu-descriptor 0.3.0",
"hassle-rs",
"js-sys",
"khronos-egl",
"libc",
"libloading 0.8.4",
"log",
"metal 0.28.0",
"naga 0.20.0",
"ndk-sys 0.5.0+25.2.9519653",
"objc",
"once_cell",
"parking_lot",
"profiling",
"range-alloc",
"raw-window-handle 0.6.2",
"renderdoc-sys",
"rustc-hash 1.1.0",
"smallvec",
"thiserror",
"wasm-bindgen",
"web-sys",
"wgpu-types 0.20.0",
"winapi",
]
[[package]]
name = "wgpu-types"
version = "0.17.0"
@@ -7485,6 +7629,17 @@ dependencies = [
"web-sys",
]
[[package]]
name = "wgpu-types"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1353d9a46bff7f955a680577f34c69122628cc2076e1d6f3a9be6ef00ae793ef"
dependencies = [
"bitflags 2.6.0",
"js-sys",
"web-sys",
]
[[package]]
name = "wide"
version = "0.7.25"
@@ -8222,7 +8377,7 @@ dependencies = [
"async-trait",
"blocking",
"enumflags2",
"event-listener",
"event-listener 5.3.1",
"futures-core",
"futures-sink",
"futures-util",