1{ 2 "scopeName": "source.spirv", 3 "name": "SPIR-V", 4 "comment": "Generated by gen-grammar.go --template=../../spirv.json.tmpl --out=../../spirv.json. Do not modify this file directly.", 5 "patterns": [ 6 { "include": "#BitEnum_ImageOperands" }, 7 { "include": "#BitEnum_FPFastMathMode" }, 8 { "include": "#BitEnum_SelectionControl" }, 9 { "include": "#BitEnum_LoopControl" }, 10 { "include": "#BitEnum_FunctionControl" }, 11 { "include": "#BitEnum_MemorySemantics" }, 12 { "include": "#BitEnum_MemoryAccess" }, 13 { "include": "#BitEnum_KernelProfilingInfo" }, 14 { "include": "#ValueEnum_SourceLanguage" }, 15 { "include": "#ValueEnum_ExecutionModel" }, 16 { "include": "#ValueEnum_AddressingModel" }, 17 { "include": "#ValueEnum_MemoryModel" }, 18 { "include": "#ValueEnum_ExecutionMode" }, 19 { "include": "#ValueEnum_StorageClass" }, 20 { "include": "#ValueEnum_Dim" }, 21 { "include": "#ValueEnum_SamplerAddressingMode" }, 22 { "include": "#ValueEnum_SamplerFilterMode" }, 23 { "include": "#ValueEnum_ImageFormat" }, 24 { "include": "#ValueEnum_ImageChannelOrder" }, 25 { "include": "#ValueEnum_ImageChannelDataType" }, 26 { "include": "#ValueEnum_FPRoundingMode" }, 27 { "include": "#ValueEnum_LinkageType" }, 28 { "include": "#ValueEnum_AccessQualifier" }, 29 { "include": "#ValueEnum_FunctionParameterAttribute" }, 30 { "include": "#ValueEnum_Decoration" }, 31 { "include": "#ValueEnum_BuiltIn" }, 32 { "include": "#ValueEnum_Scope" }, 33 { "include": "#ValueEnum_GroupOperation" }, 34 { "include": "#ValueEnum_KernelEnqueueFlags" }, 35 { "include": "#ValueEnum_Capability" }, 36 { "include": "#BitEnum_DebugInfoFlags" }, 37 { "include": "#ValueEnum_DebugBaseTypeAttributeEncoding" }, 38 { "include": "#ValueEnum_DebugCompositeType" }, 39 { "include": "#ValueEnum_DebugTypeQualifier" }, 40 { "include": "#ValueEnum_DebugOperation" }, 41 { "include": "#ValueEnum_DebugImportedEntity" }, 42 { "include": "#opcode" }, 43 { "include": "#extopcode" }, 44 { "include": "#identifier" }, 45 { "include": "#number" }, 46 { "include": "#string" }, 47 { "include": "#comment" }, 48 { "include": "#operator" } 49 ], 50 "repository": { 51 "BitEnum_ImageOperands": { 52 "match": "\\b(None|Bias|Lod|Grad|ConstOffset|Offset|ConstOffsets|Sample|MinLod|MakeTexelAvailable|MakeTexelAvailableKHR|MakeTexelVisible|MakeTexelVisibleKHR|NonPrivateTexel|NonPrivateTexelKHR|VolatileTexel|VolatileTexelKHR|SignExtend|ZeroExtend)\\b", 53 "name": "keyword.spirv" 54 }, 55 "BitEnum_FPFastMathMode": { 56 "match": "\\b(None|NotNaN|NotInf|NSZ|AllowRecip|Fast)\\b", 57 "name": "keyword.spirv" 58 }, 59 "BitEnum_SelectionControl": { 60 "match": "\\b(None|Flatten|DontFlatten)\\b", 61 "name": "keyword.spirv" 62 }, 63 "BitEnum_LoopControl": { 64 "match": "\\b(None|Unroll|DontUnroll|DependencyInfinite|DependencyLength|MinIterations|MaxIterations|IterationMultiple|PeelCount|PartialCount)\\b", 65 "name": "keyword.spirv" 66 }, 67 "BitEnum_FunctionControl": { 68 "match": "\\b(None|Inline|DontInline|Pure|Const)\\b", 69 "name": "keyword.spirv" 70 }, 71 "BitEnum_MemorySemantics": { 72 "match": "\\b(Relaxed|None|Acquire|Release|AcquireRelease|SequentiallyConsistent|UniformMemory|SubgroupMemory|WorkgroupMemory|CrossWorkgroupMemory|AtomicCounterMemory|ImageMemory|OutputMemory|OutputMemoryKHR|MakeAvailable|MakeAvailableKHR|MakeVisible|MakeVisibleKHR|Volatile)\\b", 73 "name": "keyword.spirv" 74 }, 75 "BitEnum_MemoryAccess": { 76 "match": "\\b(None|Volatile|Aligned|Nontemporal|MakePointerAvailable|MakePointerAvailableKHR|MakePointerVisible|MakePointerVisibleKHR|NonPrivatePointer|NonPrivatePointerKHR)\\b", 77 "name": "keyword.spirv" 78 }, 79 "BitEnum_KernelProfilingInfo": { 80 "match": "\\b(None|CmdExecTime)\\b", 81 "name": "keyword.spirv" 82 }, 83 "ValueEnum_SourceLanguage": { 84 "match": "\\b(Unknown|ESSL|GLSL|OpenCL_C|OpenCL_CPP|HLSL)\\b", 85 "name": "keyword.spirv" 86 }, 87 "ValueEnum_ExecutionModel": { 88 "match": "\\b(Vertex|TessellationControl|TessellationEvaluation|Geometry|Fragment|GLCompute|Kernel|TaskNV|MeshNV|RayGenerationNV|IntersectionNV|AnyHitNV|ClosestHitNV|MissNV|CallableNV)\\b", 89 "name": "keyword.spirv" 90 }, 91 "ValueEnum_AddressingModel": { 92 "match": "\\b(Logical|Physical32|Physical64|PhysicalStorageBuffer64|PhysicalStorageBuffer64EXT)\\b", 93 "name": "keyword.spirv" 94 }, 95 "ValueEnum_MemoryModel": { 96 "match": "\\b(Simple|GLSL450|OpenCL|Vulkan|VulkanKHR)\\b", 97 "name": "keyword.spirv" 98 }, 99 "ValueEnum_ExecutionMode": { 100 "match": "\\b(Invocations|SpacingEqual|SpacingFractionalEven|SpacingFractionalOdd|VertexOrderCw|VertexOrderCcw|PixelCenterInteger|OriginUpperLeft|OriginLowerLeft|EarlyFragmentTests|PointMode|Xfb|DepthReplacing|DepthGreater|DepthLess|DepthUnchanged|LocalSize|LocalSizeHint|InputPoints|InputLines|InputLinesAdjacency|Triangles|InputTrianglesAdjacency|Quads|Isolines|OutputVertices|OutputPoints|OutputLineStrip|OutputTriangleStrip|VecTypeHint|ContractionOff|Initializer|Finalizer|SubgroupSize|SubgroupsPerWorkgroup|SubgroupsPerWorkgroupId|LocalSizeId|LocalSizeHintId|PostDepthCoverage|DenormPreserve|DenormFlushToZero|SignedZeroInfNanPreserve|RoundingModeRTE|RoundingModeRTZ|StencilRefReplacingEXT|OutputLinesNV|OutputPrimitivesNV|DerivativeGroupQuadsNV|DerivativeGroupLinearNV|OutputTrianglesNV|PixelInterlockOrderedEXT|PixelInterlockUnorderedEXT|SampleInterlockOrderedEXT|SampleInterlockUnorderedEXT|ShadingRateInterlockOrderedEXT|ShadingRateInterlockUnorderedEXT)\\b", 101 "name": "keyword.spirv" 102 }, 103 "ValueEnum_StorageClass": { 104 "match": "\\b(UniformConstant|Input|Uniform|Output|Workgroup|CrossWorkgroup|Private|Function|Generic|PushConstant|AtomicCounter|Image|StorageBuffer|CallableDataNV|IncomingCallableDataNV|RayPayloadNV|HitAttributeNV|IncomingRayPayloadNV|ShaderRecordBufferNV|PhysicalStorageBuffer|PhysicalStorageBufferEXT)\\b", 105 "name": "keyword.spirv" 106 }, 107 "ValueEnum_Dim": { 108 "match": "\\b(1D|2D|3D|Cube|Rect|Buffer|SubpassData)\\b", 109 "name": "keyword.spirv" 110 }, 111 "ValueEnum_SamplerAddressingMode": { 112 "match": "\\b(None|ClampToEdge|Clamp|Repeat|RepeatMirrored)\\b", 113 "name": "keyword.spirv" 114 }, 115 "ValueEnum_SamplerFilterMode": { 116 "match": "\\b(Nearest|Linear)\\b", 117 "name": "keyword.spirv" 118 }, 119 "ValueEnum_ImageFormat": { 120 "match": "\\b(Unknown|Rgba32f|Rgba16f|R32f|Rgba8|Rgba8Snorm|Rg32f|Rg16f|R11fG11fB10f|R16f|Rgba16|Rgb10A2|Rg16|Rg8|R16|R8|Rgba16Snorm|Rg16Snorm|Rg8Snorm|R16Snorm|R8Snorm|Rgba32i|Rgba16i|Rgba8i|R32i|Rg32i|Rg16i|Rg8i|R16i|R8i|Rgba32ui|Rgba16ui|Rgba8ui|R32ui|Rgb10a2ui|Rg32ui|Rg16ui|Rg8ui|R16ui|R8ui)\\b", 121 "name": "keyword.spirv" 122 }, 123 "ValueEnum_ImageChannelOrder": { 124 "match": "\\b(R|A|RG|RA|RGB|RGBA|BGRA|ARGB|Intensity|Luminance|Rx|RGx|RGBx|Depth|DepthStencil|sRGB|sRGBx|sRGBA|sBGRA|ABGR)\\b", 125 "name": "keyword.spirv" 126 }, 127 "ValueEnum_ImageChannelDataType": { 128 "match": "\\b(SnormInt8|SnormInt16|UnormInt8|UnormInt16|UnormShort565|UnormShort555|UnormInt101010|SignedInt8|SignedInt16|SignedInt32|UnsignedInt8|UnsignedInt16|UnsignedInt32|HalfFloat|Float|UnormInt24|UnormInt101010_2)\\b", 129 "name": "keyword.spirv" 130 }, 131 "ValueEnum_FPRoundingMode": { 132 "match": "\\b(RTE|RTZ|RTP|RTN)\\b", 133 "name": "keyword.spirv" 134 }, 135 "ValueEnum_LinkageType": { 136 "match": "\\b(Export|Import)\\b", 137 "name": "keyword.spirv" 138 }, 139 "ValueEnum_AccessQualifier": { 140 "match": "\\b(ReadOnly|WriteOnly|ReadWrite)\\b", 141 "name": "keyword.spirv" 142 }, 143 "ValueEnum_FunctionParameterAttribute": { 144 "match": "\\b(Zext|Sext|ByVal|Sret|NoAlias|NoCapture|NoWrite|NoReadWrite)\\b", 145 "name": "keyword.spirv" 146 }, 147 "ValueEnum_Decoration": { 148 "match": "\\b(RelaxedPrecision|SpecId|Block|BufferBlock|RowMajor|ColMajor|ArrayStride|MatrixStride|GLSLShared|GLSLPacked|CPacked|BuiltIn|NoPerspective|Flat|Patch|Centroid|Sample|Invariant|Restrict|Aliased|Volatile|Constant|Coherent|NonWritable|NonReadable|Uniform|UniformId|SaturatedConversion|Stream|Location|Component|Index|Binding|DescriptorSet|Offset|XfbBuffer|XfbStride|FuncParamAttr|FPRoundingMode|FPFastMathMode|LinkageAttributes|NoContraction|InputAttachmentIndex|Alignment|MaxByteOffset|AlignmentId|MaxByteOffsetId|NoSignedWrap|NoUnsignedWrap|ExplicitInterpAMD|OverrideCoverageNV|PassthroughNV|ViewportRelativeNV|SecondaryViewportRelativeNV|PerPrimitiveNV|PerViewNV|PerTaskNV|PerVertexNV|NonUniform|NonUniformEXT|RestrictPointer|RestrictPointerEXT|AliasedPointer|AliasedPointerEXT|CounterBuffer|HlslCounterBufferGOOGLE|UserSemantic|HlslSemanticGOOGLE|UserTypeGOOGLE)\\b", 149 "name": "keyword.spirv" 150 }, 151 "ValueEnum_BuiltIn": { 152 "match": "\\b(Position|PointSize|ClipDistance|CullDistance|VertexId|InstanceId|PrimitiveId|InvocationId|Layer|ViewportIndex|TessLevelOuter|TessLevelInner|TessCoord|PatchVertices|FragCoord|PointCoord|FrontFacing|SampleId|SamplePosition|SampleMask|FragDepth|HelperInvocation|NumWorkgroups|WorkgroupSize|WorkgroupId|LocalInvocationId|GlobalInvocationId|LocalInvocationIndex|WorkDim|GlobalSize|EnqueuedWorkgroupSize|GlobalOffset|GlobalLinearId|SubgroupSize|SubgroupMaxSize|NumSubgroups|NumEnqueuedSubgroups|SubgroupId|SubgroupLocalInvocationId|VertexIndex|InstanceIndex|SubgroupEqMask|SubgroupGeMask|SubgroupGtMask|SubgroupLeMask|SubgroupLtMask|SubgroupEqMaskKHR|SubgroupGeMaskKHR|SubgroupGtMaskKHR|SubgroupLeMaskKHR|SubgroupLtMaskKHR|BaseVertex|BaseInstance|DrawIndex|DeviceIndex|ViewIndex|BaryCoordNoPerspAMD|BaryCoordNoPerspCentroidAMD|BaryCoordNoPerspSampleAMD|BaryCoordSmoothAMD|BaryCoordSmoothCentroidAMD|BaryCoordSmoothSampleAMD|BaryCoordPullModelAMD|FragStencilRefEXT|ViewportMaskNV|SecondaryPositionNV|SecondaryViewportMaskNV|PositionPerViewNV|ViewportMaskPerViewNV|FullyCoveredEXT|TaskCountNV|PrimitiveCountNV|PrimitiveIndicesNV|ClipDistancePerViewNV|CullDistancePerViewNV|LayerPerViewNV|MeshViewCountNV|MeshViewIndicesNV|BaryCoordNV|BaryCoordNoPerspNV|FragSizeEXT|FragmentSizeNV|FragInvocationCountEXT|InvocationsPerPixelNV|LaunchIdNV|LaunchSizeNV|WorldRayOriginNV|WorldRayDirectionNV|ObjectRayOriginNV|ObjectRayDirectionNV|RayTminNV|RayTmaxNV|InstanceCustomIndexNV|ObjectToWorldNV|WorldToObjectNV|HitTNV|HitKindNV|IncomingRayFlagsNV|WarpsPerSMNV|SMCountNV|WarpIDNV|SMIDNV)\\b", 153 "name": "keyword.spirv" 154 }, 155 "ValueEnum_Scope": { 156 "match": "\\b(CrossDevice|Device|Workgroup|Subgroup|Invocation|QueueFamily|QueueFamilyKHR)\\b", 157 "name": "keyword.spirv" 158 }, 159 "ValueEnum_GroupOperation": { 160 "match": "\\b(Reduce|InclusiveScan|ExclusiveScan|ClusteredReduce|PartitionedReduceNV|PartitionedInclusiveScanNV|PartitionedExclusiveScanNV)\\b", 161 "name": "keyword.spirv" 162 }, 163 "ValueEnum_KernelEnqueueFlags": { 164 "match": "\\b(NoWait|WaitKernel|WaitWorkGroup)\\b", 165 "name": "keyword.spirv" 166 }, 167 "ValueEnum_Capability": { 168 "match": "\\b(Matrix|Shader|Geometry|Tessellation|Addresses|Linkage|Kernel|Vector16|Float16Buffer|Float16|Float64|Int64|Int64Atomics|ImageBasic|ImageReadWrite|ImageMipmap|Pipes|Groups|DeviceEnqueue|LiteralSampler|AtomicStorage|Int16|TessellationPointSize|GeometryPointSize|ImageGatherExtended|StorageImageMultisample|UniformBufferArrayDynamicIndexing|SampledImageArrayDynamicIndexing|StorageBufferArrayDynamicIndexing|StorageImageArrayDynamicIndexing|ClipDistance|CullDistance|ImageCubeArray|SampleRateShading|ImageRect|SampledRect|GenericPointer|Int8|InputAttachment|SparseResidency|MinLod|Sampled1D|Image1D|SampledCubeArray|SampledBuffer|ImageBuffer|ImageMSArray|StorageImageExtendedFormats|ImageQuery|DerivativeControl|InterpolationFunction|TransformFeedback|GeometryStreams|StorageImageReadWithoutFormat|StorageImageWriteWithoutFormat|MultiViewport|SubgroupDispatch|NamedBarrier|PipeStorage|GroupNonUniform|GroupNonUniformVote|GroupNonUniformArithmetic|GroupNonUniformBallot|GroupNonUniformShuffle|GroupNonUniformShuffleRelative|GroupNonUniformClustered|GroupNonUniformQuad|ShaderLayer|ShaderViewportIndex|SubgroupBallotKHR|DrawParameters|SubgroupVoteKHR|StorageBuffer16BitAccess|StorageUniformBufferBlock16|UniformAndStorageBuffer16BitAccess|StorageUniform16|StoragePushConstant16|StorageInputOutput16|DeviceGroup|MultiView|VariablePointersStorageBuffer|VariablePointers|AtomicStorageOps|SampleMaskPostDepthCoverage|StorageBuffer8BitAccess|UniformAndStorageBuffer8BitAccess|StoragePushConstant8|DenormPreserve|DenormFlushToZero|SignedZeroInfNanPreserve|RoundingModeRTE|RoundingModeRTZ|Float16ImageAMD|ImageGatherBiasLodAMD|FragmentMaskAMD|StencilExportEXT|ImageReadWriteLodAMD|ShaderClockKHR|SampleMaskOverrideCoverageNV|GeometryShaderPassthroughNV|ShaderViewportIndexLayerEXT|ShaderViewportIndexLayerNV|ShaderViewportMaskNV|ShaderStereoViewNV|PerViewAttributesNV|FragmentFullyCoveredEXT|MeshShadingNV|ImageFootprintNV|FragmentBarycentricNV|ComputeDerivativeGroupQuadsNV|FragmentDensityEXT|ShadingRateNV|GroupNonUniformPartitionedNV|ShaderNonUniform|ShaderNonUniformEXT|RuntimeDescriptorArray|RuntimeDescriptorArrayEXT|InputAttachmentArrayDynamicIndexing|InputAttachmentArrayDynamicIndexingEXT|UniformTexelBufferArrayDynamicIndexing|UniformTexelBufferArrayDynamicIndexingEXT|StorageTexelBufferArrayDynamicIndexing|StorageTexelBufferArrayDynamicIndexingEXT|UniformBufferArrayNonUniformIndexing|UniformBufferArrayNonUniformIndexingEXT|SampledImageArrayNonUniformIndexing|SampledImageArrayNonUniformIndexingEXT|StorageBufferArrayNonUniformIndexing|StorageBufferArrayNonUniformIndexingEXT|StorageImageArrayNonUniformIndexing|StorageImageArrayNonUniformIndexingEXT|InputAttachmentArrayNonUniformIndexing|InputAttachmentArrayNonUniformIndexingEXT|UniformTexelBufferArrayNonUniformIndexing|UniformTexelBufferArrayNonUniformIndexingEXT|StorageTexelBufferArrayNonUniformIndexing|StorageTexelBufferArrayNonUniformIndexingEXT|RayTracingNV|VulkanMemoryModel|VulkanMemoryModelKHR|VulkanMemoryModelDeviceScope|VulkanMemoryModelDeviceScopeKHR|PhysicalStorageBufferAddresses|PhysicalStorageBufferAddressesEXT|ComputeDerivativeGroupLinearNV|CooperativeMatrixNV|FragmentShaderSampleInterlockEXT|FragmentShaderShadingRateInterlockEXT|ShaderSMBuiltinsNV|FragmentShaderPixelInterlockEXT|DemoteToHelperInvocationEXT|SubgroupShuffleINTEL|SubgroupBufferBlockIOINTEL|SubgroupImageBlockIOINTEL|SubgroupImageMediaBlockIOINTEL|IntegerFunctions2INTEL|SubgroupAvcMotionEstimationINTEL|SubgroupAvcMotionEstimationIntraINTEL|SubgroupAvcMotionEstimationChromaINTEL)\\b", 169 "name": "keyword.spirv" 170 }, 171 "BitEnum_DebugInfoFlags": { 172 "match": "\\b(FlagIsProtected|FlagIsPrivate|FlagIsPublic|FlagIsLocal|FlagIsDefinition|FlagFwdDecl|FlagArtificial|FlagExplicit|FlagPrototyped|FlagObjectPointer|FlagStaticMember|FlagIndirectVariable|FlagLValueReference|FlagRValueReference|FlagIsOptimized|FlagIsEnumClass|FlagTypePassByValue|FlagTypePassByReference)\\b", 173 "name": "keyword.spirv" 174 }, 175 "ValueEnum_DebugBaseTypeAttributeEncoding": { 176 "match": "\\b(Unspecified|Address|Boolean|Float|Signed|SignedChar|Unsigned|UnsignedChar)\\b", 177 "name": "keyword.spirv" 178 }, 179 "ValueEnum_DebugCompositeType": { 180 "match": "\\b(Class|Structure|Union)\\b", 181 "name": "keyword.spirv" 182 }, 183 "ValueEnum_DebugTypeQualifier": { 184 "match": "\\b(ConstType|VolatileType|RestrictType|AtomicType)\\b", 185 "name": "keyword.spirv" 186 }, 187 "ValueEnum_DebugOperation": { 188 "match": "\\b(Deref|Plus|Minus|PlusUconst|BitPiece|Swap|Xderef|StackValue|Constu|Fragment)\\b", 189 "name": "keyword.spirv" 190 }, 191 "ValueEnum_DebugImportedEntity": { 192 "match": "\\b(ImportedModule|ImportedDeclaration)\\b", 193 "name": "keyword.spirv" 194 }, 195 "opcode": { 196 "match": "(Op[a-zA-Z]+)", 197 "name": "entity.name.function.spirv" 198 }, 199 "extopcode": { 200 "match": "(Round|RoundEven|Trunc|FAbs|SAbs|FSign|SSign|Floor|Ceil|Fract|Radians|Degrees|Sin|Cos|Tan|Asin|Acos|Atan|Sinh|Cosh|Tanh|Asinh|Acosh|Atanh|Atan2|Pow|Exp|Log|Exp2|Log2|Sqrt|InverseSqrt|Determinant|MatrixInverse|Modf|ModfStruct|FMin|UMin|SMin|FMax|UMax|SMax|FClamp|UClamp|SClamp|FMix|IMix|Step|SmoothStep|Fma|Frexp|FrexpStruct|Ldexp|PackSnorm4x8|PackUnorm4x8|PackSnorm2x16|PackUnorm2x16|PackHalf2x16|PackDouble2x32|UnpackSnorm2x16|UnpackUnorm2x16|UnpackHalf2x16|UnpackSnorm4x8|UnpackUnorm4x8|UnpackDouble2x32|Length|Distance|Cross|Normalize|FaceForward|Reflect|Refract|FindILsb|FindSMsb|FindUMsb|InterpolateAtCentroid|InterpolateAtSample|InterpolateAtOffset|NMin|NMax|NClamp|acos|acosh|acospi|asin|asinh|asinpi|atan|atan2|atanh|atanpi|atan2pi|cbrt|ceil|copysign|cos|cosh|cospi|erfc|erf|exp|exp2|exp10|expm1|fabs|fdim|floor|fma|fmax|fmin|fmod|fract|frexp|hypot|ilogb|ldexp|lgamma|lgamma_r|log|log2|log10|log1p|logb|mad|maxmag|minmag|modf|nan|nextafter|pow|pown|powr|remainder|remquo|rint|rootn|round|rsqrt|sin|sincos|sinh|sinpi|sqrt|tan|tanh|tanpi|tgamma|trunc|half_cos|half_divide|half_exp|half_exp2|half_exp10|half_log|half_log2|half_log10|half_powr|half_recip|half_rsqrt|half_sin|half_sqrt|half_tan|native_cos|native_divide|native_exp|native_exp2|native_exp10|native_log|native_log2|native_log10|native_powr|native_recip|native_rsqrt|native_sin|native_sqrt|native_tan|s_abs|s_abs_diff|s_add_sat|u_add_sat|s_hadd|u_hadd|s_rhadd|u_rhadd|s_clamp|u_clamp|clz|ctz|s_mad_hi|u_mad_sat|s_mad_sat|s_max|u_max|s_min|u_min|s_mul_hi|rotate|s_sub_sat|u_sub_sat|u_upsample|s_upsample|popcount|s_mad24|u_mad24|s_mul24|u_mul24|u_abs|u_abs_diff|u_mul_hi|u_mad_hi|fclamp|degrees|fmax_common|fmin_common|mix|radians|step|smoothstep|sign|cross|distance|length|normalize|fast_distance|fast_length|fast_normalize|bitselect|select|vloadn|vstoren|vload_half|vload_halfn|vstore_half|vstore_half_r|vstore_halfn|vstore_halfn_r|vloada_halfn|vstorea_halfn|vstorea_halfn_r|shuffle|shuffle2|printf|prefetch|DebugInfoNone|DebugCompilationUnit|DebugTypeBasic|DebugTypePointer|DebugTypeQualifier|DebugTypeArray|DebugTypeVector|DebugTypedef|DebugTypeFunction|DebugTypeEnum|DebugTypeComposite|DebugTypeMember|DebugTypeInheritance|DebugTypePtrToMember|DebugTypeTemplate|DebugTypeTemplateParameter|DebugTypeTemplateTemplateParameter|DebugTypeTemplateParameterPack|DebugGlobalVariable|DebugFunctionDeclaration|DebugFunction|DebugLexicalBlock|DebugLexicalBlockDiscriminator|DebugScope|DebugNoScope|DebugInlinedAt|DebugLocalVariable|DebugInlinedVariable|DebugDeclare|DebugValue|DebugOperation|DebugExpression|DebugMacroDef|DebugMacroUndef|DebugImportedEntity|DebugSource)", 201 "name": "entity.name.function.ext" 202 }, 203 "identifier": { 204 "match": "%[a-zA-Z0-9_]+", 205 "name": "variable.spirv" 206 }, 207 "number": { 208 "match": "\\b[0-9]+.?[0-9]*\\b", 209 "name": "constant.numeric.spirv" 210 }, 211 "comment": { 212 "match": ";[^\n]*", 213 "name": "comment.line.spirv" 214 }, 215 "operator": { 216 "match": "=", 217 "name": "keyword.operator.spirv" 218 }, 219 "string": { 220 "begin": "\"", 221 "beginCaptures": { 222 "0": { 223 "name": "punctuation.definition.string.begin.spirv" 224 } 225 }, 226 "end": "\"", 227 "endCaptures": { 228 "0": { 229 "name": "punctuation.definition.string.end.spirv" 230 } 231 }, 232 "name": "string.quoted.double.spirv", 233 "patterns": [ { "include": "#string_escaped_char" } ] 234 }, 235 "string_escaped_char": { 236 "patterns": [ 237 { 238 "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})", 239 "name": "constant.character.escape.spirv" 240 }, { 241 "match": "\\\\[^0-7xuUabfnrtv\\'\"]", 242 "name": "invalid.illegal.unknown-escape.spirv" 243 } 244 ] 245 } 246 } 247} 248