Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/crates/bevy_render/Cargo.toml
9354 views
1
[package]
2
name = "bevy_render"
3
version = "0.19.0-dev"
4
edition = "2024"
5
description = "Provides rendering functionality for Bevy Engine"
6
homepage = "https://bevy.org"
7
repository = "https://github.com/bevyengine/bevy"
8
license = "MIT OR Apache-2.0"
9
keywords = ["bevy"]
10
11
[features]
12
# Bevy users should _never_ turn this feature on.
13
#
14
# Bevy/wgpu developers can turn this feature on to test a newer version of wgpu without needing to also update naga_oil.
15
#
16
# When turning this feature on, you can add the following to bevy/Cargo.toml (not this file), and then run `cargo update`:
17
# [patch.crates-io]
18
# wgpu = { git = "https://github.com/gfx-rs/wgpu", rev = "..." }
19
# wgpu-core = { git = "https://github.com/gfx-rs/wgpu", rev = "..." }
20
# wgpu-hal = { git = "https://github.com/gfx-rs/wgpu", rev = "..." }
21
# wgpu-types = { git = "https://github.com/gfx-rs/wgpu", rev = "..." }
22
decoupled_naga = ["bevy_shader/decoupled_naga"]
23
24
multi_threaded = ["bevy_tasks/multi_threaded"]
25
26
morph = ["bevy_mesh/morph"]
27
28
shader_format_spirv = ["bevy_shader/shader_format_spirv", "wgpu/spirv"]
29
30
# Enable SPIR-V shader passthrough
31
spirv_shader_passthrough = ["wgpu/spirv"]
32
33
# Statically linked DXC shader compiler for DirectX 12
34
# TODO: When wgpu switches to DirectX 12 instead of Vulkan by default on windows, make this a default feature
35
statically-linked-dxc = ["wgpu/static-dxc"]
36
37
# Forces the wgpu instance to be initialized using the raw Vulkan HAL, enabling additional configuration
38
raw_vulkan_init = ["wgpu/vulkan"]
39
40
trace = ["profiling"]
41
tracing-tracy = ["dep:tracy-client"]
42
ci_limits = []
43
webgl = ["wgpu/webgl"]
44
webgpu = ["wgpu/webgpu"]
45
vulkan-portability = ["wgpu/vulkan-portability"]
46
gles = ["wgpu/gles"]
47
detailed_trace = []
48
# Pre-populate buffer labels with buffer types for debugging.
49
type_label_buffers = []
50
# Enables collecting extra information for debugging.
51
debug = ["type_label_buffers", "bevy_utils/debug"]
52
## Adds serialization support through `serde`.
53
serialize = ["bevy_mesh/serialize"]
54
55
[dependencies]
56
# bevy
57
bevy_app = { path = "../bevy_app", version = "0.19.0-dev" }
58
bevy_asset = { path = "../bevy_asset", version = "0.19.0-dev" }
59
bevy_color = { path = "../bevy_color", version = "0.19.0-dev", features = [
60
"serialize",
61
"wgpu-types",
62
] }
63
bevy_derive = { path = "../bevy_derive", version = "0.19.0-dev" }
64
bevy_diagnostic = { path = "../bevy_diagnostic", version = "0.19.0-dev" }
65
bevy_ecs = { path = "../bevy_ecs", version = "0.19.0-dev" }
66
bevy_encase_derive = { path = "../bevy_encase_derive", version = "0.19.0-dev" }
67
bevy_math = { path = "../bevy_math", version = "0.19.0-dev" }
68
bevy_material = { path = "../bevy_material", version = "0.19.0-dev" }
69
bevy_reflect = { path = "../bevy_reflect", version = "0.19.0-dev" }
70
bevy_log = { path = "../bevy_log", version = "0.19.0-dev" }
71
bevy_material_macros = { path = "../bevy_material/macros", version = "0.19.0-dev" }
72
bevy_render_macros = { path = "../bevy_render/macros", version = "0.19.0-dev" }
73
bevy_time = { path = "../bevy_time", version = "0.19.0-dev" }
74
bevy_transform = { path = "../bevy_transform", version = "0.19.0-dev" }
75
bevy_window = { path = "../bevy_window", version = "0.19.0-dev" }
76
bevy_utils = { path = "../bevy_utils", version = "0.19.0-dev" }
77
bevy_tasks = { path = "../bevy_tasks", version = "0.19.0-dev" }
78
bevy_image = { path = "../bevy_image", version = "0.19.0-dev" }
79
bevy_mesh = { path = "../bevy_mesh", version = "0.19.0-dev" }
80
bevy_camera = { path = "../bevy_camera", version = "0.19.0-dev" }
81
bevy_shader = { path = "../bevy_shader", version = "0.19.0-dev" }
82
bevy_platform = { path = "../bevy_platform", version = "0.19.0-dev", default-features = false, features = [
83
"std",
84
"serialize",
85
] }
86
87
# rendering
88
image = { version = "0.25.2", default-features = false }
89
90
# misc
91
# `fragile-send-sync-non-atomic-wasm` feature means we can't use Wasm threads for rendering
92
# It is enabled for now to avoid having to do a significant overhaul of the renderer just for wasm.
93
# When the 'atomics' feature is enabled `fragile-send-sync-non-atomic` does nothing
94
# and Bevy instead wraps `wgpu` types to verify they are not used off their origin thread.
95
wgpu = { version = "28", default-features = false, features = [
96
"wgsl",
97
"dx12",
98
"metal",
99
"vulkan",
100
"naga-ir",
101
"fragile-send-sync-non-atomic-wasm",
102
] }
103
wgpu-types = { version = "28", default-features = false }
104
naga = { version = "28", features = ["wgsl-in"] }
105
bytemuck = { version = "1.5", features = ["derive", "must_cast"] }
106
downcast-rs = { version = "2", default-features = false, features = ["std"] }
107
thiserror = { version = "2", default-features = false }
108
derive_more = { version = "2", default-features = false, features = ["from"] }
109
encase = "0.12"
110
glam = { version = "0.31.0", default-features = false, features = [
111
"std",
112
"encase",
113
] }
114
# For wgpu profiling using tracing. Use `RUST_LOG=info` to also capture the wgpu spans.
115
profiling = { version = "1", features = [
116
"profile-with-tracing",
117
], optional = true }
118
async-channel = "2.3.0"
119
nonmax = "0.5"
120
smallvec = { version = "1", default-features = false, features = ["const_new"] }
121
offset-allocator = "0.2"
122
variadics_please = "1.1"
123
tracy-client = { version = "0.18.3", optional = true }
124
indexmap = { version = "2" }
125
fixedbitset = { version = "0.5" }
126
bitflags = "2"
127
128
[target.'cfg(all(target_arch = "wasm32", target_feature = "atomics"))'.dependencies]
129
send_wrapper = { version = "0.6.0" }
130
131
[dev-dependencies]
132
proptest = "1"
133
134
[target.'cfg(target_arch = "wasm32")'.dependencies]
135
js-sys = "0.3.83"
136
web-sys = { version = "0.3.67", features = [
137
'Blob',
138
'Document',
139
'Element',
140
'HtmlElement',
141
'Node',
142
'Url',
143
'Window',
144
] }
145
wasm-bindgen = "0.2"
146
# TODO: Assuming all wasm builds are for the browser. Require `no_std` support to break assumption.
147
bevy_app = { path = "../bevy_app", version = "0.19.0-dev", default-features = false, features = [
148
"web",
149
] }
150
bevy_platform = { path = "../bevy_platform", version = "0.19.0-dev", default-features = false, features = [
151
"web",
152
] }
153
bevy_reflect = { path = "../bevy_reflect", version = "0.19.0-dev", default-features = false, features = [
154
"web",
155
] }
156
157
[lints]
158
workspace = true
159
160
[package.metadata.docs.rs]
161
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
162
all-features = true
163
164