Clarify SPV_EXT vs SPV_KHR opacity_micromap behavior equivalence#423
Clarify SPV_EXT vs SPV_KHR opacity_micromap behavior equivalence#423dgkoch wants to merge 4 commits into
Conversation
…kan/vulkan#4842)
Spell out in the Issues resolution that:
- Declaring either OpExtension string without OpacityMicromapIdKHR produces
the same shader behavior.
- SPV_EXT_opacity_micromap alone does not imply OMMs are always present.
- Whether OMM data is consumed is gated by which Vulkan extension is enabled:
- VK_EXT_opacity_micromap: OMMs always consumed when present.
- VK_KHR_opacity_micromap: OMMs consumed only when the shader declares
OpacityMicromapIdKHR.
Bumps Last Modified Date to 2026-06-12 and revision to 4.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Reference "when the <feature> is enabled" at the Vulkan API level rather than "declaring the extension string." - Restructure the resolution as a bulleted list for readability. - Explicitly state that traversing an OMM acceleration structure with the VK_KHR_opacity_micromap feature enabled but without declaring the OpacityMicromapIdKHR execution mode is undefined behavior, not equivalent to skipping opacity micromaps.
|
Iterated per RT TSG 2026-06-25 feedback (
@HansKristian-Work @dnovillo — please take another look. |
…e; terminology - Add a fourth bullet stating explicitly that declaring the OpacityMicromapIdKHR execution mode requires the VK_KHR_opacity_micromap `micromap` feature to be enabled, because the RayTracingOpacityMicromapExecutionModeKHR capability is only valid in the Vulkan SPIR-V environment when that feature is enabled. Addresses Wooyoung's case 1.2 question. - Use "module" instead of "shader" throughout the Issues (1) resolution, since this is a SPIR-V spec and shaders are a higher-level concept.
Match VUID-*-micromap-11636 and shipped VK_EXT_opacity_micromap behavior more precisely: - VK_EXT_opacity_micromap consumption is gated on the extension being enabled, not on a "micromap feature." The EXT capability entry in vk.xml has been extension-gated since day one (2022); only the KHR path is feature-gated. Update the sub-bullet and the introductory line accordingly. - The KHR opt-in requires the OpacityMicromapIdKHR execution mode's specialization-constant operand to equal VK_TRUE; declaring the execution mode with the operand set to VK_FALSE does not count. Reflect this in the KHR sub-bullet and in the undefined-behavior bullet.
|
Propagating the same two corrections that landed on the parallel Vulkan-side MR (!8409) after Matt Netsch's review there:
The fourth bullet (added earlier for Wooyoung) is unchanged — it's about whether the module can declare the execution mode at all, which the operand value doesn't affect. |
Spell out in the
SPV_KHR_opacity_micromapIssues resolution that:OpExtensionstring withoutOpacityMicromapIdKHRproduces the same shader behavior.SPV_EXT_opacity_micromapalone does not imply OMMs are always present.VK_EXT_opacity_micromap: OMMs always consumed when present.VK_KHR_opacity_micromap: OMMs consumed only when the shader declaresOpacityMicromapIdKHR.Bumps Last Modified Date to 2026-06-12 and revision to 4.
Resolves the ambiguity raised in vulkan/vulkan#4842.