Skip to content

Remove alternative enabling capability from SER motion and current time instructions - #643

Open
dgkoch wants to merge 2 commits into
KhronosGroup:mainfrom
dgkoch:dk/462-ser-capability-requirements
Open

dgkoch wants to merge 2 commits into
KhronosGroup:mainfrom
dgkoch:dk/462-ser-capability-requirements

Conversation

@dgkoch

@dgkoch dgkoch commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

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

dgkoch and others added 2 commits October 28, 2026 12:41
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>
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>
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.

1 participant