mirror of
https://github.com/bevyengine/bevy
synced 2024-11-22 20:53:53 +00:00
450328d15e
# Objective - Fixes #4610 ## Solution - Replaced all instances of `parking_lot` locks with equivalents from `std::sync`. Acquiring locks within `std::sync` can fail, so `.expect("Lock Poisoned")` statements were added where required. ## Comments In [this comment](https://github.com/bevyengine/bevy/issues/4610#issuecomment-1592407881), the lack of deadlock detection was mentioned as a potential reason to not make this change. From what I can gather, Bevy doesn't appear to be using this functionality within the engine. Unless it was expected that a Bevy consumer was expected to enable and use this functionality, it appears to be a feature lost without consequence. Unfortunately, `cpal` and `wgpu` both still rely on `parking_lot`, leaving it in the dependency graph even after this change. From my basic experimentation, this change doesn't appear to have any performance impacts, positive or negative. I tested this using `bevymark` with 50,000 entities and observed 20ms of frame-time before and after the change. More extensive testing with larger/real projects should probably be done.
96 lines
3.3 KiB
TOML
96 lines
3.3 KiB
TOML
[package]
|
|
name = "bevy_render"
|
|
version = "0.12.0-dev"
|
|
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"]
|
|
bevy_ci_testing = ["bevy_app/bevy_ci_testing"]
|
|
|
|
shader_format_glsl = ["naga/glsl-in", "naga/wgsl-out"]
|
|
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"]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_app = { path = "../bevy_app", version = "0.12.0-dev" }
|
|
bevy_asset = { path = "../bevy_asset", version = "0.12.0-dev" }
|
|
bevy_core = { path = "../bevy_core", version = "0.12.0-dev" }
|
|
bevy_derive = { path = "../bevy_derive", version = "0.12.0-dev" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.12.0-dev" }
|
|
bevy_encase_derive = { path = "../bevy_encase_derive", version = "0.12.0-dev" }
|
|
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.12.0-dev" }
|
|
bevy_log = { path = "../bevy_log", version = "0.12.0-dev" }
|
|
bevy_math = { path = "../bevy_math", version = "0.12.0-dev" }
|
|
bevy_mikktspace = { path = "../bevy_mikktspace", version = "0.12.0-dev" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.12.0-dev", features = ["bevy"] }
|
|
bevy_render_macros = { path = "macros", version = "0.12.0-dev" }
|
|
bevy_time = { path = "../bevy_time", version = "0.12.0-dev" }
|
|
bevy_transform = { path = "../bevy_transform", version = "0.12.0-dev" }
|
|
bevy_window = { path = "../bevy_window", version = "0.12.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.12.0-dev" }
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.12.0-dev" }
|
|
|
|
# rendering
|
|
image = { version = "0.24", default-features = false }
|
|
|
|
# misc
|
|
wgpu = { version = "0.16.0", features=["naga"] }
|
|
codespan-reporting = "0.11.0"
|
|
naga = { version = "0.12.0", features = ["wgsl-in"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
bitflags = "2.3"
|
|
bytemuck = { version = "1.5", features = ["derive"] }
|
|
smallvec = { version = "1.6", features = ["union", "const_generics"] }
|
|
downcast-rs = "1.2.0"
|
|
thread_local = "1.1"
|
|
thiserror = "1.0"
|
|
futures-lite = "1.4.0"
|
|
hexasphere = "9.0"
|
|
ddsfile = { version = "0.5.0", optional = true }
|
|
ktx2 = { version = "0.3.0", optional = true }
|
|
naga_oil = "0.8"
|
|
# For ktx2 supercompression
|
|
flate2 = { version = "1.0.22", optional = true }
|
|
ruzstd = { version = "0.4.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.6.1", 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 = "1.8"
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
js-sys = "0.3"
|
|
web-sys = { version = "0.3", features = [
|
|
'Blob',
|
|
'Document',
|
|
'Element',
|
|
'HtmlElement',
|
|
'Node',
|
|
'Url',
|
|
'Window',
|
|
] }
|
|
wasm-bindgen = "0.2"
|