
# Objective - Being able to build for WebGPU ``` error[E0061]: this function takes 1 argument but 3 arguments were supplied --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/backend/webgpu.rs:375:22 | 375 | let mut mapped = web_sys::GpuDepthStencilState::new( | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 376 | map_compare_function(desc.depth_compare), | ---------------------------------------- unexpected argument of type `GpuCompareFunction` 377 | desc.depth_write_enabled, | ------------------------ unexpected argument of type `bool` | note: associated function defined here --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/web-sys-0.3.68/src/features/gen_GpuDepthStencilState.rs:27:12 | 27 | pub fn new(format: GpuTextureFormat) -> Self { | ^^^ help: remove the extra arguments | 376 - map_compare_function(desc.depth_compare), 376 + map_texture_format(desc.format), | error[E0061]: this function takes 1 argument but 2 arguments were supplied --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/backend/webgpu.rs:1693:13 | 1693 | web_sys::GpuVertexState::new(desc.vertex.entry_point, &module.0); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------------------------- | | | unexpected argument of type `&str` | help: remove the extra argument | note: associated function defined here --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/web-sys-0.3.68/src/features/gen_GpuVertexState.rs:27:12 | 27 | pub fn new(module: &GpuShaderModule) -> Self { | ^^^ error[E0061]: this function takes 2 arguments but 3 arguments were supplied --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/backend/webgpu.rs:1768:17 | 1768 | web_sys::GpuFragmentState::new(frag.entry_point, &module.0, &targets); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------------- -------- unexpected argument of type `&js_sys::Array` | | | expected `&GpuShaderModule`, found `&str` | = note: expected reference `&GpuShaderModule` found reference `&str` note: associated function defined here --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/web-sys-0.3.68/src/features/gen_GpuFragmentState.rs:27:12 | 27 | pub fn new(module: &GpuShaderModule, targets: &::wasm_bindgen::JsValue) -> Self { | ^^^ help: remove the extra argument | 1768 - web_sys::GpuFragmentState::new(frag.entry_point, &module.0, &targets); 1768 + web_sys::GpuFragmentState::new(/* &GpuShaderModule */, &module.0); | error[E0061]: this function takes 1 argument but 2 arguments were supplied --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/backend/webgpu.rs:1793:13 | 1793 | web_sys::GpuProgrammableStage::new(desc.entry_point, &shader_module.0); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------------------ | | | unexpected argument of type `&str` | help: remove the extra argument | note: associated function defined here --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/web-sys-0.3.68/src/features/gen_GpuProgrammableStage.rs:27:12 | 27 | pub fn new(module: &GpuShaderModule) -> Self { | ^^^ error[E0599]: no method named `write_timestamp` found for struct `GpuCommandEncoder` in the current scope --> .cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/backend/webgpu.rs:2505:14 | 2503 | / encoder_data 2504 | | .0 2505 | | .write_timestamp(&query_set_data.0, query_index); | | -^^^^^^^^^^^^^^^ method not found in `GpuCommandEncoder` | |_____________| | Some errors have detailed explanations: E0061, E0599. For more information about an error, try `rustc --explain E0061`. ``` ## Solution - `web-sys` doesn't follow semver for the WebGPU APIs as they are unstable. Force using a compatible version --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
118 lines
3.7 KiB
TOML
118 lines
3.7 KiB
TOML
[package]
|
|
name = "bevy_render"
|
|
version = "0.12.0"
|
|
edition = "2021"
|
|
description = "Provides rendering functionality for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
|
|
[features]
|
|
png = ["image/png"]
|
|
exr = ["image/exr"]
|
|
hdr = ["image/hdr"]
|
|
tga = ["image/tga"]
|
|
jpeg = ["image/jpeg"]
|
|
bmp = ["image/bmp"]
|
|
webp = ["image/webp"]
|
|
dds = ["ddsfile"]
|
|
pnm = ["image/pnm"]
|
|
multi-threaded = ["bevy_tasks/multi-threaded"]
|
|
bevy_ci_testing = ["bevy_app/bevy_ci_testing"]
|
|
|
|
shader_format_glsl = ["naga/glsl-in", "naga/wgsl-out", "naga_oil/glsl"]
|
|
shader_format_spirv = ["wgpu/spirv", "naga/spv-in", "naga/spv-out"]
|
|
|
|
# For ktx2 supercompression
|
|
zlib = ["flate2"]
|
|
zstd = ["ruzstd"]
|
|
|
|
trace = ["profiling"]
|
|
tracing-tracy = []
|
|
wgpu_trace = ["wgpu/trace"]
|
|
ci_limits = []
|
|
webgl = ["wgpu/webgl"]
|
|
webgpu = ["wgpu/webgpu"]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_app = { path = "../bevy_app", version = "0.12.0" }
|
|
bevy_asset = { path = "../bevy_asset", version = "0.12.0" }
|
|
bevy_core = { path = "../bevy_core", version = "0.12.0" }
|
|
bevy_derive = { path = "../bevy_derive", version = "0.12.0" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.12.0" }
|
|
bevy_encase_derive = { path = "../bevy_encase_derive", version = "0.12.0" }
|
|
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.12.0" }
|
|
bevy_log = { path = "../bevy_log", version = "0.12.0" }
|
|
bevy_math = { path = "../bevy_math", version = "0.12.0" }
|
|
bevy_mikktspace = { path = "../bevy_mikktspace", version = "0.12.0" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.12.0", features = [
|
|
"bevy",
|
|
] }
|
|
bevy_render_macros = { path = "macros", version = "0.12.0" }
|
|
bevy_time = { path = "../bevy_time", version = "0.12.0" }
|
|
bevy_transform = { path = "../bevy_transform", version = "0.12.0" }
|
|
bevy_window = { path = "../bevy_window", version = "0.12.0" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.12.0" }
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.12.0" }
|
|
|
|
# rendering
|
|
image = { version = "0.24", default-features = false }
|
|
|
|
# misc
|
|
codespan-reporting = "0.11.0"
|
|
# `fragile-send-sync-non-atomic-wasm` feature means we can't use WASM threads for rendering
|
|
# It is enabled for now to avoid having to do a significant overhaul of the renderer just for wasm
|
|
wgpu = { version = "0.19.1", default-features = false, features = [
|
|
"wgsl",
|
|
"dx12",
|
|
"metal",
|
|
"naga",
|
|
"naga-ir",
|
|
"fragile-send-sync-non-atomic-wasm",
|
|
] }
|
|
naga = { version = "0.19", features = ["wgsl-in"] }
|
|
naga_oil = { version = "0.13", default-features = false, features = [
|
|
"test_shader",
|
|
] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
bitflags = "2.3"
|
|
bytemuck = { version = "1.5", features = ["derive"] }
|
|
downcast-rs = "1.2.0"
|
|
thread_local = "1.1"
|
|
thiserror = "1.0"
|
|
futures-lite = "2.0.1"
|
|
hexasphere = "10.0"
|
|
ddsfile = { version = "0.5.0", optional = true }
|
|
ktx2 = { version = "0.3.0", optional = true }
|
|
# For ktx2 supercompression
|
|
flate2 = { version = "1.0.22", optional = true }
|
|
ruzstd = { version = "0.5.0", optional = true }
|
|
# For transcoding of UASTC/ETC1S universal formats, and for .basis file support
|
|
basis-universal = { version = "0.3.0", optional = true }
|
|
encase = { version = "0.7", features = ["glam"] }
|
|
# For wgpu profiling using tracing. Use `RUST_LOG=info` to also capture the wgpu spans.
|
|
profiling = { version = "1", features = [
|
|
"profile-with-tracing",
|
|
], optional = true }
|
|
async-channel = "2.1.0"
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
js-sys = "0.3"
|
|
# web-sys doesn't follow semver for the WebGPU APIs as they are unstable
|
|
# Make sure that WebGPU builds work when changing this!
|
|
web-sys = { version = "=0.3.67", features = [
|
|
'Blob',
|
|
'Document',
|
|
'Element',
|
|
'HtmlElement',
|
|
'Node',
|
|
'Url',
|
|
'Window',
|
|
] }
|
|
wasm-bindgen = "0.2"
|
|
|
|
[lints]
|
|
workspace = true
|