Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[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
28 checks passed
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 30870216+gaaclarke@users.noreply.github.com [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 jacksongardner@google.com,rmistry@google.com,zra@google.com 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 join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App e: impeller
Projects
No open projects
Status: ✅ Done
3 participants