Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

[Impeller] turned on validation errors for one golden image test #49955

Merged
merged 3 commits into from
Jan 23, 2024

Conversation

gaaclarke
Copy link
Member

@gaaclarke gaaclarke commented Jan 23, 2024

issue flutter/flutter#142017

This just turns on the validations for one test since not everything passes yet with them turned on across the board.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@gaaclarke
Copy link
Member Author

gaaclarke commented Jan 23, 2024

Here's some of the failures I'm seeing locally. These seem to be hopefully the same issue.

[ RUN      ] Play/AiksTest.CanRenderDifferencePaths/Vulkan
[INFO:capabilities_vk.cc(51)] Vulkan validations are enabled.
[ERROR:flutter/impeller/base/validation.cc(49)] Break on 'ImpellerValidationBreak' to inspect point of failure: 
--- Vulkan Debug Report  ----------------------------------------
|                Severity: Error
|                    Type: { Validation }
|                 ID Name: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
|               ID Number: 1303270965
|       Queue Breadcrumbs: [NONE]
|  CMD Buffer Breadcrumbs: Solid Fill, Texture Fill, QueueSubmit
|         Related Objects: CommandBuffer [4816031008] [EntityPass Command Buffer: Depth=0 Count=0]
|                 Trigger: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x11f0ecd20, name = EntityPass Command Buffer: Depth=0 Count=0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x11f0ecd20[EntityPass Command Buffer: Depth=0 Count=0] expects VkImage 0x4bd84600000039a0[boston.jpg] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
[ RUN      ] Play/AiksTest.CanRenderImage/Vulkan
[INFO:capabilities_vk.cc(51)] Vulkan validations are enabled.
[ERROR:flutter/impeller/base/validation.cc(49)] Break on 'ImpellerValidationBreak' to inspect point of failure: 
--- Vulkan Debug Report  ----------------------------------------
|                Severity: Error
|                    Type: { Validation }
|                 ID Name: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
|               ID Number: 1303270965
|       Queue Breadcrumbs: [NONE]
|  CMD Buffer Breadcrumbs: Texture Fill, QueueSubmit
|         Related Objects: CommandBuffer [4820955504] [EntityPass Command Buffer: Depth=0 Count=0]
|                 Trigger: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x11f59f170, name = EntityPass Command Buffer: Depth=0 Count=0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x11f59f170[EntityPass Command Buffer: Depth=0 Count=0] expects VkImage 0x1dfd220000004936[kalimba.jpg] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
-----------------------------------------------------------------
[ RUN      ] Play/AiksTest.CanRenderInvertedImageWithColorFilter/Vulkan
[INFO:capabilities_vk.cc(51)] Vulkan validations are enabled.
[ERROR:flutter/impeller/base/validation.cc(49)] Break on 'ImpellerValidationBreak' to inspect point of failure: 
--- Vulkan Debug Report  ----------------------------------------
|                Severity: Error
|                    Type: { Validation }
|                 ID Name: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
|               ID Number: 1303270965
|       Queue Breadcrumbs: [NONE]
|  CMD Buffer Breadcrumbs: Solid Fill, Pipeline Blend Filter (SourceOver), QueueSubmit
|         Related Objects: CommandBuffer [5034955616] [Pipeline Blend Filter CommandBuffer]
|                 Trigger: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x12c1b5360, name = Pipeline Blend Filter CommandBuffer, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x12c1b5360[Pipeline Blend Filter CommandBuffer] expects VkImage 0xfee4cf0000004ab1[kalimba.jpg] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
-----------------------------------------------------------------
[ RUN      ] Play/AiksTest.CanRenderImageRect/Vulkan
[INFO:capabilities_vk.cc(51)] Vulkan validations are enabled.
[ERROR:flutter/impeller/base/validation.cc(49)] Break on 'ImpellerValidationBreak' to inspect point of failure: 
--- Vulkan Debug Report  ----------------------------------------
|                Severity: Error
|                    Type: { Validation }
|                 ID Name: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
|               ID Number: 1303270965
|       Queue Breadcrumbs: [NONE]
|  CMD Buffer Breadcrumbs: Texture Fill, QueueSubmit
|         Related Objects: CommandBuffer [4816311264] [EntityPass Command Buffer: Depth=0 Count=0]
|                 Trigger: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x11f1313e0, name = EntityPass Command Buffer: Depth=0 Count=0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x11f1313e0[EntityPass Command Buffer: Depth=0 Count=0] expects VkImage 0xdeee970000005850[kalimba.jpg] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
-----------------------------------------------------------------
[ RUN      ] Play/AiksTest.CoordinateConversionsAreCorrect/Vulkan
[INFO:capabilities_vk.cc(51)] Vulkan validations are enabled.
[ERROR:flutter/impeller/base/validation.cc(49)] Break on 'ImpellerValidationBreak' to inspect point of failure: 
--- Vulkan Debug Report  ----------------------------------------
|                Severity: Error
|                    Type: { Validation }
|                 ID Name: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
|               ID Number: 1303270965
|       Queue Breadcrumbs: [NONE]
|  CMD Buffer Breadcrumbs: Texture Fill: Subpass, Texture Fill, QueueSubmit
|         Related Objects: CommandBuffer [5358296992] [EntityPass Command Buffer: Depth=0 Count=0]
|                 Trigger: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x13f611fa0, name = EntityPass Command Buffer: Depth=0 Count=0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x13f611fa0[EntityPass Command Buffer: Depth=0 Count=0] expects VkImage 0xd16967000000694e[kalimba.jpg] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
-----------------------------------------------------------------
[ RUN      ] Play/AiksTest.BlendModeClear/Vulkan
[INFO:capabilities_vk.cc(51)] Vulkan validations are enabled.
[ERROR:flutter/impeller/base/validation.cc(49)] Break on 'ImpellerValidationBreak' to inspect point of failure: 
--- Vulkan Debug Report  ----------------------------------------
|                Severity: Error
|                    Type: { Validation }
|                 ID Name: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
|               ID Number: 1303270965
|       Queue Breadcrumbs: [NONE]
|  CMD Buffer Breadcrumbs: Texture Fill, Texture Fill, QueueSubmit
|         Related Objects: CommandBuffer [5374456752] [EntityPass Command Buffer: Depth=1 Count=0]
|                 Trigger: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x14057b3b0, name = EntityPass Command Buffer: Depth=1 Count=0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x14057b3b0[EntityPass Command Buffer: Depth=1 Count=0] expects VkImage 0x2e90cc000000ae68[blend_mode_dst.png] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
-----------------------------------------------------------------
[ERROR:flutter/impeller/base/validation.cc(49)] Break on 'ImpellerValidationBreak' to inspect point of failure: 
--- Vulkan Debug Report  ----------------------------------------
|                Severity: Error
|                    Type: { Validation }
|                 ID Name: UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
|               ID Number: 1303270965
|       Queue Breadcrumbs: [NONE]
|  CMD Buffer Breadcrumbs: Texture Fill, Texture Fill, QueueSubmit
|         Related Objects: CommandBuffer [5374456752] [EntityPass Command Buffer: Depth=1 Count=0]
|                 Trigger: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x14057b3b0, name = EntityPass Command Buffer: Depth=1 Count=0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x14057b3b0[EntityPass Command Buffer: Depth=1 Count=0] expects VkImage 0xc528af000000ae63[blend_mode_src.png] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL.
-----------------------------------------------------------------

