KhronosGroup / Vulkan-ValidationLayers

Vulkan Validation Layers (VVL)
https://vulkan.lunarg.com/doc/sdk/latest/linux/khronos_validation_layer.html
Other
731 stars 397 forks source link

When using position fetch spirv-val suggests using a invalid extension #8055

Closed Vecvec closed 1 month ago

Vecvec commented 1 month ago

Environment:

Describe the Issue When using RayQueryGetIntersectionTriangleVertexPositionsKHR spirv-val produces the first error (see below) that suggests using RayQueryPositionFetchKHR, however if added I get the second error. This extension also does not show up on the table given by the link. The first error shows up if using the closest feature on the table (RayTracingPositionFetchKHR)

Expected behavior

The validation errors should give suggestions that do not lead to validation errors when carrying them out.

Valid Usage ID If applicable, please include the validation messages encountered leading up to the issue

Not sure if applicable.

Additional context

first error ```sh Opcode RayQueryGetIntersectionTriangleVertexPositionsKHR requires one of these capabilities: RayQueryPositionFetchKHR %116 = OpRayQueryGetIntersectionTriangleVertexPositionsKHR %_arr_v3float_uint_3 %rq %true . The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix ```
second error ```sh VUID-VkShaderModuleCreateInfo-pCode-08739(ERROR / SPEC): msgNum: 1616057594 - Validation Error: [ VUID-VkShaderModuleCreateInfo-pCode-08739 ] | MessageID = 0x605314fa | vkCreateShaderModule(): SPIR-V has Capability (RayQueryPositionFetchKHR) declared, but thi s is not supported by Vulkan. The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix ```
spencer-lunarg commented 1 month ago

This was a spec bug (resolved in https://gitlab.khronos.org/vulkan/vulkan/-/merge_requests/6617) as it was missing from the vk.xml

It was fixed in the 1.3.285 header release recently (https://github.com/KhronosGroup/Vulkan-Docs/commit/8fc686b6321f035dc4a589e5ec1dc67208a71ac2#diff-ea2b2280eacdf0647fff0571d64126ecfa6ddb10cc488ecf38c98869254658ceR26597)

Will push a test up to confirm as well

Vecvec commented 1 month ago

Thank you! Do you have a time-frame for when 1.3.285 will be released for the validation layers?

spencer-lunarg commented 1 month ago

so we just released the 1.3.283 SDK so probably won't show up in a SDK for about 2 months now

if you want ToT builds, you can find them here https://github.com/KhronosGroup/Vulkan-ValidationLayers/actions/runs/9248991334

also you can just go set VK_LAYER_MESSAGE_ID_FILTER=VUID-VkShaderModuleCreateInfo-pCode-08739 for a short term fix as well

Vecvec commented 1 month ago

Ok. Thank you!