KhronosGroup / KhronosGroup/Vulkan-ValidationLayers

Add missing Qualcomm Vendor extensions

Open
#11,339 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Incomplete
Dominant language
C++
Stars
1k
Forks
505
Avg merge
11h 25m
Merged PRs (30d)
229

Description

VK_QCOM_cooperative_matrix_conversion

  • VUID-RuntimeSpirv-NSize-12352
  • VUID-RuntimeSpirv-KSize-12353
  • VUID-RuntimeSpirv-OpExtractSubArrayQCOM-12354

VK_QCOM_filter_cubic_weights

  • VUID-VkBlitImageInfo2-filter-09204
  • VUID-vkCmdDispatch-selectableCubicWeights-09214

VK_QCOM_filter_cubic_clamp

  • VUID-vkCmdDispatch-cubicRangeClamp-09212
  • VUID-vkCmdDispatch-reductionMode-09213

VK_QCOM_filter_cubic (VK_EXT_filter_cubic)

  • VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627

VK_QCOM_image_processing / VK_QCOM_image_processing2

  • VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-WindowExtent-09210
  • VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06971
  • VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972
  • VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973
  • VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974
  • VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-12420
  • VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976
  • VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977
  • VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978
  • VUID-vkCmdDraw-OpImageBlockMatchWindow-09215
  • VUID-vkCmdDraw-OpImageBlockMatchWindow-09216

They should be similar to VUID-vkCmdDraw-magFilter-04553 and all live in DescriptorValidator::ValidateDescriptor

VK_QCOM_tile_memory_heap

  • VUID-VkTileMemoryBindInfoQCOM-memory-10726
  • VUID-VkTileMemorySizeInfoQCOM-size-10729
  • VUID-VkRenderingAttachmentInfo-resolveImageView-10728
  • VUID-VkSubpassDescription-attachment-10755
  • VUID-VkSubpassDescription2-attachment-10755
  • VUID-vkAllocateMemory-tileMemoryHeap-10976
  • VUID-vkCmdDispatch-commandBuffer-10746 (partially done in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/11398 - still need to check descriptors)
  • VUID-vkCmdExecuteCommands-memory-10724
  • Would add a positive test where "Calling vkCmdBindTileMemoryQCOM when pTileMemoryBindInfo is VK_NULL_HANDLE is equivalent to binding no tile memory to the command buffer."

VK_QCOM_tile_shading

  • VUID-vkCmdBeginPerTileExecutionQCOM-None-10664
  • VUID-vkCmdBeginPerTileExecutionQCOM-None-10665
  • VUID-vkCmdEndPerTileExecutionQCOM-None-10666
  • VUID-vkCmdEndPerTileExecutionQCOM-None-10667
  • VUID-vkCmdDraw-None-10677
  • VUID-vkCmdDispatch-None-10674
  • VUID-vkCmdDispatchTileQCOM-* (match all the exisiting VUs done for vkCmdDispatch that are shared)
  • VUID-vkCmdDispatch-None-10678
  • VUID-vkCmdDispatch-None-10679
  • VUID-vkCmdExecuteCommands-pCommandBuffers-10620
  • VUID-vkCmdExecuteCommands-pCommandBuffers-10621
  • VUID-vkCmdExecuteCommands-pCommandBuffers-10623
  • VUID-vkCmdExecuteCommands-pCommandBuffers-10624
  • VUID-vkCmdExecuteCommands-tileApronSize-10622
  • VUID-vkCmdExecuteCommands-tileApronSize-10625
  • VUID-VkCommandBufferBeginInfo-flags-10617
  • VUID-VkCommandBufferBeginInfo-flags-10618
  • VUID-VkCommandBufferBeginInfo-flags-10619
  • VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-10648
  • VUID-VkRenderPassCreateInfo-pResolveAttachments-10647
  • VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-10651
  • VUID-VkRenderPassCreateInfo2-pResolveAttachments-10650
  • VUID-VkRenderPassTileShadingCreateInfoQCOM-flags-10659
  • VUID-VkRenderPassTileShadingCreateInfoQCOM-flags-10660
  • VUID-VkRenderPassTileShadingCreateInfoQCOM-tileApronSize-10662
  • VUID-VkRenderPassTileShadingCreateInfoQCOM-tileApronSize-10663
  • VUID-VkRenderPassTileShadingCreateInfoQCOM-tileShading-10658
  • VUID-VkRenderPassTileShadingCreateInfoQCOM-tileShadingAnisotropicApron-10661
  • VUID-VkRenderingInfo-imageView-10643
  • VUID-VkRenderingInfo-resolveMode-10644
  • VUID-VkSubpassDescription-flags-10683
  • VUID-VkSubpassDescription2-flags-10683
  • VUID-VkSubpassDescription-attachment-10755
  • VUID-vkCmdBeginRenderPass2-flags-10652
  • VUID-vkCmdBeginRendering-flags-10641
  • VUID-vkCmdBeginRendering-flags-10642
  • VUID-vkCreateRenderPass-flags-10646
  • VUID-vkCreateRenderPass2-flags-10649
  • VUID-VkMemoryBarrier2-dstAccessMask-10670
  • VUID-VkMemoryBarrier2-dstAccessMask-10671
  • VUID-vkCmdBeginQuery-None-10681
  • VUID-vkCmdEndQuery-None-10682
  • VUID-vkCmdEndRenderPass-None-10653
  • VUID-vkCmdEndRendering-None-10645
  • VUID-vkCmdWaitEvents-None-10655
  • VUID-vkCmdWaitEvents2-None-10654
  • VUID-vkCmdWriteTimestamp-None-10640
  • VUID-vkCmdWriteTimestamp2-None-10639
  • VUID-vkCmdBeginTransformFeedbackEXT-None-10656
  • VUID-vkCmdClearAttachments-None-10616
  • VUID-vkCmdEndTransformFeedbackEXT-None-10657
  • VUID-vkCmdDebugMarkerBeginEXT-None-10614
  • VUID-vkCmdDebugMarkerEndEXT-None-10615
  • VUID-RuntimeSpirv-TileShadingQCOM-10698
  • VUID-RuntimeSpirv-TileShadingQCOM-10699
  • VUID-RuntimeSpirv-TileShadingQCOM-10700
  • VUID-RuntimeSpirv-TileShadingQCOM-10701
  • VUID-RuntimeSpirv-x-10702
  • VUID-RuntimeSpirv-y-10703
  • VUID-RuntimeSpirv-z-10704
  • VUID-RuntimeSpirv-tileSize-10705
  • VUID-RuntimeSpirv-OpImage-10706
  • VUID-RuntimeSpirv-OpTypeImage-10707
  • VUID-RuntimeSpirv-OpTypeImage-10708
  • VUID-RuntimeSpirv-OpTypeImage-10709
  • VUID-RuntimeSpirv-OpTypeImage-10710
  • VUID-RuntimeSpirv-OpTypeSampledImage-10711
  • VUID-RuntimeSpirv-tileShadingImageProcessing-10712
  • VUID-RuntimeSpirv-Coordinate-10713
  • VUID-RuntimeSpirv-Coordinate-10714

Found that these 3 are going to be hard to add as we have no good way of doing it now in VVL https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/12254/files#r3241395071

  • VUID-vkCmdDispatch-aspectMask-10673
  • VUID-vkCmdDispatch-None-10675
  • VUID-vkCmdDispatch-None-10676