@chinmaygarde
Copy link
Member

https://gist.github.com/chinmaygarde/c2c4025fcf452a9ef67618c740b71425 contains a few more. MoltenVK crashes in render pass creation eventually. So there may be more that I didn't see.

@jonahwilliams
Copy link
Member

These are problems with CreateTextureForFixture

@jonahwilliams
Copy link
Member

I have a fix

@gaaclarke gaaclarke changed the title [Impeller] turned on validation errors for the golden image tests [Impeller] turned on validation errors for one golden image test Jan 23, 2024
@gaaclarke
Copy link
Member Author

@jonahwilliams I'm turning this into an allow list. That way we can land this, then #49957 can land turning on CanRenderImageRect validation, then we can look on getting them turned on across the board (or worse case scenario make a deny list).

@gaaclarke gaaclarke marked this pull request as ready for review January 23, 2024 17:20
Copy link
Member

@jonahwilliams jonahwilliams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@gaaclarke gaaclarke added the autosubmit Merge PR when tree becomes green via auto submit App label Jan 23, 2024
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jan 23, 2024
Copy link
Contributor

auto-submit bot commented Jan 23, 2024

auto label is removed for flutter/engine/49955, due to - The status or check suite Mac mac_clang_tidy has failed. Please fix the issues identified (or deflake) before re-applying this label.

@gaaclarke gaaclarke added the autosubmit Merge PR when tree becomes green via auto submit App label Jan 23, 2024
@auto-submit auto-submit bot merged commit 9940541 into flutter:main Jan 23, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Jan 23, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Jan 23, 2024
…142059)

flutter/engine@b229878...9940541

2024-01-23 [email protected] [Impeller] turned on validation errors for one golden image test (flutter/engine#49955)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
autosubmit Merge PR when tree becomes green via auto submit App e: impeller
Projects
No open projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

3 participants