Skip to content

[Flutter GPU] Hot reloading a compute shader dereferences a null render pipeline entry point #193872

Closed

Description

@bdero

Part of #188474.

Hot reloading a shader bundle evicts the pipelines that used each changed shader through PipelineLibrary::RemovePipelinesWithEntryPoint. On Metal, Vulkan and OpenGL ES that function dereferences GetEntrypointForStage(function->GetStage()) for every cached pipeline. Render pipelines have no compute entry point, so reloading a compute shader dereferences a null pointer, and compute pipelines are never evicted at all.

Nothing reaches this today because Flutter GPU cannot create compute pipelines yet. It will crash as soon as #188480 lands.

Changes

  • Skip pipelines that have no entry point for the reloaded shader's stage.
  • Evict compute pipelines that use the reloaded compute shader.

Testing

A unit test that reloads a compute shader while render and compute pipelines are cached, on Metal and Vulkan.

Dependencies

None.

Activity

  1. self-assigned this
    on Oct 5, 2026
  2. added
    c: new featureNothing broken; request for a new capability
    engineflutter/engine related. See also e: labels.
    e: impellerImpeller rendering backend issues and features requests
    on Oct 5, 2026
  3. added 2 commits that reference this issue on Oct 11, 2026
    f98ffac
    243bff1
  4. moved this from 🤔 Needs Triage to 🐞 Bugs in Flutter GPUon Oct 19, 2026
  5. moved this from 🐞 Bugs to 💡 Features in Flutter GPUon Oct 19, 2026
  6. added a commit that references this issue on Oct 25, 2026
    245b522
  7. moved this from 💡 Features to ✅ Done in Flutter GPUon Oct 26, 2026
  8. added a commit that references this issue on Oct 26, 2026
    a3a21c8
  9. added a commit that references this issue on Oct 29, 2026
    3e73917
  10. github-actions commented on Nov 9, 2026

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  11. locked as resolved and limited conversation to collaborators on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

c: new featureNothing broken; request for a new capabilitye: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter-gputeam-fluttergpuOwned by Flutter GPU team

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions