Repository navigation
[Impeller] Do not acquire an unneeded image in KHRSwapchainVK if the swapchain must be recreated due to a size change - #190116
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request modifies KHRSwapchainVK::AcquireNextDrawable to avoid calling the underlying implementation's acquire method when there is a size mismatch, preventing potential image leaks. It also adds a corresponding unit test to verify this behavior. The review feedback suggests adding null-pointer assertions (ASSERT_NE) in the new unit test before dereferencing the acquired image to prevent potential segmentation faults if the acquisition fails.
…swapchain must be recreated due to a size change KHRSwapchainVK::AcquireNextDrawable was calling vkAcquireNextImageKHR regardless of whether the KHRSwapchainImplVK's size matched the current size of the KHRSwapchainVK. If there was a size change, then the resulting image would never be presented, which can cause resource leaks even after the old swapchain is destroyed. This PR avoids the call to KHRSwapchainImplVK::AcquireNextDrawable and vkAcquireNextImageKHR if there is a size mismatch. Fixes flutter#190114
jason-simmons
force-pushed
the
bug_190114
branch
from
July 29, 2026 19:32
c78b00e to
4f82acc
Compare
This was referenced Jul 31, 2026
auto-submit Bot
pushed a commit
to flutter/packages
that referenced
this pull request
Aug 9, 2026
…12401) Manual roll Flutter from 2757a77a73df to e52f01c920ad (47 revisions) Manual roll requested by stuartmorgan@google.com flutter/flutter@2757a77...e52f01c 2026-07-31 jason-simmons@users.noreply.github.com [Impeller] Execute PipelineCompileQueue jobs in the order that they were added (flutter/flutter#190262) 2026-07-31 engine-flutter-autoroll@skia.org Roll Packages from 7d17fc8 to 5351d8c (5 revisions) (flutter/flutter#190351) 2026-07-31 engine-flutter-autoroll@skia.org Roll Skia from dcbd015c9646 to 7ef86a5b0eb9 (4 revisions) (flutter/flutter#190347) 2026-07-31 jason-simmons@users.noreply.github.com [Impeller] Do not acquire an unneeded image in KHRSwapchainVK if the swapchain must be recreated due to a size change (flutter/flutter#190116) 2026-07-31 jason-simmons@users.noreply.github.com Remove the --enable-serial-gc engine flag (flutter/flutter#190310) 2026-07-31 36861262+QuncCccccc@users.noreply.github.com Migrate platform_channel_swift example to material_ui (flutter/flutter#190308) 2026-07-31 chris@bracken.jp macOS: Set static text accessibility role for read-only text fields (flutter/flutter#190330) 2026-07-31 engine-flutter-autoroll@skia.org Roll Dart SDK from 96f49fc43f59 to c3acfc2479f6 (1 revision) (flutter/flutter#190336) 2026-07-31 engine-flutter-autoroll@skia.org Roll Skia from 07f08414dd66 to dcbd015c9646 (1 revision) (flutter/flutter#190333) 2026-07-31 zhongliu88889@gmail.com [web] Autofill all AutofillGroup fields in semantics mode (flutter/flutter#187108) 2026-07-31 chris@bracken.jp iOS: Configure test task runner thread at display QoS (flutter/flutter#190283) 2026-07-31 engine-flutter-autoroll@skia.org Roll Skia from a1109355de78 to 07f08414dd66 (5 revisions) (flutter/flutter#190328) 2026-07-31 chris@bracken.jp Support reduceMotion accessibility feature in MediaQuery (flutter/flutter#190287) 2026-07-30 engine-flutter-autoroll@skia.org Roll Dart SDK from 43f7de5f4977 to 96f49fc43f59 (4 revisions) (flutter/flutter#190312) 2026-07-30 mu7ammadkamel@hotmail.com fix: text selection two handles directionality. (flutter/flutter#179928) 2026-07-30 matt.boetger@gmail.com Add java/gradle check when gradle crashes (flutter/flutter#189997) 2026-07-30 41765610+ahyangnb@users.noreply.github.com [Impeller] Add filterQuality support to ImageFilter.shader (flutter/flutter#188544) 2026-07-30 dkwingsmt@users.noreply.github.com [flutter/flutter] Migrate multiple_windows example to material_ui (flutter/flutter#190313) 2026-07-30 engine-flutter-autoroll@skia.org Roll Skia from 50cf67910462 to a1109355de78 (6 revisions) (flutter/flutter#190306) 2026-07-30 31859944+LongCatIsLooong@users.noreply.github.com Migrate swift xctests to Swift testing tests (flutter/flutter#187801) 2026-07-30 36861262+QuncCccccc@users.noreply.github.com Migrates the platform_channel example to material_ui (flutter/flutter#190253) 2026-07-30 chris@bracken.jp iOS: Drop unnecessary @mainactor from VSyncClientTests (flutter/flutter#190285) 2026-07-30 evanwall@buffalo.edu Add nullptr check to isOpaque (flutter/flutter#189796) 2026-07-30 bdero@google.com [Flutter GPU] Bind uniforms and textures by cached reflection index (flutter/flutter#189820) 2026-07-30 jmccandless@google.com Migrate layers example to material_ui (flutter/flutter#190237) 2026-07-30 bernaferrari2@gmail.com Add `ShapeBorder` hit test fast paths (flutter/flutter#187962) 2026-07-30 codefu@google.com ci: mac-must-wait part duex (flutter/flutter#190295) 2026-07-30 engine-flutter-autoroll@skia.org Roll Skia from 491301f393d1 to 50cf67910462 (3 revisions) (flutter/flutter#190294) 2026-07-30 engine-flutter-autoroll@skia.org Roll Packages from dd11626 to 7d17fc8 (1 revision) (flutter/flutter#190293) 2026-07-30 engine-flutter-autoroll@skia.org Roll Skia from 177de1940bf2 to 491301f393d1 (1 revision) (flutter/flutter#190279) 2026-07-30 engine-flutter-autoroll@skia.org Roll Skia from b8bda91f02db to 177de1940bf2 (5 revisions) (flutter/flutter#190272) 2026-07-30 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from J8rVTlBnjnUpuHYk3... to _J8wM3kyQpLN9wvRD... (flutter/flutter#190273) 2026-07-30 engine-flutter-autoroll@skia.org Roll Skia from 78afc18c9ba0 to b8bda91f02db (3 revisions) (flutter/flutter#190268) 2026-07-30 154381524+flutteractionsbot@users.noreply.github.com Revert: Split the platform and cpuArch part of TargetPlatform (flutter/flutter#190258) 2026-07-30 developeryusuf@icloud.com Return null from RenderProxyBoxMixin.computeDryBaseline when the child has no baseline (flutter/flutter#189723) 2026-07-30 engine-flutter-autoroll@skia.org Roll Skia from 6fea713d32ec to 78afc18c9ba0 (4 revisions) (flutter/flutter#190257) 2026-07-30 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#190259) 2026-07-29 brackenavaron@gmail.com [cross imports] Check examples cross imports (flutter/flutter#187662) 2026-07-29 codefu@google.com ci: mac verify binaries still has to wait on linux_host_engine (flutter/flutter#190239) 2026-07-29 30870216+gaaclarke@users.noreply.github.com Adds analytics to macos impeller opt in/out (flutter/flutter#190220) 2026-07-29 engine-flutter-autoroll@skia.org Roll Skia from 0f35bba4945c to 6fea713d32ec (6 revisions) (flutter/flutter#190230) 2026-07-29 chris@bracken.jp iOS: Fix Swift warning in TracingTests (flutter/flutter#190203) 2026-07-29 matt.boetger@gmail.com Convert all gradle-wrapper.properties in /dev to use distribution 'bin' (flutter/flutter#190226) 2026-07-29 engine-flutter-autoroll@skia.org Roll Packages from 3e63635 to dd11626 (11 revisions) (flutter/flutter#190216) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
KHRSwapchainVK::AcquireNextDrawable was calling vkAcquireNextImageKHR regardless of whether the KHRSwapchainImplVK's size matched the current size of the KHRSwapchainVK. If there was a size change, then the resulting image would never be presented, which can cause resource leaks even after the old swapchain is destroyed.
This PR avoids the call to KHRSwapchainImplVK::AcquireNextDrawable and vkAcquireNextImageKHR if there is a size mismatch.
Fixes #190114