@@ -274,6 +274,8 @@ enum ImageFormat {
274
274
ImageFormatRg8ui = 37 ,
275
275
ImageFormatR16ui = 38 ,
276
276
ImageFormatR8ui = 39 ,
277
+ ImageFormatR64ui = 40 ,
278
+ ImageFormatR64i = 41 ,
277
279
ImageFormatMax = 0x7fffffff ,
278
280
};
279
281
@@ -558,8 +560,10 @@ enum BuiltIn {
558
560
BuiltInBaseVertex = 4424 ,
559
561
BuiltInBaseInstance = 4425 ,
560
562
BuiltInDrawIndex = 4426 ,
563
+ BuiltInPrimitiveShadingRateKHR = 4432 ,
561
564
BuiltInDeviceIndex = 4438 ,
562
565
BuiltInViewIndex = 4440 ,
566
+ BuiltInShadingRateKHR = 4444 ,
563
567
BuiltInBaryCoordNoPerspAMD = 4992 ,
564
568
BuiltInBaryCoordNoPerspCentroidAMD = 4993 ,
565
569
BuiltInBaryCoordNoPerspSampleAMD = 4994 ,
@@ -870,6 +874,7 @@ enum Capability {
870
874
CapabilityGroupNonUniformQuad = 68 ,
871
875
CapabilityShaderLayer = 69 ,
872
876
CapabilityShaderViewportIndex = 70 ,
877
+ CapabilityFragmentShadingRateKHR = 4422 ,
873
878
CapabilitySubgroupBallotKHR = 4423 ,
874
879
CapabilityDrawParameters = 4427 ,
875
880
CapabilitySubgroupVoteKHR = 4431 ,
@@ -900,6 +905,7 @@ enum Capability {
900
905
CapabilityFragmentMaskAMD = 5010 ,
901
906
CapabilityStencilExportEXT = 5013 ,
902
907
CapabilityImageReadWriteLodAMD = 5015 ,
908
+ CapabilityInt64ImageEXT = 5016 ,
903
909
CapabilityShaderClockKHR = 5055 ,
904
910
CapabilitySampleMaskOverrideCoverageNV = 5249 ,
905
911
CapabilityGeometryShaderPassthroughNV = 5251 ,
@@ -1024,6 +1030,22 @@ enum RayQueryCandidateIntersectionType {
1024
1030
RayQueryCandidateIntersectionTypeMax = 0x7fffffff ,
1025
1031
};
1026
1032
1033
+ enum FragmentShadingRateShift {
1034
+ FragmentShadingRateVertical2PixelsShift = 0 ,
1035
+ FragmentShadingRateVertical4PixelsShift = 1 ,
1036
+ FragmentShadingRateHorizontal2PixelsShift = 2 ,
1037
+ FragmentShadingRateHorizontal4PixelsShift = 3 ,
1038
+ FragmentShadingRateMax = 0x7fffffff ,
1039
+ };
1040
+
1041
+ enum FragmentShadingRateMask {
1042
+ FragmentShadingRateMaskNone = 0 ,
1043
+ FragmentShadingRateVertical2PixelsMask = 0x00000001 ,
1044
+ FragmentShadingRateVertical4PixelsMask = 0x00000002 ,
1045
+ FragmentShadingRateHorizontal2PixelsMask = 0x00000004 ,
1046
+ FragmentShadingRateHorizontal4PixelsMask = 0x00000008 ,
1047
+ };
1048
+
1027
1049
enum Op {
1028
1050
OpNop = 0 ,
1029
1051
OpUndef = 1 ,
@@ -1369,6 +1391,7 @@ enum Op {
1369
1391
OpPtrEqual = 401 ,
1370
1392
OpPtrNotEqual = 402 ,
1371
1393
OpPtrDiff = 403 ,
1394
+ OpTerminateInvocation = 4416 ,
1372
1395
OpSubgroupBallotKHR = 4421 ,
1373
1396
OpSubgroupFirstInvocationKHR = 4422 ,
1374
1397
OpSubgroupAllKHR = 4428 ,
@@ -1939,6 +1962,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
1939
1962
case OpPtrEqual: *hasResult = true ; *hasResultType = true ; break ;
1940
1963
case OpPtrNotEqual: *hasResult = true ; *hasResultType = true ; break ;
1941
1964
case OpPtrDiff: *hasResult = true ; *hasResultType = true ; break ;
1965
+ case OpTerminateInvocation: *hasResult = false ; *hasResultType = false ; break ;
1942
1966
case OpSubgroupBallotKHR: *hasResult = true ; *hasResultType = true ; break ;
1943
1967
case OpSubgroupFirstInvocationKHR: *hasResult = true ; *hasResultType = true ; break ;
1944
1968
case OpSubgroupAllKHR: *hasResult = true ; *hasResultType = true ; break ;
@@ -2164,6 +2188,7 @@ inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask
2164
2188
inline MemoryAccessMask operator |(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask (unsigned (a) | unsigned (b)); }
2165
2189
inline KernelProfilingInfoMask operator |(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask (unsigned (a) | unsigned (b)); }
2166
2190
inline RayFlagsMask operator |(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask (unsigned (a) | unsigned (b)); }
2191
+ inline FragmentShadingRateMask operator |(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask (unsigned (a) | unsigned (b)); }
2167
2192
2168
2193
} // end namespace spv
2169
2194
0 commit comments