The following are doing in spirv-val (in SPIRV-Tools) - https://github.com/KhronosGroup/SPIRV-Tools/pull/6660

  • VUID-StandaloneSpirv-Execution-10687
  • VUID-StandaloneSpirv-Execution-10688
  • VUID-StandaloneSpirv-NonCoherentTileAttachmentReadQCOM-10690
  • VUID-StandaloneSpirv-OpTypeImage-10693
  • VUID-StandaloneSpirv-OpTypeImage-10694
  • VUID-StandaloneSpirv-TileAttachmentQCOM-10689
  • VUID-StandaloneSpirv-TileAttachmentQCOM-10695
  • VUID-StandaloneSpirv-TileAttachmentQCOM-10696
  • VUID-StandaloneSpirv-TileAttachmentQCOM-10697
  • VUID-StandaloneSpirv-TileImageEXT-08723
  • VUID-StandaloneSpirv-TileShadingQCOM-10686
  • VUID-StandaloneSpirv-TileShadingRateQCOM-10691
  • VUID-StandaloneSpirv-TileShadingRateQCOM-10692
  • VUID-TileApronSizeQCOM-TileApronSizeQCOM-10632
  • VUID-TileApronSizeQCOM-TileApronSizeQCOM-10633
  • VUID-TileApronSizeQCOM-TileApronSizeQCOM-10634
  • VUID-TileOffsetQCOM-TileOffsetQCOM-10626
  • VUID-TileOffsetQCOM-TileOffsetQCOM-10627
  • VUID-TileOffsetQCOM-TileOffsetQCOM-10628
  • VUID-TileDimensionQCOM-TileDimensionQCOM-10629
  • VUID-TileDimensionQCOM-TileDimensionQCOM-10630
  • VUID-TileDimensionQCOM-TileDimensionQCOM-10631
  • VUID-WorkgroupSize-TileShadingRateQCOM-10635

VK_QCOM_tile_properties

  • vkGetDynamicRenderingTilePropertiesQCOM needs to trigger VUs in VkRenderingInfo

VK_QCOM_rotated_copy_commands

  • VUID-VkBlitImageInfo2-pRegions-04561
  • VUID-VkBlitImageInfo2KHR-pRegions-06207
  • VUID-VkBlitImageInfo2KHR-pRegions-06208
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10051 (and VkCopyImageToBufferInfo2/VkCopyImageToImageInfo/VkCopyImageToImageInfo)
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10052
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10053
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10054
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10055
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10056
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10057
  • VUID-VkCopyBufferToImageInfo2-imageOffset-10058
  • VUID-VkCopyBufferToImageInfo2-pRegions-04565
  • VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554
  • VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555
  • VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203
  • VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204
  • VUID-VkCopyImageToBufferInfo2-pRegions-04566
  • VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557
  • VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558
  • VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205
  • VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206
  • VUID-VkCopyImageToImageInfo-dstImage-00207
  • VUID-VkCopyImageToImageInfo-dstImage-00208
  • VUID-VkCopyImageToImageInfo-dstImage-00209
  • VUID-VkCopyCommandTransformInfoQCOM-transform-04560

VK_QCOM_ycbcr_degamma

  • VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207
  • VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09208
  • VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09209

VK_QCOM_render_pass_transform

  • VUID-vkCmdExecuteCommands-pNext-02865
  • VUID-vkCmdExecuteCommands-pNext-02866
  • VUID-vkCmdExecuteCommands-pNext-02867
  • VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864
  • VUID-VkRenderPassBeginInfo-pNext-02869
  • VUID-VkRenderPassBeginInfo-pNext-02870
  • VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872
  • VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871
  • VUID-VkSubpassDescription-pInputAttachments-02868

VK_QCOM_data_graph_model

  • VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-None-11835
  • VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-cacheType-parameter
  • VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerSize-11836
  • VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerSize-11838
  • VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerVersion-11837
  • VUID-VkPipelineCacheHeaderVersionDataGraphQCOM-headerVersion-parameter
  • VUID-VkDataGraphPipelineBuiltinModelCreateInfoQCOM-pOperation-11842
  • VUID-VkDeviceCreateInfo-queueFamilyIndex-11831
  • VUID-VkDataGraphProcessingEngineCreateInfoARM-pProcessingEngines-11843
  • VUID-VkDataGraphProcessingEngineCreateInfoARM-pProcessingEngines-11844
  • VUID-VkCommandPoolCreateInfo-queueFamilyIndex-11830
  • VUID-vkGetPipelineCacheData-pipelineCache-11834
  • VUID-vkMergePipelineCaches-dstCache-11832
  • VUID-vkMergePipelineCaches-headerVersion-11833

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by separating the unchecked VUIDs by extension and reading the referenced DescriptorValidator::ValidateDescriptor area, along with the linked SPIRV-Tools and Vulkan-ValidationLayers pull requests. Done means implementing and testing the remaining validation coverage, while documenting or coordinating items that belong in SPIRV-Tools or currently lack a VVL mechanism.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
devtools, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.