Repository navigation
Conversation
The SER motion instructions and the hit object current time and triangle vertex position queries also require the RayTracingMotionBlurNV or RayTracingPositionFetchKHR capability. Listing those as additional enabling capabilities in the grammar did not enforce this, because any one enabling capability is sufficient and every hit object instruction already requires the shader invocation reorder capability. Check the extra capability explicitly, as is already done for OpHitObjectRecordFromQueryEXT and RayQueryKHR, and update the tests to declare the capabilities and cover the error. See KhronosGroup/SPIRV-Registry#462. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 28, 2026
Contributor
Author
|
The CI-shaderc-smoketest failure is a glslang bug that this check exposes: glslang doesn't declare RayTracingMotionBlurNV / RayTracingPositionFetchKHR for these hit object instructions, so its spv.{ext,nv}.hitobject-allops tests fail the new validation. Fix: KhronosGroup/glslang#4503 (all glslang tests pass against this PR with it). This PR should wait until that lands. CI-dxc-smoketest is also failing on main and other recent PRs, so it's unrelated. ▎ AI-assisted comment drafting: Claude claude-opus-5-5 (Anthropic, commercial SaaS) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Enforces the requirements clarified in KhronosGroup/SPIRV-Registry#463
(KhronosGroup/SPIRV-Registry#462):
the RayTracingMotionBlurNV capability.
RayTracingPositionFetchKHR capability.
These were never enforced. The grammar listed some of them as additional
enabling capabilities, but any one enabling capability is sufficient, and
the hit object type already requires the shader invocation reorder
capability.
The check is done up front in the NV and EXT reorder passes, in the same
style as the existing OpHitObjectRecordFromQueryEXT / RayQueryKHR check.
OpHitObjectRecordHitMotionNV, OpHitObjectRecordHitWithIndexMotionNV and
OpHitObjectRecordMissMotionNV weren't otherwise handled in the NV pass.
Tests: the existing tests that use these instructions now declare the
required capability and also check the new error when it's missing. A test
for OpHitObjectGetCurrentTimeNV is added.
This doesn't depend on the SPIRV-Headers change
(KhronosGroup/SPIRV-Headers#643). test_val_rstuvw passes against the
currently pinned headers, and all validator test suites pass against the
updated grammar.
▎ GenAI disclosure: Draft assisted by Claude (claude-opus-5-5, Anthropic, commercial SaaS — Claude Code CLI).
🤖 Generated with Claude Code