From 62d3e8314d2c4f26de24ca508bca2070f3d254aa Mon Sep 17 00:00:00 2001
From: Spencer Fricke <115671160+spencer-lunarg@users.noreply.github.com>
Date: Wed, 13 May 2026 11:47:28 -0400
Subject: [PATCH 11/26] Add SPV_KHR_opacity_micromap (#599)

---
 include/spirv/unified1/spirv.bf               |  5 ++++
 .../spirv/unified1/spirv.core.grammar.json    | 26 ++++++++++++++++---
 include/spirv/unified1/spirv.cs               |  5 ++++
 include/spirv/unified1/spirv.h                |  7 +++++
 include/spirv/unified1/spirv.hpp              |  7 +++++
 include/spirv/unified1/spirv.hpp11            |  7 +++++
 include/spirv/unified1/spirv.json             |  6 ++++-
 include/spirv/unified1/spirv.lua              |  5 ++++
 include/spirv/unified1/spirv.py               |  5 ++++
 include/spirv/unified1/spv.d                  |  5 ++++
 10 files changed, 73 insertions(+), 5 deletions(-)

diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 8d0bc34..a512a3e 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -206,6 +206,7 @@ namespace Spv
             SchedulerTargetFmaxMhzINTEL = 5903,
             MaximallyReconvergesKHR = 6023,
             FPFastMathDefault = 6028,
+            OpacityMicromapIdKHR = 6031,
             StreamingInterfaceINTEL = 6154,
             RegisterMapInterfaceINTEL = 6160,
             NamedBarrierCountINTEL = 6417,
@@ -1304,6 +1305,7 @@ namespace Spv
             DemoteToHelperInvocationEXT = 5379,
             DisplacementMicromapNV = 5380,
             RayTracingOpacityMicromapEXT = 5381,
+            RayTracingOpacityMicromapKHR = 5381,
             ShaderInvocationReorderNV = 5383,
             ShaderInvocationReorderEXT = 5388,
             BindlessTextureNV = 5390,
@@ -1398,6 +1400,7 @@ namespace Spv
             GroupNonUniformRotateKHR = 6026,
             FloatControls2 = 6029,
             FMAKHR = 6030,
+            RayTracingOpacityMicromapExecutionModeKHR = 6032,
             AtomicFloat32AddEXT = 6033,
             AtomicFloat64AddEXT = 6034,
             LongCompositesINTEL = 6089,
@@ -1459,6 +1462,7 @@ namespace Spv
             SkipTrianglesKHR = 8,
             SkipAABBsKHR = 9,
             ForceOpacityMicromap2StateEXT = 10,
+            ForceOpacityMicromap2StateKHR = 10,
             Max = 0x7fffffff,
         }
 
@@ -1477,6 +1481,7 @@ namespace Spv
             SkipTrianglesKHR = 0x00000100,
             SkipAABBsKHR = 0x00000200,
             ForceOpacityMicromap2StateEXT = 0x00000400,
+            ForceOpacityMicromap2StateKHR = 0x00000400,
         }
 
         [AllowDuplicates, CRepr] public enum RayQueryIntersection
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index c84dc2d..32a350a 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -12549,9 +12549,10 @@
           "version" : "None"
         },
         {
-          "enumerant" : "ForceOpacityMicromap2StateEXT",
+          "enumerant" : "ForceOpacityMicromap2StateKHR",
+          "aliases" : [ "ForceOpacityMicromap2StateEXT" ],
           "value" : "0x0400",
-          "capabilities" : [ "RayTracingOpacityMicromapEXT" ],
+          "capabilities" : [ "RayTracingOpacityMicromapKHR" ],
           "version" : "None"
         }
       ]
@@ -13576,6 +13577,15 @@
           "capabilities" : [ "FloatControls2" ],
           "version" : "None"
         },
+        {
+          "enumerant" : "OpacityMicromapIdKHR",
+          "value" : 6031,
+          "capabilities" : [ "RayTracingOpacityMicromapExecutionModeKHR" ],
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "Enable" }
+          ],
+          "version" : "None"
+        },
         {
           "enumerant" : "StreamingInterfaceINTEL",
           "value" : 6154,
@@ -18062,10 +18072,11 @@
           "version" : "None"
         },
         {
-          "enumerant" : "RayTracingOpacityMicromapEXT",
+          "enumerant" : "RayTracingOpacityMicromapKHR",
+          "aliases" : ["RayTracingOpacityMicromapEXT"],
           "value" : 5381,
           "capabilities" : [ "Shader" ],
-          "extensions" : [ "SPV_EXT_opacity_micromap" ],
+          "extensions" : ["SPV_KHR_opacity_micromap", "SPV_EXT_opacity_micromap"],
           "version" : "None"
         },
         {
@@ -18542,6 +18553,13 @@
           "extensions" : [ "SPV_KHR_fma" ],
           "version" : "None"
         },
