Repository navigation
Conversation
RayTracingMotionBlurNV was listed as an alternative enabling capability for OpHitObjectGetCurrentTimeEXT. Since any one enabling capability is sufficient, this did not require RayTracingMotionBlurNV. The SPV_EXT_shader_invocation_reorder specification now states that requirement in the instruction description instead, and the instruction is enabled by ShaderInvocationReorderEXT alone. See KhronosGroup/SPIRV-Registry#462. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The SER motion instructions listed RayTracingMotionBlurNV as an alternative enabling capability, which did not require it. The SPV_EXT_shader_invocation_reorder and SPV_NV_shader_invocation_reorder specifications now state that requirement in each instruction description, and the instructions are enabled by the shader invocation reorder capability alone. See KhronosGroup/SPIRV-Registry#462. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 28, 2026
spirv-val: Require motion blur and position fetch capabilities for SER
KhronosGroup/SPIRV-Tools#7007
Merged
alan-baker
pushed a commit
to KhronosGroup/SPIRV-Tools
that referenced
this pull request
Oct 30, 2026
#7007) Enforces the requirements clarified in KhronosGroup/SPIRV-Registry#463 (KhronosGroup/SPIRV-Registry#462): - The SER motion instructions and OpHitObjectGetCurrentTime{NV,EXT} require the RayTracingMotionBlurNV capability. - OpHitObjectGetIntersectionTriangleVertexPositionsEXT requires the 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](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Grammar update for KhronosGroup/SPIRV-Registry#463 (fixes
KhronosGroup/SPIRV-Registry#462).
RayTracingMotionBlurNV was listed as an alternative enabling capability for
OpHitObjectGetCurrentTimeEXT and the SER motion instructions (3 EXT, 4 NV).
Since any one enabling capability is sufficient, and the shader invocation
reorder capability is always required by the hit object type, this never
required RayTracingMotionBlurNV. The specifications now state that
requirement in the instruction descriptions, so the grammar lists only the
shader invocation reorder capability.
This doesn't change which modules are valid. Enforcement is added to
spirv-val in KhronosGroup/SPIRV-Tools#7007, which doesn't depend on this
change.
▎ GenAI disclosure: Draft assisted by Claude (claude-opus-5-5, Anthropic, commercial SaaS — Claude Code CLI).
🤖 Generated with Claude Code