8000 Require interacting extensions for SER motion and position functions by dgkoch · Pull Request #347 · KhronosGroup/GLSL · GitHub
[go: up one dir, main page]

Skip to content

Require interacting extensions for SER motion and position functions - #347

Open
dgkoch wants to merge 1 commit into
KhronosGroup:mainfrom
dgkoch:dk/ser-interaction-gating
Open

dgkoch wants to merge 1 commit into
KhronosGroup:mainfrom
dgkoch:dk/ser-interaction-gating

Conversation

@dgkoch
@dgkoch dgkoch commented Nov 5, 2026 •
Copy link
Copy Markdown
Contributor

Follow-up to KhronosGroup/SPIRV-Registry#462 and KhronosGroup/glslang#4503.

GLSL_EXT_shader_invocation_reorder and GLSL_NV_shader_invocation_reorder said the motion functions were "allowed only when GLSL_NV_ray_tracing_motion_blur extension is present", which doesn't say whether that extension has to be enabled in the shader. The current time and vertex position functions were not gated on their interacting extensions at all, even though they need SPV_NV_ray_tracing_motion_blur / SPV_KHR_ray_tracing_position_fetch in SPIR-V (see SPIRV-Registry#463 and glslang#4503).

This change states that these functions are available only if the interacting extension is also enabled:

  • GL_NV_ray_tracing_motion_blur: hitObjectTraceRayMotionEXT, hitObjectRecordMissMotionEXT, hitObjectTraceMotionReorderExecuteEXT, hitObjectGetCurrentTimeEXT, and the NV equivalents (hitObjectTraceRayMotionNV, hitObjectRecordHitMotionNV, hitObjectRecordHitWithIndexMotionNV, hitObjectRecordMissMotionNV, hitObjectGetCurrentTimeNV).
  • GL_EXT_ray_tracing_position_fetch: hitObjectGetIntersectionTriangleVertexPositionsEXT.

The interactions sections now list every affected function, and the EXT spec gains a dependency on and an interactions section for GLSL_EXT_ray_tracing_position_fetch. The NV spec gains an interactions section for GLSL_NV_ray_tracing_motion_blur.

Discussed and agreed at the Vulkan Ray Tracing TSG. The matching glslang enforcement is in KhronosGroup/glslang#4517. The SER tests in the Vulkan CTS already enable the interacting extensions, so no CTS changes are needed.

▎ GenAI disclosure: Draft assisted by Claude (claude-opus-5-5, Anthropic, commercial SaaS — Claude Code CLI).

GLSL_EXT_shader_invocation_reorder and GLSL_NV_shader_invocation_reorder
said the motion functions were allowed only when
GLSL_NV_ray_tracing_motion_blur was "present", and did not gate the
current time or vertex position functions at all. State that these
functions are available only if the interacting extension is also
enabled, and list all of them in the interactions sections.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dgkoch
dgkoch commented Nov 5, 2026
Copy link
Copy Markdown
Contributor Author

cc @alelenv @ewerness-nv

@alelenv
alelenv commented Nov 6, 2026
Copy link
Copy Markdown
Contributor

LGTM

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.

2 participants

0