Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: bevyengine/bevy
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.17.1
Choose a base ref
...
head repository: bevyengine/bevy
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.17.2
Choose a head ref
  • 6 commits
  • 68 files changed
  • 9 contributors

Commits on Oct 3, 2025

  1. bevy_render: improve panic message when render graph node doesn't exi…

    …st (#21321)
    
    # Objective
    
    It should be possible to enable minimal bevy features by disabling all
    and then progressively enabling them until everything works.
    This however requires, that bevy has good error reporting and gracefully
    supports different featuresets.
    
    I ran my code with minimal features and got this unhelpful error:
    ```
    thread 'main' (993068) panicked at /home/jakob/dev/rust/bevy/crates/bevy_render/src/render_graph/graph.rs:158:26:
    InvalidNode(PostProcessing)
    ```
    
    ## Solution
    
    With this PR it looks like this:
    ```
    thread 'main' (989393) panicked at /home/jakob/dev/rust/bevy/crates/bevy_pbr/src/wireframe.rs:136:14:
    node PostProcessing does not exist
    ```
    
    Which immediately helps me figure out that I need some feature for the
    `WireframePlugin` I added.
    
    Co-authored-by: Alice Cecile <[email protected]>
    2 people authored and mockersf committed Oct 3, 2025
    Configuration menu
    Copy the full SHA
    7e7ec78 View commit details
    Browse the repository at this point in the history
  2. clustered decals docs: macOS and iOS are no longer restricted (#21332)

    # Objective
    
    #21297 removed the restriction
    that prevented macos/ios from using clustered decals
    
    ## Solution
    
    Remove them from the list of "unsupported" targets.
    ChristopherBiscardi authored and mockersf committed Oct 3, 2025
    Configuration menu
    Copy the full SHA
    bbf2c05 View commit details
    Browse the repository at this point in the history
  3. Solari: Fix world cache update using last frame's light tiles due to …

    …incorrect pass ordering (#21348)
    
    Light tiles used to be generated _after_ the world cache update, despite
    the world cache update relying on them. This means that the world cache
    update used last frame's light tiles, which is fine for static lights,
    but completely wrong for dynamic lights and lead to missing GI
    contributions from dynamic lights.
    
    Moving the presample light tile step to before the world cache update
    fixes this.
    
    Can be tested by running the solari example, turning off the directional
    light so there's only the emissive robot light, enabling
    VISUALIZE_WORLD_CACHE, and then comparing before/after this PR.
    JMS55 authored and mockersf committed Oct 3, 2025
    Configuration menu
    Copy the full SHA
    6a3120f View commit details
    Browse the repository at this point in the history
  4. Avoid a "RefCell already borrowed" error with WINIT_WINDOWS (#21338)

    # Objective
    
    Fixes #21319.
    
    ## Solution
    
    In the "about_to_wait" state of Bevy's winit event loop, we borrow
    WINIT_WINDOWS only to check the conditions for a redraw, and perform the
    call after that check is concluded.
    
    ## Testing
    
    Tested by confirming that the RefCell error no longer occurs in my
    application. In my application, the error occurred when the
    `bevy-egui-inspector` crate was used.
    
    I do not know whether the original reporter of #21319 was also using
    third-party Bevy plugins that might have caused the issue. It would be
    good if they could check whether this change fixes it for them.
    
    Tested on Windows 11, where the bug is known to occur. The code that was
    changed is only included in Windows builds so there is little need to
    test on other platforms.
    
    ---------
    
    Co-authored-by: Alice Cecile <[email protected]>
    Co-authored-by: Dimitrios Loukadakis <[email protected]>
    3 people authored and mockersf committed Oct 3, 2025
    Configuration menu
    Copy the full SHA
    f76a1bb View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2025

  1. set spawn_despawn on the correct entity when despawning (#21364)

    # Objective
    
    Fixes #21293
    Fixes #17314 to ensure that this is tested correctly.
    
    ## Solution
    when despawning an entity, previously the swapped in (archetype) or
    moved in entity (table) (which both require extra bookkeeping to update
    archetype or table rows) were marked as `spawned_or_despawned` by the
    location and tick that the to-be-removed entity was meant to be marked,
    while the to-be-removed entity wasn't marked.
    As pointed out by @akimakinai in
    [#19047](#19047), I've re-added
    the correct `mark_spawn_despawn` call to `despawn_with_caller`.
    
    ## Testing
    
    I've added a test `spawned_after_swap_remove` that ensures that
    despawning an entity by swapping doesn't effect other entities
    `spawned_or_despawned` location, and that it does effect the despawned
    entity's index's `spawned_or_despawned` location.
    
    Co-Authored By: [email protected]
    
    ---------
    
    Co-authored-by: WaterWhisperer <[email protected]>
    2 people authored and mockersf committed Oct 4, 2025
    Configuration menu
    Copy the full SHA
    e108585 View commit details
    Browse the repository at this point in the history
  2. release 0.17.2

    mockersf committed Oct 4, 2025
    Configuration menu
    Copy the full SHA
    5663583 View commit details
    Browse the repository at this point in the history
Loading