+        {
+          "enumerant" : "RayTracingOpacityMicromapExecutionModeKHR",
+          "value" : 6032,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_KHR_opacity_micromap" ],
+          "version" : "None"
+        },
         {
           "enumerant" : "AtomicFloat32AddEXT",
           "value" : 6033,
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index b0a8f1e..4d33ffa 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -205,6 +205,7 @@ namespace Spv
             SchedulerTargetFmaxMhzINTEL = 5903,
             MaximallyReconvergesKHR = 6023,
             FPFastMathDefault = 6028,
+            OpacityMicromapIdKHR = 6031,
             StreamingInterfaceINTEL = 6154,
             RegisterMapInterfaceINTEL = 6160,
             NamedBarrierCountINTEL = 6417,
@@ -1303,6 +1304,7 @@ namespace Spv
             DemoteToHelperInvocationEXT = 5379,
             DisplacementMicromapNV = 5380,
             RayTracingOpacityMicromapEXT = 5381,
+            RayTracingOpacityMicromapKHR = 5381,
             ShaderInvocationReorderNV = 5383,
             ShaderInvocationReorderEXT = 5388,
             BindlessTextureNV = 5390,
@@ -1397,6 +1399,7 @@ namespace Spv
             GroupNonUniformRotateKHR = 6026,
             FloatControls2 = 6029,
             FMAKHR = 6030,
+            RayTracingOpacityMicromapExecutionModeKHR = 6032,
             AtomicFloat32AddEXT = 6033,
             AtomicFloat64AddEXT = 6034,
             LongCompositesINTEL = 6089,
@@ -1458,6 +1461,7 @@ namespace Spv
             SkipTrianglesKHR = 8,
             SkipAABBsKHR = 9,
             ForceOpacityMicromap2StateEXT = 10,
+            ForceOpacityMicromap2StateKHR = 10,
             Max = 0x7fffffff,
         }
 
@@ -1476,6 +1480,7 @@ namespace Spv
             SkipTrianglesKHR = 0x00000100,
             SkipAABBsKHR = 0x00000200,
             ForceOpacityMicromap2StateEXT = 0x00000400,
