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: flutter/flutter
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 8b18dde
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8abf4e7
Choose a head ref
  • 2 commits
  • 6 files changed
  • 2 contributors

Commits on May 29, 2025

  1. Update triage for new team-devexp (#169668)

    Adds the new `team-devexp` to the flowchart, and updates references to
    `d: devtools` to reflect that it's now `a: devtools`.
    stuartmorgan-g authored May 29, 2025
    Configuration menu
    Copy the full SHA
    5df6008 View commit details
    Browse the repository at this point in the history
  2. [Impeller] Maintain a global map of each context's currently active t…

    …hread-local command pools (#169548)
    
    The Impeller Vulkan back end creates a thread-local map of contexts to
    CommandPoolVK instances for each thread that uses Vulkan. This allows a
    thread to obtain the CommandPoolVK that is currently in use for a given
    context.
    
    When a context is shut down, the Vulkan resources used by each thread's
    local CommandPoolVK for that context must be freed. To do this,
    CommandPoolVK maintains a global map of CommandPoolVK instances.
    
    Prior to this PR Impeller was appending to the context's pool list in
    the global map each time a new CommandPoolVK was created. In the
    original implementation this worked because Impeller was only creating
    one CommandPoolVK per thread for a given context.
    
    However, CommandPoolVK later adopted a recycling scheme where each frame
    creates a new CommandPoolVK instance that acquires a Vulkan command pool
    from the CommandPoolRecyclerVK. So inserting every CommandPoolVK into
    the global map will cause the global map to grow unbounded.
    
    This PR changes the structure of the global map. The global map will now
    associate each context with a map of thread IDs to the CommandPoolVK
    that is currently placed in the thread's local storage. When a thread
    calls CommandPoolRecyclerVK::Dispose to clear its thread-local
    CommandPoolVK for a context, the corresponding entry is also removed
    from the global map.
    
    Fixes #169208
    jason-simmons authored May 29, 2025
    Configuration menu
    Copy the full SHA
    8abf4e7 View commit details
    Browse the repository at this point in the history
Loading