2020-11-10 03:26:08 +00:00
|
|
|
[package]
|
|
|
|
name = "bevy_internal"
|
2023-07-09 08:43:47 +00:00
|
|
|
version = "0.11.0"
|
2021-10-27 00:12:14 +00:00
|
|
|
edition = "2021"
|
2023-01-23 14:28:00 +00:00
|
|
|
description = "An internal Bevy crate used to facilitate optional dynamic linking via the 'dynamic_linking' feature"
|
2020-11-10 03:26:08 +00:00
|
|
|
homepage = "https://bevyengine.org"
|
|
|
|
repository = "https://github.com/bevyengine/bevy"
|
2021-07-23 21:11:51 +00:00
|
|
|
license = "MIT OR Apache-2.0"
|
2020-11-10 03:26:08 +00:00
|
|
|
keywords = ["game", "engine", "gamedev", "graphics", "bevy"]
|
|
|
|
categories = ["game-engines", "graphics", "gui", "rendering"]
|
|
|
|
|
|
|
|
[features]
|
2022-04-13 23:35:28 +00:00
|
|
|
trace = [
|
|
|
|
"bevy_app/trace",
|
2022-06-20 10:32:43 +00:00
|
|
|
"bevy_core_pipeline?/trace",
|
2022-04-13 23:35:28 +00:00
|
|
|
"bevy_ecs/trace",
|
|
|
|
"bevy_log/trace",
|
2022-06-20 10:32:43 +00:00
|
|
|
"bevy_render?/trace",
|
2022-11-14 23:08:31 +00:00
|
|
|
"bevy_hierarchy/trace",
|
2023-03-26 23:03:38 +00:00
|
|
|
"bevy_winit?/trace"
|
2022-04-13 23:35:28 +00:00
|
|
|
]
|
2020-11-13 01:23:57 +00:00
|
|
|
trace_chrome = [ "bevy_log/tracing-chrome" ]
|
2022-06-20 10:32:43 +00:00
|
|
|
trace_tracy = ["bevy_render?/tracing-tracy", "bevy_log/tracing-tracy" ]
|
2023-04-17 16:04:46 +00:00
|
|
|
trace_tracy_memory = ["bevy_log/trace_tracy_memory"]
|
2021-12-14 03:58:23 +00:00
|
|
|
wgpu_trace = ["bevy_render/wgpu_trace"]
|
2022-02-18 22:56:57 +00:00
|
|
|
debug_asset_server = ["bevy_asset/debug_asset_server"]
|
Introduce detailed_trace macro, use in TrackedRenderPass (#7639)
Profiles show that in extremely hot loops, like the draw loops in the renderer, invoking the trace! macro has noticeable overhead, even if the trace log level is not enabled.
Solve this by introduce a 'wrapper' detailed_trace macro around trace, that wraps the trace! log statement in a trivially false if statement unless a cargo feature is enabled
# Objective
- Eliminate significant overhead observed with trace-level logging in render hot loops, even when trace log level is not enabled.
- This is an alternative solution to the one proposed in #7223
## Solution
- Introduce a wrapper around the `trace!` macro called `detailed_trace!`. This macro wraps the `trace!` macro with an if statement that is conditional on a new cargo feature, `detailed_trace`. When the feature is not enabled (the default), then the if statement is trivially false and should be optimized away at compile time.
- Convert the observed hot occurrences of trace logging in `TrackedRenderPass` with this new macro.
Testing the results of
```
cargo run --profile stress-test --features bevy/trace_tracy --example many_cubes -- spheres
```
![image](https://user-images.githubusercontent.com/1222141/218298552-38551717-b062-4c64-afdc-a60267ac984d.png)
shows significant improvement of the `main_opaque_pass_3d` of the renderer, a median time decrease from 6.0ms to 3.5ms.
---
## Changelog
- For performance reasons, some detailed renderer trace logs now require the use of cargo feature `detailed_trace` in addition to setting the log level to `TRACE` in order to be shown.
## Migration Guide
- Some detailed bevy trace events now require the use of the cargo feature `detailed_trace` in addition to enabling `TRACE` level logging to view. Should you wish to see these logs, please compile your code with the bevy feature `detailed_trace`. Currently, the only logs that are affected are the renderer logs pertaining to `TrackedRenderPass` functions
2023-02-13 18:20:27 +00:00
|
|
|
detailed_trace = ["bevy_utils/detailed_trace"]
|
2020-11-10 03:26:08 +00:00
|
|
|
|
|
|
|
# Image format support for texture loading (PNG and HDR are enabled by default)
|
2023-02-19 20:38:13 +00:00
|
|
|
exr = ["bevy_render/exr"]
|
2021-12-14 03:58:23 +00:00
|
|
|
hdr = ["bevy_render/hdr"]
|
|
|
|
png = ["bevy_render/png"]
|
|
|
|
tga = ["bevy_render/tga"]
|
|
|
|
jpeg = ["bevy_render/jpeg"]
|
|
|
|
bmp = ["bevy_render/bmp"]
|
Added `WebP` image format support (#8220)
# Objective
WebP is a modern image format developed by Google that offers a
significant reduction in file size compared to other image formats such
as PNG and JPEG, while still maintaining good image quality. This makes
it particularly useful for games with large numbers of images, such as
those with high-quality textures or detailed sprites, where file size
and loading times can have a significant impact on performance.
By adding support for WebP images in Bevy, game developers using this
engine can now take advantage of this modern image format and reduce the
memory usage and loading times of their games. This improvement can
ultimately result in a better gaming experience for players.
In summary, the objective of adding WebP image format support in Bevy is
to enable game developers to use a modern image format that provides
better compression rates and smaller file sizes, resulting in faster
loading times and reduced memory usage for their games.
## Solution
To add support for WebP images in Bevy, this pull request leverages the
existing `image` crate support for WebP. This implementation is easily
integrated into the existing Bevy asset-loading system. To maintain
compatibility with existing Bevy projects, WebP image support is
disabled by default, and developers can enable it by adding a feature
flag to their project's `Cargo.toml` file. With this feature, Bevy
becomes even more versatile for game developers and provides a valuable
addition to the game engine.
---
## Changelog
- Added support for WebP image format in Bevy game engine
## Migration Guide
To enable WebP image support in your Bevy project, add the following
line to your project's Cargo.toml file:
```toml
bevy = { version = "*", features = ["webp"]}
```
2023-03-28 19:53:55 +00:00
|
|
|
webp = ["bevy_render/webp"]
|
2022-03-15 22:26:46 +00:00
|
|
|
basis-universal = ["bevy_render/basis-universal"]
|
|
|
|
dds = ["bevy_render/dds"]
|
2023-05-16 23:51:47 +00:00
|
|
|
pnm = ["bevy_render/pnm"]
|
2022-03-15 22:26:46 +00:00
|
|
|
ktx2 = ["bevy_render/ktx2"]
|
|
|
|
# For ktx2 supercompression
|
|
|
|
zlib = ["bevy_render/zlib"]
|
|
|
|
zstd = ["bevy_render/zstd"]
|
2020-11-10 03:26:08 +00:00
|
|
|
|
2023-02-19 20:38:13 +00:00
|
|
|
# Include tonemapping LUT KTX2 files.
|
|
|
|
tonemapping_luts = ["bevy_core_pipeline/tonemapping_luts"]
|
|
|
|
|
2022-03-08 02:11:59 +00:00
|
|
|
# Audio format support (vorbis is enabled by default)
|
2020-11-10 03:26:08 +00:00
|
|
|
flac = ["bevy_audio/flac"]
|
|
|
|
mp3 = ["bevy_audio/mp3"]
|
|
|
|
vorbis = ["bevy_audio/vorbis"]
|
|
|
|
wav = ["bevy_audio/wav"]
|
2023-03-01 03:22:46 +00:00
|
|
|
minimp3 = ["bevy_audio/minimp3"]
|
2023-01-09 19:05:30 +00:00
|
|
|
symphonia-aac = ["bevy_audio/symphonia-aac"]
|
|
|
|
symphonia-all = ["bevy_audio/symphonia-all"]
|
|
|
|
symphonia-flac = ["bevy_audio/symphonia-flac"]
|
|
|
|
symphonia-isomp4 = ["bevy_audio/symphonia-isomp4"]
|
|
|
|
symphonia-vorbis = ["bevy_audio/symphonia-vorbis"]
|
|
|
|
symphonia-wav = ["bevy_audio/symphonia-wav"]
|
2023-04-25 19:30:48 +00:00
|
|
|
|
|
|
|
# Shader formats
|
|
|
|
shader_format_glsl = ["bevy_render/shader_format_glsl"]
|
|
|
|
shader_format_spirv = ["bevy_render/shader_format_spirv"]
|
2020-11-10 03:26:08 +00:00
|
|
|
|
2021-11-13 21:15:22 +00:00
|
|
|
# Enable watching file system for asset hot reload
|
|
|
|
filesystem_watcher = ["bevy_asset/filesystem_watcher"]
|
|
|
|
|
2022-11-14 23:08:22 +00:00
|
|
|
serialize = ["bevy_core/serialize", "bevy_input/serialize", "bevy_time/serialize", "bevy_window/serialize", "bevy_transform/serialize", "bevy_math/serialize", "bevy_scene/serialize"]
|
2023-07-09 04:22:15 +00:00
|
|
|
multi-threaded = ["bevy_ecs/multi-threaded", "bevy_tasks/multi-threaded"]
|
2020-11-10 03:26:08 +00:00
|
|
|
|
|
|
|
# Display server protocol support (X11 is enabled by default)
|
|
|
|
wayland = ["bevy_winit/wayland"]
|
|
|
|
x11 = ["bevy_winit/x11"]
|
|
|
|
|
2021-01-03 20:39:11 +00:00
|
|
|
# enable rendering of font glyphs using subpixel accuracy
|
2021-12-14 03:58:23 +00:00
|
|
|
subpixel_glyph_atlas = ["bevy_text/subpixel_glyph_atlas"]
|
2021-01-03 20:39:11 +00:00
|
|
|
|
2021-12-22 20:59:48 +00:00
|
|
|
# Optimise for WebGL2
|
2023-06-13 06:49:47 +00:00
|
|
|
webgl = ["bevy_core_pipeline?/webgl", "bevy_pbr?/webgl", "bevy_render?/webgl", "bevy_gizmos?/webgl"]
|
2021-12-22 20:59:48 +00:00
|
|
|
|
2021-04-14 21:40:36 +00:00
|
|
|
# enable systems that allow for automated testing on CI
|
2023-05-01 18:00:01 +00:00
|
|
|
bevy_ci_testing = ["bevy_app/bevy_ci_testing", "bevy_time/bevy_ci_testing", "bevy_render?/bevy_ci_testing", "bevy_render?/ci_limits"]
|
2021-04-14 21:40:36 +00:00
|
|
|
|
2022-04-02 22:36:02 +00:00
|
|
|
# Enable animation support, and glTF animation loading
|
2022-06-20 10:32:43 +00:00
|
|
|
animation = ["bevy_animation", "bevy_gltf?/bevy_animation"]
|
2022-04-02 22:36:02 +00:00
|
|
|
|
2023-03-20 20:57:54 +00:00
|
|
|
bevy_sprite = ["dep:bevy_sprite", "bevy_gizmos?/bevy_sprite"]
|
|
|
|
bevy_pbr = ["dep:bevy_pbr", "bevy_gizmos?/bevy_pbr"]
|
|
|
|
|
2023-01-22 20:41:28 +00:00
|
|
|
# Used to disable code that is unsupported when Bevy is dynamically linked
|
2023-01-23 14:28:00 +00:00
|
|
|
dynamic_linking = ["bevy_diagnostic/dynamic_linking"]
|
2023-01-22 20:41:28 +00:00
|
|
|
|
2023-02-06 18:08:49 +00:00
|
|
|
# Enable using a shared stdlib for cxx on Android.
|
|
|
|
android_shared_stdcxx = ["bevy_audio/android_shared_stdcxx"]
|
|
|
|
|
2023-03-01 22:45:04 +00:00
|
|
|
# Enable AccessKit on Unix backends (currently only works with experimental
|
|
|
|
# screen readers and forks.)
|
|
|
|
accesskit_unix = ["bevy_winit/accesskit_unix"]
|
|
|
|
|
2023-02-24 02:21:07 +00:00
|
|
|
bevy_text = ["dep:bevy_text", "bevy_ui?/bevy_text"]
|
|
|
|
|
2023-04-03 21:23:26 +00:00
|
|
|
bevy_render = ["dep:bevy_render", "bevy_scene?/bevy_render"]
|
2023-03-28 20:18:50 +00:00
|
|
|
# Enable assertions to check the validity of parameters passed to glam
|
|
|
|
glam_assert = ["bevy_math/glam_assert"]
|
|
|
|
|
2023-04-21 22:30:18 +00:00
|
|
|
default_font = ["bevy_text?/default_font"]
|
|
|
|
|
2020-11-10 03:26:08 +00:00
|
|
|
[dependencies]
|
|
|
|
# bevy
|
2023-07-09 08:43:47 +00:00
|
|
|
bevy_a11y = { path = "../bevy_a11y", version = "0.11.0" }
|
|
|
|
bevy_app = { path = "../bevy_app", version = "0.11.0" }
|
|
|
|
bevy_core = { path = "../bevy_core", version = "0.11.0" }
|
|
|
|
bevy_derive = { path = "../bevy_derive", version = "0.11.0" }
|
|
|
|
bevy_diagnostic = { path = "../bevy_diagnostic", version = "0.11.0" }
|
|
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.11.0" }
|
|
|
|
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.11.0" }
|
|
|
|
bevy_input = { path = "../bevy_input", version = "0.11.0" }
|
|
|
|
bevy_log = { path = "../bevy_log", version = "0.11.0" }
|
|
|
|
bevy_math = { path = "../bevy_math", version = "0.11.0" }
|
|
|
|
bevy_ptr = { path = "../bevy_ptr", version = "0.11.0" }
|
|
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.11.0", features = ["bevy"] }
|
|
|
|
bevy_time = { path = "../bevy_time", version = "0.11.0" }
|
|
|
|
bevy_transform = { path = "../bevy_transform", version = "0.11.0" }
|
|
|
|
bevy_utils = { path = "../bevy_utils", version = "0.11.0" }
|
|
|
|
bevy_window = { path = "../bevy_window", version = "0.11.0" }
|
|
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.11.0" }
|
2020-11-10 03:26:08 +00:00
|
|
|
# bevy (optional)
|
2023-07-09 08:43:47 +00:00
|
|
|
bevy_animation = { path = "../bevy_animation", optional = true, version = "0.11.0" }
|
|
|
|
bevy_asset = { path = "../bevy_asset", optional = true, version = "0.11.0" }
|
|
|
|
bevy_audio = { path = "../bevy_audio", optional = true, version = "0.11.0" }
|
|
|
|
bevy_core_pipeline = { path = "../bevy_core_pipeline", optional = true, version = "0.11.0" }
|
|
|
|
bevy_gltf = { path = "../bevy_gltf", optional = true, version = "0.11.0" }
|
|
|
|
bevy_pbr = { path = "../bevy_pbr", optional = true, version = "0.11.0" }
|
|
|
|
bevy_render = { path = "../bevy_render", optional = true, version = "0.11.0" }
|
|
|
|
bevy_dynamic_plugin = { path = "../bevy_dynamic_plugin", optional = true, version = "0.11.0" }
|
|
|
|
bevy_scene = { path = "../bevy_scene", optional = true, version = "0.11.0" }
|
|
|
|
bevy_sprite = { path = "../bevy_sprite", optional = true, version = "0.11.0" }
|
|
|
|
bevy_text = { path = "../bevy_text", optional = true, version = "0.11.0" }
|
|
|
|
bevy_ui = { path = "../bevy_ui", optional = true, version = "0.11.0" }
|
|
|
|
bevy_winit = { path = "../bevy_winit", optional = true, version = "0.11.0" }
|
|
|
|
bevy_gilrs = { path = "../bevy_gilrs", optional = true, version = "0.11.0" }
|
|
|
|
bevy_gizmos = { path = "../bevy_gizmos", optional = true, version = "0.11.0", default-features = false }
|