+            ForceOpacityMicromap2StateKHR = 0x00000400,
         }
 
         public enum RayQueryIntersection
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 4f76b90..d9dedc0 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -209,6 +209,7 @@ typedef enum SpvExecutionMode_ {
     SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
     SpvExecutionModeMaximallyReconvergesKHR = 6023,
     SpvExecutionModeFPFastMathDefault = 6028,
+    SpvExecutionModeOpacityMicromapIdKHR = 6031,
     SpvExecutionModeStreamingInterfaceINTEL = 6154,
     SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
     SpvExecutionModeNamedBarrierCountINTEL = 6417,
@@ -1274,6 +1275,7 @@ typedef enum SpvCapability_ {
     SpvCapabilityDemoteToHelperInvocationEXT = 5379,
     SpvCapabilityDisplacementMicromapNV = 5380,
     SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
+    SpvCapabilityRayTracingOpacityMicromapKHR = 5381,
     SpvCapabilityShaderInvocationReorderNV = 5383,
     SpvCapabilityShaderInvocationReorderEXT = 5388,
     SpvCapabilityBindlessTextureNV = 5390,
@@ -1368,6 +1370,7 @@ typedef enum SpvCapability_ {
     SpvCapabilityGroupNonUniformRotateKHR = 6026,
     SpvCapabilityFloatControls2 = 6029,
     SpvCapabilityFMAKHR = 6030,
+    SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR = 6032,
     SpvCapabilityAtomicFloat32AddEXT = 6033,
     SpvCapabilityAtomicFloat64AddEXT = 6034,
     SpvCapabilityLongCompositesINTEL = 6089,
@@ -1428,6 +1431,7 @@ typedef enum SpvRayFlagsShift_ {
     SpvRayFlagsSkipTrianglesKHRShift = 8,
     SpvRayFlagsSkipAABBsKHRShift = 9,
     SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
+    SpvRayFlagsForceOpacityMicromap2StateKHRShift = 10,
     SpvRayFlagsMax = 0x7fffffff,
 } SpvRayFlagsShift;
 
@@ -1445,6 +1449,7 @@ typedef enum SpvRayFlagsMask_ {
     SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
     SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
     SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
+    SpvRayFlagsForceOpacityMicromap2StateKHRMask = 0x00000400,
 } SpvRayFlagsMask;
 
 typedef enum SpvRayQueryIntersection_ {
@@ -3696,6 +3701,7 @@ inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
     case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
     case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
     case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault";
+    case SpvExecutionModeOpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
     case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
     case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
     case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
@@ -4505,6 +4511,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
     case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
     case SpvCapabilityFloatControls2: return "FloatControls2";
     case SpvCapabilityFMAKHR: return "FMAKHR";
+    case SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
     case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
     case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
     case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL";
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index fd64eb7..d0a1606 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -205,6 +205,7 @@ enum ExecutionMode {
     ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
     ExecutionModeMaximallyReconvergesKHR = 6023,
     ExecutionModeFPFastMathDefault = 6028,
+    ExecutionModeOpacityMicromapIdKHR = 6031,
     ExecutionModeStreamingInterfaceINTEL = 6154,
     ExecutionModeRegisterMapInterfaceINTEL = 6160,
     ExecutionModeNamedBarrierCountINTEL = 6417,
@@ -1270,6 +1271,7 @@ enum Capability {
     CapabilityDemoteToHelperInvocationEXT = 5379,
     CapabilityDisplacementMicromapNV = 5380,
     CapabilityRayTracingOpacityMicromapEXT = 5381,
+    CapabilityRayTracingOpacityMicromapKHR = 5381,
     CapabilityShaderInvocationReorderNV = 5383,
     CapabilityShaderInvocationReorderEXT = 5388,
     CapabilityBindlessTextureNV = 5390,
@@ -1364,6 +1366,7 @@ enum Capability {
     CapabilityGroupNonUniformRotateKHR = 6026,
     CapabilityFloatControls2 = 6029,
     CapabilityFMAKHR = 6030,
+    CapabilityRayTracingOpacityMicromapExecutionModeKHR = 6032,
     CapabilityAtomicFloat32AddEXT = 6033,
     CapabilityAtomicFloat64AddEXT = 6034,
     CapabilityLongCompositesINTEL = 6089,
@@ -1424,6 +1427,7 @@ enum RayFlagsShift {
     RayFlagsSkipTrianglesKHRShift = 8,
     RayFlagsSkipAABBsKHRShift = 9,
     RayFlagsForceOpacityMicromap2StateEXTShift = 10,
+    RayFlagsForceOpacityMicromap2StateKHRShift = 10,
     RayFlagsMax = 0x7fffffff,
 };
 
@@ -1441,6 +1445,7 @@ enum RayFlagsMask {
     RayFlagsSkipTrianglesKHRMask = 0x00000100,
     RayFlagsSkipAABBsKHRMask = 0x00000200,
     RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
+    RayFlagsForceOpacityMicromap2StateKHRMask = 0x00000400,
 };
 
 enum RayQueryIntersection {
@@ -3692,6 +3697,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) {
     case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
     case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
     case ExecutionModeFPFastMathDefault: return "FPFastMathDefault";
+    case ExecutionModeOpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
     case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
     case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
     case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
@@ -4501,6 +4507,7 @@ inline const char* CapabilityToString(Capability value) {
     case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
     case CapabilityFloatControls2: return "FloatControls2";
     case CapabilityFMAKHR: return "FMAKHR";
+    case CapabilityRayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
     case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
     case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
     case CapabilityLongCompositesINTEL: return "LongCompositesINTEL";
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 4e626c9..fb5d724 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -205,6 +205,7 @@ enum class ExecutionMode : unsigned {
     SchedulerTargetFmaxMhzINTEL = 5903,
     MaximallyReconvergesKHR = 6023,
     FPFastMathDefault = 6028,
+    OpacityMicromapIdKHR = 6031,
     StreamingInterfaceINTEL = 6154,
     RegisterMapInterfaceINTEL = 6160,
     NamedBarrierCountINTEL = 6417,
@@ -1270,6 +1271,7 @@ enum class Capability : unsigned {
     DemoteToHelperInvocationEXT = 5379,
     DisplacementMicromapNV = 5380,
     RayTracingOpacityMicromapEXT = 5381,
+    RayTracingOpacityMicromapKHR = 5381,
     ShaderInvocationReorderNV = 5383,
     ShaderInvocationReorderEXT = 5388,
     BindlessTextureNV = 5390,
@@ -1364,6 +1366,7 @@ enum class Capability : unsigned {
     GroupNonUniformRotateKHR = 6026,
     FloatControls2 = 6029,
     FMAKHR = 6030,
+    RayTracingOpacityMicromapExecutionModeKHR = 6032,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat64AddEXT = 6034,
     LongCompositesINTEL = 6089,
@@ -1424,6 +1427,7 @@ enum class RayFlagsShift : unsigned {
     SkipTrianglesKHR = 8,
     SkipAABBsKHR = 9,
     ForceOpacityMicromap2StateEXT = 10,
+    ForceOpacityMicromap2StateKHR = 10,
     Max = 0x7fffffff,
 };
 
@@ -1441,6 +1445,7 @@ enum class RayFlagsMask : unsigned {
     SkipTrianglesKHR = 0x00000100,
     SkipAABBsKHR = 0x00000200,
     ForceOpacityMicromap2StateEXT = 0x00000400,
+    ForceOpacityMicromap2StateKHR = 0x00000400,
 };
 
 enum class RayQueryIntersection : unsigned {
@@ -3692,6 +3697,7 @@ inline const char* ExecutionModeToString(ExecutionMode value) {
     case ExecutionMode::SchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
     case ExecutionMode::MaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
     case ExecutionMode::FPFastMathDefault: return "FPFastMathDefault";
+    case ExecutionMode::OpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
     case ExecutionMode::StreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
     case ExecutionMode::RegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
     case ExecutionMode::NamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
@@ -4501,6 +4507,7 @@ inline const char* CapabilityToString(Capability value) {
     case Capability::GroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
     case Capability::FloatControls2: return "FloatControls2";
     case Capability::FMAKHR: return "FMAKHR";
+    case Capability::RayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
     case Capability::AtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
     case Capability::AtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
     case Capability::LongCompositesINTEL: return "LongCompositesINTEL";
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 135663c..af571b5 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -224,6 +224,7 @@
                     "SchedulerTargetFmaxMhzINTEL": 5903,
                     "MaximallyReconvergesKHR": 6023,
                     "FPFastMathDefault": 6028,
+                    "OpacityMicromapIdKHR": 6031,
                     "StreamingInterfaceINTEL": 6154,
                     "RegisterMapInterfaceINTEL": 6160,
                     "NamedBarrierCountINTEL": 6417,
@@ -1236,6 +1237,7 @@
                     "DemoteToHelperInvocationEXT": 5379,
                     "DisplacementMicromapNV": 5380,
                     "RayTracingOpacityMicromapEXT": 5381,
+                    "RayTracingOpacityMicromapKHR": 5381,
                     "ShaderInvocationReorderNV": 5383,
                     "ShaderInvocationReorderEXT": 5388,
                     "BindlessTextureNV": 5390,
@@ -1330,6 +1332,7 @@
                     "GroupNonUniformRotateKHR": 6026,
                     "FloatControls2": 6029,
                     "FMAKHR": 6030,
+                    "RayTracingOpacityMicromapExecutionModeKHR": 6032,
                     "AtomicFloat32AddEXT": 6033,
                     "AtomicFloat64AddEXT": 6034,
                     "LongCompositesINTEL": 6089,
@@ -1392,7 +1395,8 @@
                     "SkipBuiltinPrimitivesNV": 8,
                     "SkipTrianglesKHR": 8,
                     "SkipAABBsKHR": 9,
-                    "ForceOpacityMicromap2StateEXT": 10
+                    "ForceOpacityMicromap2StateEXT": 10,
+                    "ForceOpacityMicromap2StateKHR": 10
                 }
             },
             {
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 8cbe093..f3da312 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -196,6 +196,7 @@ spv = {
         SchedulerTargetFmaxMhzINTEL = 5903,
         MaximallyReconvergesKHR = 6023,
         FPFastMathDefault = 6028,
+        OpacityMicromapIdKHR = 6031,
         StreamingInterfaceINTEL = 6154,
         RegisterMapInterfaceINTEL = 6160,
         NamedBarrierCountINTEL = 6417,
@@ -1261,6 +1262,7 @@ spv = {
         DemoteToHelperInvocationEXT = 5379,
         DisplacementMicromapNV = 5380,
         RayTracingOpacityMicromapEXT = 5381,
+        RayTracingOpacityMicromapKHR = 5381,
         ShaderInvocationReorderNV = 5383,
         ShaderInvocationReorderEXT = 5388,
         BindlessTextureNV = 5390,
@@ -1355,6 +1357,7 @@ spv = {
         GroupNonUniformRotateKHR = 6026,
         FloatControls2 = 6029,
         FMAKHR = 6030,
+        RayTracingOpacityMicromapExecutionModeKHR = 6032,
         AtomicFloat32AddEXT = 6033,
         AtomicFloat64AddEXT = 6034,
         LongCompositesINTEL = 6089,
@@ -1415,6 +1418,7 @@ spv = {
         SkipTrianglesKHR = 8,
         SkipAABBsKHR = 9,
         ForceOpacityMicromap2StateEXT = 10,
+        ForceOpacityMicromap2StateKHR = 10,
         Max = 0x7fffffff,
     },
 
@@ -1432,6 +1436,7 @@ spv = {
         SkipTrianglesKHR = 0x00000100,
         SkipAABBsKHR = 0x00000200,
         ForceOpacityMicromap2StateEXT = 0x00000400,
+        ForceOpacityMicromap2StateKHR = 0x00000400,
     },
 
     RayQueryIntersection = {
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index bb65ae9..88e5cbc 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -192,6 +192,7 @@ spv = {
         'SchedulerTargetFmaxMhzINTEL' : 5903,
         'MaximallyReconvergesKHR' : 6023,
         'FPFastMathDefault' : 6028,
+        'OpacityMicromapIdKHR' : 6031,
         'StreamingInterfaceINTEL' : 6154,
         'RegisterMapInterfaceINTEL' : 6160,
         'NamedBarrierCountINTEL' : 6417,
@@ -1232,6 +1233,7 @@ spv = {
         'DemoteToHelperInvocationEXT' : 5379,
         'DisplacementMicromapNV' : 5380,
         'RayTracingOpacityMicromapEXT' : 5381,
+        'RayTracingOpacityMicromapKHR' : 5381,
         'ShaderInvocationReorderNV' : 5383,
         'ShaderInvocationReorderEXT' : 5388,
         'BindlessTextureNV' : 5390,
@@ -1326,6 +1328,7 @@ spv = {
         'GroupNonUniformRotateKHR' : 6026,
         'FloatControls2' : 6029,
         'FMAKHR' : 6030,
+        'RayTracingOpacityMicromapExecutionModeKHR' : 6032,
         'AtomicFloat32AddEXT' : 6033,
         'AtomicFloat64AddEXT' : 6034,
         'LongCompositesINTEL' : 6089,
@@ -1385,6 +1388,7 @@ spv = {
         'SkipTrianglesKHR' : 8,
         'SkipAABBsKHR' : 9,
         'ForceOpacityMicromap2StateEXT' : 10,
+        'ForceOpacityMicromap2StateKHR' : 10,
     },
 
     'RayFlagsMask' : {
@@ -1401,6 +1405,7 @@ spv = {
         'SkipTrianglesKHR' : 0x00000100,
         'SkipAABBsKHR' : 0x00000200,
         'ForceOpacityMicromap2StateEXT' : 0x00000400,
+        'ForceOpacityMicromap2StateKHR' : 0x00000400,
     },
 
     'RayQueryIntersection' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 8d31fee..aab392c 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -208,6 +208,7 @@ enum ExecutionMode : uint
     SchedulerTargetFmaxMhzINTEL = 5903,
     MaximallyReconvergesKHR = 6023,
     FPFastMathDefault = 6028,
+    OpacityMicromapIdKHR = 6031,
     StreamingInterfaceINTEL = 6154,
     RegisterMapInterfaceINTEL = 6160,
     NamedBarrierCountINTEL = 6417,
@@ -1306,6 +1307,7 @@ enum Capability : uint
     DemoteToHelperInvocationEXT = 5379,
     DisplacementMicromapNV = 5380,
     RayTracingOpacityMicromapEXT = 5381,
+    RayTracingOpacityMicromapKHR = 5381,
     ShaderInvocationReorderNV = 5383,
     ShaderInvocationReorderEXT = 5388,
     BindlessTextureNV = 5390,
@@ -1400,6 +1402,7 @@ enum Capability : uint
     GroupNonUniformRotateKHR = 6026,
     FloatControls2 = 6029,
     FMAKHR = 6030,
+    RayTracingOpacityMicromapExecutionModeKHR = 6032,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat64AddEXT = 6034,
     LongCompositesINTEL = 6089,
@@ -1461,6 +1464,7 @@ enum RayFlagsShift : uint
     SkipTrianglesKHR = 8,
     SkipAABBsKHR = 9,
     ForceOpacityMicromap2StateEXT = 10,
+    ForceOpacityMicromap2StateKHR = 10,
     Max = 0x7fffffff,
 }
 
@@ -1479,6 +1483,7 @@ enum RayFlagsMask : uint
     SkipTrianglesKHR = 0x00000100,
     SkipAABBsKHR = 0x00000200,
     ForceOpacityMicromap2StateEXT = 0x00000400,
+    ForceOpacityMicromap2StateKHR = 0x00000400,
 }
 
 enum RayQueryIntersection : uint
-- 
2.54.0

