-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - Basic adaptive batching for parallel query iteration #4777
Commits on May 9, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 65bd41f - Browse repository at this point
Copy the full SHA 65bd41fView commit details -
Configuration menu - View commit details
-
Copy full SHA for b110039 - Browse repository at this point
Copy the full SHA b110039View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf10758 - Browse repository at this point
Copy the full SHA cf10758View commit details -
Configuration menu - View commit details
-
Copy full SHA for 076db46 - Browse repository at this point
Copy the full SHA 076db46View commit details -
Configuration menu - View commit details
-
Copy full SHA for 12eefa1 - Browse repository at this point
Copy the full SHA 12eefa1View commit details
Commits on May 14, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 3c76af9 - Browse repository at this point
Copy the full SHA 3c76af9View commit details
Commits on May 16, 2022
-
Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 332e851 - Browse repository at this point
Copy the full SHA 332e851View commit details -
Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 186fd50 - Browse repository at this point
Copy the full SHA 186fd50View commit details -
Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 88044d1 - Browse repository at this point
Copy the full SHA 88044d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 704cf61 - Browse repository at this point
Copy the full SHA 704cf61View commit details -
Configuration menu - View commit details
-
Copy full SHA for cedd756 - Browse repository at this point
Copy the full SHA cedd756View commit details
Commits on May 17, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 1f94913 - Browse repository at this point
Copy the full SHA 1f94913View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5b3a730 - Browse repository at this point
Copy the full SHA 5b3a730View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8b365f4 - Browse repository at this point
Copy the full SHA 8b365f4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 21d95cb - Browse repository at this point
Copy the full SHA 21d95cbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 92af1f4 - Browse repository at this point
Copy the full SHA 92af1f4View commit details
Commits on May 21, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 2309ab7 - Browse repository at this point
Copy the full SHA 2309ab7View commit details
Commits on May 30, 2022
-
Configuration menu - View commit details
-
Copy full SHA for f788a7a - Browse repository at this point
Copy the full SHA f788a7aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6fd0cf1 - Browse repository at this point
Copy the full SHA 6fd0cf1View commit details
Commits on Jun 15, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 10904c1 - Browse repository at this point
Copy the full SHA 10904c1View commit details
Commits on Jun 16, 2022
-
Configuration menu - View commit details
-
Copy full SHA for ac4c524 - Browse repository at this point
Copy the full SHA ac4c524View commit details
Commits on Jun 20, 2022
-
Co-authored-by: Mike <mike.hsu@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 0b8c1eb - Browse repository at this point
Copy the full SHA 0b8c1ebView commit details
Commits on Jun 22, 2022
-
Add documentation comments to
bevy_window
(bevyengine#4333)# Objective - Add documentation comments and `#![warn(missing_docs)]` to `bevy_window`. - Part of bevyengine#3492
Configuration menu - View commit details
-
Copy full SHA for 3674f10 - Browse repository at this point
Copy the full SHA 3674f10View commit details -
bevy_render: Fix KTX2 UASTC format mapping (bevyengine#4569)
# Objective - KTX2 UASTC format mapping was incorrect. For some reason I had written it to map to a set of data formats based on the count of KTX2 sample information blocks, but the mapping should be done based on the channel type in the sample information. - This is a valid change pulled out from bevyengine#4514 as the attempt to fix the array textures there was incorrect ## Solution - Fix the KTX2 UASTC `DataFormat` enum to contain the correct formats based on the channel types in section 3.10.2 of https://github.khronos.org/KTX-Specification/ (search for "Basis Universal UASTC Format") - Correctly map from the sample information channel type to `DataFormat` - Correctly configure transcoding and the resulting texture format based on the `DataFormat` --- ## Changelog - Fixed: KTX2 UASTC format handling
Configuration menu - View commit details
-
Copy full SHA for 08bf88b - Browse repository at this point
Copy the full SHA 08bf88bView commit details -
update hashbrown to 0.12 (bevyengine#5035)
# Objective - Update hashbrown to 0.12 ## Solution - Replace bevyengine#4004 - As the 0.12 is already in Bevy dependency tree, it shouldn't be an issue to update - The exception for the 0.11 should be removed once zakarumych/gpu-descriptor#21 is merged and released - Also removed a few exceptions that weren't needed anymore
Configuration menu - View commit details
-
Copy full SHA for 3674e19 - Browse repository at this point
Copy the full SHA 3674e19View commit details -
WGSL: use correct syntax for matrix access (bevyengine#5039)
# Objective - `.x` is not the correct syntax to access a column in a matrix in WGSL: https://www.w3.org/TR/WGSL/#matrix-access-expr - naga accepts it and translates it correctly, but it's not valid when shaders are kept as is and used directly in WGSL ## Solution - Use the correct syntax
Configuration menu - View commit details
-
Copy full SHA for 619bdb9 - Browse repository at this point
Copy the full SHA 619bdb9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 65a6c9a - Browse repository at this point
Copy the full SHA 65a6c9aView commit details -
enable optional dependencies to stay optional (bevyengine#5023)
# Objective - Optional dependencies were enabled by some features as a side effect. for example, enabling the `webgl` feature enables the `bevy_pbr` optional dependency ## Solution - Use the syntax introduced in rust 1.60 to specify weak dependency features: https://blog.rust-lang.org/2022/04/07/Rust-1.60.0.html#new-syntax-for-cargo-features > Weak dependency features tackle the second issue where the `"optional-dependency/feature-name"` syntax would always enable `optional-dependency`. However, often you want to enable the feature on the optional dependency only if some other feature has enabled the optional dependency. Starting in 1.60, you can add a ? as in `"package-name?/feature-name"` which will only enable the given feature if something else has enabled the optional dependency.
Configuration menu - View commit details
-
Copy full SHA for 8959c2d - Browse repository at this point
Copy the full SHA 8959c2dView commit details -
gltf: do not import IoTaskPool in wasm (bevyengine#5038)
# Objective - Remove a warning when building for wasm ## Solution - Do not import the dependency when building for wasm
Configuration menu - View commit details
-
Copy full SHA for 9a8e5fd - Browse repository at this point
Copy the full SHA 9a8e5fdView commit details -
Physical viewport calculation fix (bevyengine#5055)
# Objective - Fixes early return when viewport is not set. This now matches the description of the function. ## Solution - Remove errant try `?`.
Configuration menu - View commit details
-
Copy full SHA for 03ffbe8 - Browse repository at this point
Copy the full SHA 03ffbe8View commit details -
Cleanups in diagnostics (bevyengine#3871)
- changed `EntityCountDiagnosticsPlugin` to not use an exclusive system to get its entity count - removed mention of `WgpuResourceDiagnosticsPlugin` in example `log_diagnostics` as it doesn't exist anymore - added ability to enable, disable ~~or toggle~~ a diagnostic (fix bevyengine#3767) - made diagnostic values lazy, so they are only computed if the diagnostic is enabled - do not log an average for diagnostics with only one value - removed `sum` function from diagnostic as it isn't really useful - ~~do not keep an average of the FPS diagnostic. it is already an average on the last 20 frames, so the average FPS was an average of the last 20 frames over the last 20 frames~~ - do not compute the FPS value as an average over the last 20 frames but give the actual "instant FPS" - updated log format to use variable capture - added some doc - the frame counter diagnostic value can be reseted to 0
Configuration menu - View commit details
-
Copy full SHA for b89d878 - Browse repository at this point
Copy the full SHA b89d878View commit details -
bevy_reflect
: putserialize
into externalReflectSerialize
type (……bevyengine#4782) builds on top of bevyengine#4780 # Objective `Reflect` and `Serialize` are currently very tied together because `Reflect` has a `fn serialize(&self) -> Option<Serializable<'_>>` method. Because of that, we can either implement `Reflect` for types like `Option<T>` with `T: Serialize` and have `fn serialize` be implemented, or without the bound but having `fn serialize` return `None`. By separating `ReflectSerialize` into a separate type (like how it already is for `ReflectDeserialize`, `ReflectDefault`), we could separately `.register::<Option<T>>()` and `.register_data::<Option<T>, ReflectSerialize>()` only if the type `T: Serialize`. This PR does not change the registration but allows it to be changed in a future PR. ## Solution - add the type ```rust struct ReflectSerialize { .. } impl<T: Reflect + Serialize> FromType<T> for ReflectSerialize { .. } ``` - remove `#[reflect(Serialize)]` special casing. - when serializing reflect value types, look for `ReflectSerialize` in the `TypeRegistry` instead of calling `value.serialize()`
Configuration menu - View commit details
-
Copy full SHA for d3b997b - Browse repository at this point
Copy the full SHA d3b997bView commit details -
Add benchmarks for schedule dependency resolution (bevyengine#4961)
# Objective - Add benchmarks to test the performance of `Schedule`'s system dependency resolution. ## Solution - Do a series of benchmarks while increasing the number of systems in the schedule to see how the run-time scales. - Split the benchmarks into a group with no dependencies, and a group with many dependencies.
Configuration menu - View commit details
-
Copy full SHA for c5df0d6 - Browse repository at this point
Copy the full SHA c5df0d6View commit details -
change panicking test to not run on global task pool (bevyengine#4998)
# Objective - Fixes bevyengine#4996 ## Solution - Panicking on the global task pool is probably bad. This changes the panicking test to use a single threaded stage to run the test instead. - I checked the other #[should_panic] - I also added explicit ordering between the transform propagate system and the parent update system. The ambiguous ordering didn't seem to be causing problems, but the tests are probably more correct this way. The plugins that add these systems have an explicit ordering. I can remove this if necessary. ## Note I don't have a 100% mental model of why panicking is causing intermittent failures. It probably has to do with a task for one of the other tests landing on the panicking thread when it actually panics. Why this causes a problem I'm not sure, but this PR seems to fix things. ## Open questions - there are some other #[should_panic] tests that run on the task pool in stage.rs. I don't think we restart panicked threads, so this might be killing most of the threads on the pool. But since they're not causing test failures, we should probably decide what to do about that separately. The solution in this PR won't work since those tests are explicitly testing parallelism.
Configuration menu - View commit details
-
Copy full SHA for d5a5993 - Browse repository at this point
Copy the full SHA d5a5993View commit details -
Add a
release_all
function toInput
. (bevyengine#5011)Adds a `release_all` function to `Input` that releases all of the currently pressed inputs and marks them as just released.
Configuration menu - View commit details
-
Copy full SHA for 606635f - Browse repository at this point
Copy the full SHA 606635fView commit details -
Update
clap
to 3.2 in tools usingvalue_parser
(bevyengine#5031)**Why?** The `value_parser` `clap` attribute was added in [version 3.2.0][0]. With the current version of `3.1.12` users can get errors like: ``` error: unexpected attribute: value_parser --> tools/spancmp/src/main.rs:18:25 | 18 | #[clap(short, long, value_parser, default_value_t = 0.0)] | ^^^^^^^^^^^^ ``` See bevyengine#4944 (comment) for more details. [0]: https://github.com/clap-rs/clap/blob/master/CHANGELOG.md#320---2022-06-13
Configuration menu - View commit details
-
Copy full SHA for 5f6a290 - Browse repository at this point
Copy the full SHA 5f6a290View commit details -
Fix redundant "have" in CONTRIBUTING (bevyengine#5036)
**This Commit** 1. Makes it so the sentence doesn't read "are contributors who have Have actively ..." 2. Makes it so all three bullet points end in punctuation **Notes** Could also remove the leading "Have" from all bullet points and leave it on the previous sentence. That's the least redundant but I guess this is more flexible if we want to add a sentence that doesn't start with "Have" later.
Configuration menu - View commit details
-
Copy full SHA for ce10028 - Browse repository at this point
Copy the full SHA ce10028View commit details -
Add
Input::reset_all
(bevyengine#5015)Adds a `reset_all` method to reset `pressed`, `just_pressed`, and `just_released` on the `Input`. Fixes bevyengine#3383
Configuration menu - View commit details
-
Copy full SHA for ec9a481 - Browse repository at this point
Copy the full SHA ec9a481View commit details -
Fix Nix section of linux_dependencies.md (bevyengine#5050)
# Objective `nix-shell` reported: ```error: 'x11' has been renamed to/replaced by 'xlibsWrapper'```. ## Solution Replacing `x11` with `xlibsWrapper` in the Nix section of linux_dependencies.md fixes the problem on my system, and bevy projects build fine.
Configuration menu - View commit details
-
Copy full SHA for d74a318 - Browse repository at this point
Copy the full SHA d74a318View commit details -
Fixed bevy_ui touch input (bevyengine#4099)
# Objective `bevy_ui` doesn't support correctly touch inputs because of two problems in the focus system: - It attempts to retrieve touch input with a specific `0` id - It doesn't retrieve touch positions and bases its focus solely on mouse position, absent from mobile devices ## Solution I added a few methods to the `Touches` resource, allowing to check if **any** touch input was pressed, released or cancelled and to retrieve the *position* of the first pressed touch input and adapted the focus system. I added a test button to the *iOS* example and it works correclty on emulator. I did not test on a real touch device as: - Android is not working (bevyengine#3249) - I don't have an iOS device
Configuration menu - View commit details
-
Copy full SHA for 2381ba2 - Browse repository at this point
Copy the full SHA 2381ba2View commit details -
Improve entity and component API docs (bevyengine#4767)
# Objective The descriptions included in the API docs of `entity` module, `Entity` struct, and `Component` trait have some issues: 1. the concept of entity is not clearly defined, 2. descriptions are a little bit out of place, 3. in a case the description leak too many details about the implementation, 4. some descriptions are not exhaustive, 5. there are not enough examples, 6. the content can be formatted in a much better way. ## Solution 1. ~~Stress the fact that entity is an abstract and elementary concept. Abstract because the concept of entity is not hardcoded into the library but emerges from the interaction of `Entity` with every other part of `bevy_ecs`, like components and world methods. Elementary because it is a fundamental concept that cannot be defined with other terms (like point in euclidean geometry, or time in classical physics).~~ We decided to omit the definition of entity in the API docs ([see why]). It is only described in its relationship with components. 2. Information has been moved to relevant places and links are used instead in the other places. 3. Implementation details about `Entity` have been reduced. 4. Descriptions have been made more exhaustive by stating how to obtain and use items. Entity operations are enriched with `World` methods. 5. Examples have been added or enriched. 6. Sections have been added to organize content. Entity operations are now laid out in a table. ### Todo list - [x] Break lines at sentence-level. ## For reviewers - ~~I added a TODO over `Component` docs, make sure to check it out and discuss it if necessary.~~ ([Resolved]) - You can easily check the rendered documentation by doing `cargo doc -p bevy_ecs --no-deps --open`. [see why]: bevyengine#4767 (comment) [Resolved]: bevyengine#4767 (comment)
Configuration menu - View commit details
-
Copy full SHA for d025d03 - Browse repository at this point
Copy the full SHA d025d03View commit details -
Change check_visibility to use thread-local queues instead of a chann…
…el (bevyengine#4663) Further speed up visibility checking by removing the main sources of contention for the system. - ~~Make `ComputedVisibility` a resource wrapping a `FixedBitset`.~~ - ~~Remove `ComputedVisibility` as a component.~~ ~~This adds a one-bit overhead to every entity in the app world. For a game with 100,000 entities, this is 12.5KB of memory. This is still small enough to fit entirely in most L1 caches. Also removes the need for a per-Entity change detection tick. This reduces the memory footprint of ComputedVisibility 72x.~~ ~~The decreased memory usage and less fragmented memory locality should provide significant performance benefits.~~ ~~Clearing visible entities should be significantly faster than before:~~ - ~~Setting one `u32` to 0 clears 32 entities per cycle.~~ - ~~No archetype fragmentation to contend with.~~ - ~~Change detection is applied to the resource, so there is no per-Entity update tick requirement.~~ ~~The side benefit of this design is that it removes one more "computed component" from userspace. Though accessing the values within it are now less ergonomic.~~ This PR changes `crossbeam_channel` in `check_visibility` to use a `Local<ThreadLocal<Cell<Vec<Entity>>>` to mark down visible entities instead. Co-Authored-By: TheRawMeatball <therawmeatball@gmail.com> Co-Authored-By: Aevyrie <aevyrie@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 4132b60 - Browse repository at this point
Copy the full SHA 4132b60View commit details -
Mark mutable APIs under ECS storage as pub(crate) (bevyengine#5065)
# Objective Closes bevyengine#1557. Partially addresses bevyengine#3362. Cleanup the public facing API for storage types. Most of these APIs are difficult to use safely when directly interfacing with these types, and is also currently impossible to interact with in normal ECS use as there is no `World::storages_mut`. The majority of these types should be easy enough to read, and perhaps mutate the contents, but never structurally altered without the same checks in the rest of bevy_ecs code. This both cleans up the public facing types and helps use unused code detection to remove a few of the APIs we're not using internally. ## Solution - Mark all APIs that take `&mut T` under `bevy_ecs::storage` as `pub(crate)` or `pub(super)` - Cleanup after it all. Entire type visibility changes: - `BlobVec` is `pub(super)`, only storage code should be directly interacting with it. - `SparseArray` is now `pub(crate)` for the entire type. It's an implementation detail for `Table` and `(Component)SparseSet`. - `TableMoveResult` is now `pub(crate) --- ## Changelog TODO ## Migration Guide Dear God, I hope not.
Configuration menu - View commit details
-
Copy full SHA for 34ae6ba - Browse repository at this point
Copy the full SHA 34ae6baView commit details -
Callable PBR functions (bevyengine#4939)
# Objective - Builds on top of bevyengine#4938 - Make clustered-forward PBR lighting/shadows functionality callable - See bevyengine#3969 for details ## Solution - Add `PbrInput` struct type containing a `StandardMaterial`, occlusion, world_position, world_normal, and frag_coord - Split functionality to calculate the unit view vector, and normal-mapped normal into `bevy_pbr::pbr_functions` - Split high-level shading flow into `pbr(in: PbrInput, N: vec3<f32>, V: vec3<f32>, is_orthographic: bool)` function in `bevy_pbr::pbr_functions` - Rework `pbr.wgsl` fragment stage entry point to make use of the new functions - This has been benchmarked on an M1 Max using `many_cubes -- sphere`. `main` had a median frame time of 15.88ms, this PR 15.99ms, which is a 0.69% frame time increase, which is within noise in my opinion. --- ## Changelog - Added: PBR shading code is now callable. Import `bevy_pbr::pbr_functions` and its dependencies, create a `PbrInput`, calculate the unit view and normal-mapped normal vectors and whether the projection is orthographic, and call `pbr()`!
Configuration menu - View commit details
-
Copy full SHA for 1eaee67 - Browse repository at this point
Copy the full SHA 1eaee67View commit details -
depend on dioxus(and bevy)-maintained fork of stretch (taffy) (bevyen…
…gine#4716) # Objective DioxusLabs and Bevy have taken over maintaining what was our abandoned ui layout dependency [stretch](https://github.com/vislyhq/stretch). Dioxus' fork has had a lot of work done on it by @alice-i-cecile, @Weibye , @jkelleyrtp, @mockersf, @HackerFoo, @TimJentzsch and a dozen other contributors and now is in much better shape than stretch was. The updated crate is called taffy and is available on github [here](https://github.com/DioxusLabs/taffy) ([taffy](https://crates.io/crates/taffy) on crates.io). The goal of this PR is to replace stretch v0.3.2 with taffy v0.1.0. ## Solution I changed the bevy_ui Cargo.toml to depend on taffy instead of stretch and fixed all the errors rustc complained about. --- ## Changelog Changed bevy_ui layout dependency from stretch to taffy (the maintained fork of stretch). fixes bevyengine#677 ## Migration Guide The public api of taffy is different from that of stretch so please advise me on what to do here @alice-i-cecile.
Configuration menu - View commit details
-
Copy full SHA for f3eef7f - Browse repository at this point
Copy the full SHA f3eef7fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4ab1465 - Browse repository at this point
Copy the full SHA 4ab1465View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7bd1617 - Browse repository at this point
Copy the full SHA 7bd1617View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8bc37a0 - Browse repository at this point
Copy the full SHA 8bc37a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for bc2c649 - Browse repository at this point
Copy the full SHA bc2c649View commit details -
Configuration menu - View commit details
-
Copy full SHA for b57d547 - Browse repository at this point
Copy the full SHA b57d547View commit details
Commits on Nov 14, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 5556377 - Browse repository at this point
Copy the full SHA 5556377View commit details -
Configuration menu - View commit details
-
Copy full SHA for a82ff07 - Browse repository at this point
Copy the full SHA a82ff07View commit details -
Configuration menu - View commit details
-
Copy full SHA for fd8fefa - Browse repository at this point
Copy the full SHA fd8fefaView commit details
Commits on Dec 29, 2022
-
Configuration menu - View commit details
-
Copy full SHA for a751055 - Browse repository at this point
Copy the full SHA a751055View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9111a00 - Browse repository at this point
Copy the full SHA 9111a00View commit details
Commits on Jan 6, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 266bfce - Browse repository at this point
Copy the full SHA 266bfceView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2cfcb16 - Browse repository at this point
Copy the full SHA 2cfcb16View commit details
Commits on Jan 18, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 73e5dfc - Browse repository at this point
Copy the full SHA 73e5dfcView commit details -
Configuration menu - View commit details
-
Copy full SHA for acf2f5b - Browse repository at this point
Copy the full SHA acf2f5bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 015e201 - Browse repository at this point
Copy the full SHA 015e201View commit details
Commits on Jan 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c6363ea - Browse repository at this point
Copy the full SHA c6363eaView commit details