Skip to content

[impeller] validation error VUID-VkAttachmentDescription-format-06699 #157557

@gaaclarke

Description

@gaaclarke

reproduction

AiksTest.CanRenderMultipleBackdropBlurWithSingleBackdropId

The validation error doesn't happen on the first frame, but happens pretty quickly.

version

48ff670d256bcac91f2f2efcce8cae1abf8cd1ef

error

$83│ │ Failure @ ./impeller/renderer/backend/vulkan/debug_report_vk.cc:198
$83│ │ Impeller Validation Error
$83│ │ 
$83│ │ --- Vulkan Debug Report  ----------------------------------------
$83│ │ |                Severity: Error
$83│ │ |                    Type: { Validation }
$83│ │ |                 ID Name: VUID-VkAttachmentDescription-format-06699
$83│ │ |               ID Number: 1387471518
$83│ │ |       Queue Breadcrumbs: [NONE]
$83│ │ |  CMD Buffer Breadcrumbs: [NONE]
$83│ │ |         Related Objects: Device [5058523672] [ImpellerDevice]
$83│ │ |                 Trigger: Validation Error: [ VUID-VkAttachmentDescription-format-06699 ] Object 0: handle = 0x12d82f218, name = ImpellerDevice, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x52b3229e | vkCreateRenderPass: pCreateInfo->pAttachments[0] format is VK_FORMAT_B8G8R8A8_UNORM and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, but initialLayout is VK_IMAGE_LAYOUT_UNDEFINED. The Vulkan spec states: If format includes a color or depth component and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED (https://vulkan.lunarg.com/doc/view/1.3.243.0/mac/1.3-extensions/vkspec.html#VUID-VkAttachmentDescription-format-06699)

stacktrace

impeller_unittests!impeller::DebugReportVK::OnDebugCallback(impeller::vk::DebugUtilsMessageSeverityFlagBitsEXT, impeller::vk::Flags<impeller::vk::DebugUtilsMessageTypeFlagBitsEXT>, VkDebugUtilsMessengerCallbackDataEXT const*) (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc:198)
impeller_unittests!impeller::DebugReportVK::DebugUtilsMessengerCallback(VkDebugUtilsMessageSeverityFlagBitsEXT, unsigned int, VkDebugUtilsMessengerCallbackDataEXT const*, void*) (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc:87)
libVkLayer_khronos_validation.dylib!LogMsg(_debug_report_data const*, unsigned int, LogObjectList const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, char const*, char*) (Unknown Source:0)
libVkLayer_khronos_validation.dylib!ValidationObject::LogError(LogObjectList const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, char const*, ...) const (Unknown Source:0)
libVkLayer_khronos_validation.dylib!StatelessValidation::ValidateCreateRenderPass(VkDevice_T*, VkRenderPassCreateInfo2 const*, VkAllocationCallbacks const*, VkRenderPass_T**, StatelessValidation::RenderPassCreateVersion) const (Unknown Source:0)
libVkLayer_khronos_validation.dylib!StatelessValidation::manual_PreCallValidateCreateRenderPass(VkDevice_T*, VkRenderPassCreateInfo const*, VkAllocationCallbacks const*, VkRenderPass_T**) const (Unknown Source:0)
libVkLayer_khronos_validation.dylib!StatelessValidation::PreCallValidateCreateRenderPass(VkDevice_T*, VkRenderPassCreateInfo const*, VkAllocationCallbacks const*, VkRenderPass_T**) const (Unknown Source:0)
libVkLayer_khronos_validation.dylib!vulkan_layer_chassis::CreateRenderPass(VkDevice_T*, VkRenderPassCreateInfo const*, VkAllocationCallbacks const*, VkRenderPass_T**) (Unknown Source:0)
impeller_unittests!impeller::vk::ResultValueType<impeller::vk::UniqueHandle<impeller::vk::RenderPass, impeller::vk::DispatchLoaderDynamic>>::type impeller::vk::Device::createRenderPassUnique<impeller::vk::DispatchLoaderDynamic>(impeller::vk::RenderPassCreateInfo const&, impeller::vk::Optional<impeller::vk::AllocationCallbacks const>, impeller::vk::DispatchLoaderDynamic const&) const (/Users/aaclarke/dev/engine/src/flutter/third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_funcs.hpp:4303)
impeller_unittests!impeller::RenderPassBuilderVK::Build(impeller::vk::Device const&) const (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_builder_vk.cc:150)
impeller_unittests!impeller::RenderPassVK::CreateVKRenderPass(impeller::ContextVK const&, std::_fl::shared_ptr<impeller::SharedObjectVKT<impeller::vk::RenderPass>> const&, std::_fl::shared_ptr<impeller::CommandBufferVK> const&) const (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_vk.cc:123)
impeller_unittests!impeller::RenderPassVK::RenderPassVK(std::_fl::shared_ptr<impeller::Context const> const&, impeller::RenderTarget const&, std::_fl::shared_ptr<impeller::CommandBufferVK>) (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_vk.cc:164)
impeller_unittests!impeller::RenderPassVK::RenderPassVK(std::_fl::shared_ptr<impeller::Context const> const&, impeller::RenderTarget const&, std::_fl::shared_ptr<impeller::CommandBufferVK>) (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_vk.cc:138)
impeller_unittests!impeller::CommandBufferVK::OnCreateRenderPass(impeller::RenderTarget) (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/backend/vulkan/command_buffer_vk.cc:59)
impeller_unittests!impeller::CommandBuffer::CreateRenderPass(impeller::RenderTarget const&) (/Users/aaclarke/dev/engine/src/flutter/impeller/renderer/command_buffer.cc:39)
impeller_unittests!impeller::Playground::OpenPlaygroundHere(std::_fl::function<bool (impeller::RenderTarget&)> const&) (/Users/aaclarke/dev/engine/src/flutter/impeller/playground/playground.cc:300)
impeller_unittests!impeller::AiksPlayground::OpenPlaygroundHere(std::_fl::function<sk_sp<flutter::DisplayList> ()> const&) (/Users/aaclarke/dev/engine/src/flutter/impeller/display_list/aiks_playground.cc:51)
impeller_unittests!impeller::AiksPlayground::OpenPlaygroundHere(sk_sp<flutter::DisplayList> const&) (/Users/aaclarke/dev/engine/src/flutter/impeller/display_list/aiks_playground.cc:40)
impeller_unittests!impeller::testing::AiksTest_CanRenderMultipleBackdropBlurWithSingleBackdropId_Test::TestBody() (/Users/aaclarke/dev/engine/src/flutter/impeller/display_list/aiks_dl_blur_unittests.cc:320)
impeller_unittests!void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:2613)
impeller_unittests!void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:2668)
impeller_unittests!testing::Test::Run() (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:2688)
impeller_unittests!testing::TestInfo::Run() (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:2837)
impeller_unittests!testing::TestSuite::Run() (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:3016)
impeller_unittests!testing::internal::UnitTestImpl::RunAllTests() (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:5922)
impeller_unittests!bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:2613)
impeller_unittests!bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:2668)
impeller_unittests!testing::UnitTest::Run() (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/src/gtest.cc:5486)
impeller_unittests!RUN_ALL_TESTS() (/Users/aaclarke/dev/engine/src/flutter/third_party/googletest/googletest/include/gtest/gtest.h:2316)
impeller_unittests!main (/Users/aaclarke/dev/engine/src/flutter/testing/run_all_unittests.cc:65)
start (Unknown Source:0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority issues at the top of the work liste: impellerImpeller rendering backend issues and features requeststeam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions