Skip to content

layers: Add tile properties core checks - #12563

Open
ZZKQcom wants to merge 1 commit into
KhronosGroup:mainfrom
ZZKQcom:qcom/tile_properties_core_check
Open

layers: Add tile properties core checks#12563
ZZKQcom wants to merge 1 commit into
KhronosGroup:mainfrom
ZZKQcom:qcom/tile_properties_core_check

Conversation

@ZZKQcom

@ZZKQcom ZZKQcom commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Overview

vkGetDynamicRenderingTilePropertiesQCOM now triggers the same core VUIDs defined on VkRenderingInfo as vkCmdBeginRendering.

This change extracts the command-buffer-independent VkRenderingInfo validation from PreCallValidateCmdBeginRendering into a new shared helper ValidateRenderingInfoCommon, with functions renamed from ValidateBeginRendering* to ValidateRenderingInfo* and signatures changed from VkCommandBuffer to const LogObjectList&.

ValidateBeginRenderingColorAttachment, ValidateBeginRenderingDepthAttachment, and ValidateBeginRenderingStencilAttachment are intentionally excluded, they check current image layout tracked in command buffer state.
ValidateBeginRenderingTileShadingCreateInfo is also excluded, it needs command buffer begin flags.

Unit Tests

Test VUID & Description
DynamicRenderingTilePropertiesWithInvalidFragmentDensityMapUsage VUID VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158
DynamicRenderingTilePropertiesWithInvalidFragmentShadingRateUsage VUID VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06148
DynamicRenderingTilePropertiesWithInvalidMultisampledRenderToSingleSampledInfo VUID VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-06878
DynamicRenderingTilePropertiesWithTileShadingAndFragmentDensityMap VUID-VkRenderingInfo-imageView-10643
DynamicRenderingTilePropertiesWithResolveAttachmentBoundToTileMemory VUID-VkRenderingAttachmentInfo-resolveImageView-10728

@ZZKQcom
ZZKQcom requested a review from a team as a code owner June 29, 2026 06:42
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@spencer-lunarg

Copy link
Copy Markdown
Contributor

@ZZKQcom I'm currently going to stop reviewing all these QCOM vendor extension until we first get VK_KHR_opacity_micromap code in as that is now a month behind and QCOM is on the hook for it, so feel free to either just wait or help with the VK_KHR_opacity_micromap effort, thanks

@ZZKQcom

ZZKQcom commented Jun 30, 2026

Copy link
Copy Markdown
Contributor Author

@spencer-lunarg Appreciate the heads-up. I understand VK_KHR_opacity_micromap is the current priority and its delay is blocking other QCOM reviews. I'll sync with @revanthponna to figure out what's still needed and help push it across the finish line.

@spencer-lunarg

Copy link
Copy Markdown
Contributor

@ZZKQcom there is a PR open to get the state tracking in, after we get that in, I will create an issue with all the remaining VUs to add and you two can sort it out from there... If you plan to help, my advice is to get familiar with the VK_KHR_opacity_micromap extension (luckily Matt already gave a great presentation on it!)

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from ac79620 to 1109522 Compare July 1, 2026 01:44
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 1109522 to f10b5ac Compare July 13, 2026 02:54
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from f10b5ac to 1843bc7 Compare July 14, 2026 01:40
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 1843bc7 to 5904f1e Compare July 15, 2026 04:37
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 5904f1e to 360947c Compare July 15, 2026 05:32
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom

ZZKQcom commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

@spencer-lunarg I've made significant changes to the begin rendering core checks. Could you find time to review when you're free? I believe the CPU validation work for VK_KHR_opacity_micromap should be wrapping up. Thanks!

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 360947c to 66caa01 Compare July 17, 2026 11:15
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from ea55a6b to 9cd7d7d Compare July 24, 2026 02:16
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 9cd7d7d to 3010820 Compare July 28, 2026 02:45
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@spencer-lunarg

Copy link
Copy Markdown
Contributor

sorry I forgot about this PR, please rebase and can review again and help get it in

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 3010820 to a2464e4 Compare August 14, 2026 09:41
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom

ZZKQcom commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

@spencer-lunarg I still need to refactor and double-check the code, so please hold off on reviewing it for now; once it's ready, I'll send you a review request.

Thank you!

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from a2464e4 to d7435a1 Compare August 14, 2026 10:54
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from d7435a1 to b9e801f Compare August 17, 2026 09:05
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom

ZZKQcom commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

@spencer-lunarg The PR refactor is ready. Thanks!

Comment thread layers/core_checks/cc_render_pass.cpp
Comment thread layers/core_checks/cc_render_pass.cpp
Comment thread layers/core_checks/cc_render_pass.cpp
Comment thread layers/core_checks/cc_render_pass.cpp
@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from b9e801f to 71b2d5d Compare August 21, 2026 08:17
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom

ZZKQcom commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

This PR change splits the begin-dynamic-rendering VU core check into two parts: a dynamic-rendering VU check that depends on command-buffer state, and one that does not.

Functions prefixed with ValidateRenderingInfo do not depend on command-buffer state and are called by both the tile-properties checks and the begin-dynamic-rendering checks.

Functions prefixed with ValidateBeginRendering, by contrast, depend on command-buffer state and are called only by the begin-dynamic-rendering checks.

ValidateRenderingInfoCommon wraps all the command-buffer-state-independent function calls.

return skip;
}

const LogObjectList objlist(commandBuffer, view_state.Handle());

@ZZKQcom ZZKQcom Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It needs view_state->Handle(), but we already added in ValidateRenderingInfoFragmentShadingRate function, and only ValidateRenderingInfoFragmentShadingRate function will invoke ValidateRenderingInfoFragmentShadingRateRenderArea function.

So I removed it.

@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 71b2d5d to 9de2829 Compare August 21, 2026 08:36
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

@ZZKQcom
ZZKQcom requested a review from spencer-lunarg August 21, 2026 09:46
@ZZKQcom
ZZKQcom force-pushed the qcom/tile_properties_core_check branch from 9de2829 to a88f26c Compare August 24, 2026 01:37
@ci-tester-lunarg

Copy link
Copy Markdown
Collaborator

Author ZZKQcom not on autobuild list. Waiting for curator authorization before starting CI build.

vku::FindStructInPNextChain<VkRenderingFragmentDensityMapAttachmentInfoEXT>(rendering_info.pNext);

if (fragment_density_map_info && fragment_density_map_info->imageView != VK_NULL_HANDLE && has_rp_enable_bit) {
const LogObjectList objlist(cb_state.Handle(), fragment_density_map_info->imageView);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

the new objlist doesn't include the fragment density map Image View

... this whole PR is not in any state I would be happy to merge it as it just clobbers all the previous DynamicRendering to shove in this vkGetDynamicRenderingTilePropertiesQCOM logic

If we want to make any progress on this, I would suggest just keeping this PR open, but make a new PR that just replaces the const LogObjectList& objlist you are planning to do in this PR and maybe once we get at least that done, this PR can be unraveled a ibt

@ZZKQcom ZZKQcom Aug 26, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for flagging the missing image view and invasiveness, I'll open a small refactoring to parameterize LogObjectList first and then streamline this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants