Skip to content

Impeller: Vulkan transients are not recreated on surface size change #185120

Description

@reinar

Steps to reproduce

  1. Run Impeller with vulkan backend through embedder
  2. Resize the window (easiest on desktop)

Expected results

Impeller should recreate Vulkan swapchain transients when the surface size changes

Actual results

Incorrectly formed Vulkan framebuffers/render targets due to transients not being recreated on resize

Code sample

Code sample

no sample, custom embedder

Screenshots or Video

Screenshots / Video demonstration
resize_bug.mp4

Logs

Logs
[00:31:38.524] [info] flutter: first get_next_image, image=0x1816d48e100
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[00:32:22.165] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[00:32:24.561] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:32:24.774] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:32:24.933] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[ERROR:flutter/impeller/display_list/canvas.cc(2386)] Impeller validation: Failed to submit command buffers
[ERROR:flutter/impeller/renderer/backend/vulkan/command_queue_vk.cc(67)] Impeller validation: Failed to submit queue: ErrorDeviceLost
[00:32:27.584] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:32:27.993] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:32:28.252] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:32:28.398] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:32:28.404] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.279] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.643] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.649] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.655] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.661] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.667] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.673] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.
[00:33:23.679] [warning] vkAcquireNextImageKHR returned 1
[ERROR:flutter/shell/gpu/gpu_surface_vulkan_impeller.cc(145)] Invalid VkImage given by the embedder.

Flutter Doctor output

Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel [user-branch], 3.44.0-1.0.pre-101, on Microsoft Windows [Version 10.0.26200.8246], locale en-150)
    ! Flutter version 3.44.0-1.0.pre-101 on channel [user-branch] at D:\Tools\flutter\sdk
      Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
      If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/setup.
    ! Upstream repository unknown source is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to unknown source to dismiss this error.
[√] Windows Version (11 Pro 64-bit, 25H2, 2009)
[X] Android toolchain - develop for Android devices
    X Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/to/windows-android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2026 18.5.0)
[√] Connected device (3 available)
[√] Network resources

! Doctor found issues in 2 categories.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.needs repro infoAutomated crash report whose cause isn't yet knownteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions