1{ 2 "revision" : 6, 3 "instructions" : [ 4 { 5 "opname" : "Kernel", 6 "opcode" : 1, 7 "operands" : [ 8 { "kind" : "IdRef", "name" : "Kernel" }, 9 { "kind" : "IdRef", "name" : "Name" }, 10 { "kind" : "IdRef", "name" : "NumArguments", "quantifier" : "?" }, 11 { "kind" : "IdRef", "name" : "Flags", "quantifier" : "?" }, 12 { "kind" : "IdRef", "name" : "Attributes", "quantifier" : "?" } 13 ] 14 }, 15 { 16 "opname" : "ArgumentInfo", 17 "opcode" : 2, 18 "operands" : [ 19 { "kind" : "IdRef", "name" : "Name" }, 20 { "kind" : "IdRef", "name" : "Type Name", "quantifier" : "?" }, 21 { "kind" : "IdRef", "name" : "Address Qualifier", "quantifier" : "?" }, 22 { "kind" : "IdRef", "name" : "Access Qualifier", "quantifier" : "?" }, 23 { "kind" : "IdRef", "name" : "Type Qualifier", "quantifier" : "?" } 24 ] 25 }, 26 { 27 "opname" : "ArgumentStorageBuffer", 28 "opcode" : 3, 29 "operands" : [ 30 { "kind" : "IdRef", "name" : "Decl" }, 31 { "kind" : "IdRef", "name" : "Ordinal" }, 32 { "kind" : "IdRef", "name" : "DescriptorSet" }, 33 { "kind" : "IdRef", "name" : "Binding" }, 34 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 35 ] 36 }, 37 { 38 "opname" : "ArgumentUniform", 39 "opcode" : 4, 40 "operands" : [ 41 { "kind" : "IdRef", "name" : "Decl" }, 42 { "kind" : "IdRef", "name" : "Ordinal" }, 43 { "kind" : "IdRef", "name" : "DescriptorSet" }, 44 { "kind" : "IdRef", "name" : "Binding" }, 45 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 46 ] 47 }, 48 { 49 "opname" : "ArgumentPodStorageBuffer", 50 "opcode" : 5, 51 "operands" : [ 52 { "kind" : "IdRef", "name" : "Decl" }, 53 { "kind" : "IdRef", "name" : "Ordinal" }, 54 { "kind" : "IdRef", "name" : "DescriptorSet" }, 55 { "kind" : "IdRef", "name" : "Binding" }, 56 { "kind" : "IdRef", "name" : "Offset" }, 57 { "kind" : "IdRef", "name" : "Size" }, 58 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 59 ] 60 }, 61 { 62 "opname" : "ArgumentPodUniform", 63 "opcode" : 6, 64 "operands" : [ 65 { "kind" : "IdRef", "name" : "Decl" }, 66 { "kind" : "IdRef", "name" : "Ordinal" }, 67 { "kind" : "IdRef", "name" : "DescriptorSet" }, 68 { "kind" : "IdRef", "name" : "Binding" }, 69 { "kind" : "IdRef", "name" : "Offset" }, 70 { "kind" : "IdRef", "name" : "Size" }, 71 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 72 ] 73 }, 74 { 75 "opname" : "ArgumentPodPushConstant", 76 "opcode" : 7, 77 "operands" : [ 78 { "kind" : "IdRef", "name" : "Decl" }, 79 { "kind" : "IdRef", "name" : "Ordinal" }, 80 { "kind" : "IdRef", "name" : "Offset" }, 81 { "kind" : "IdRef", "name" : "Size" }, 82 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 83 ] 84 }, 85 { 86 "opname" : "ArgumentSampledImage", 87 "opcode" : 8, 88 "operands" : [ 89 { "kind" : "IdRef", "name" : "Decl" }, 90 { "kind" : "IdRef", "name" : "Ordinal" }, 91 { "kind" : "IdRef", "name" : "DescriptorSet" }, 92 { "kind" : "IdRef", "name" : "Binding" }, 93 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 94 ] 95 }, 96 { 97 "opname" : "ArgumentStorageImage", 98 "opcode" : 9, 99 "operands" : [ 100 { "kind" : "IdRef", "name" : "Decl" }, 101 { "kind" : "IdRef", "name" : "Ordinal" }, 102 { "kind" : "IdRef", "name" : "DescriptorSet" }, 103 { "kind" : "IdRef", "name" : "Binding" }, 104 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 105 ] 106 }, 107 { 108 "opname" : "ArgumentSampler", 109 "opcode" : 10, 110 "operands" : [ 111 { "kind" : "IdRef", "name" : "Decl" }, 112 { "kind" : "IdRef", "name" : "Ordinal" }, 113 { "kind" : "IdRef", "name" : "DescriptorSet" }, 114 { "kind" : "IdRef", "name" : "Binding" }, 115 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 116 ] 117 }, 118 { 119 "opname" : "ArgumentWorkgroup", 120 "opcode" : 11, 121 "operands" : [ 122 { "kind" : "IdRef", "name" : "Decl" }, 123 { "kind" : "IdRef", "name" : "Ordinal" }, 124 { "kind" : "IdRef", "name" : "SpecId" }, 125 { "kind" : "IdRef", "name" : "ElemSize" }, 126 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 127 ] 128 }, 129 { 130 "opname" : "SpecConstantWorkgroupSize", 131 "opcode" : 12, 132 "operands" : [ 133 { "kind" : "IdRef", "name" : "X" }, 134 { "kind" : "IdRef", "name" : "Y" }, 135 { "kind" : "IdRef", "name" : "Z" } 136 ] 137 }, 138 { 139 "opname" : "SpecConstantGlobalOffset", 140 "opcode" : 13, 141 "operands" : [ 142 { "kind" : "IdRef", "name" : "X" }, 143 { "kind" : "IdRef", "name" : "Y" }, 144 { "kind" : "IdRef", "name" : "Z" } 145 ] 146 }, 147 { 148 "opname" : "SpecConstantWorkDim", 149 "opcode" : 14, 150 "operands" : [ 151 { "kind" : "IdRef", "name" : "Dim" } 152 ] 153 }, 154 { 155 "opname" : "PushConstantGlobalOffset", 156 "opcode" : 15, 157 "operands" : [ 158 { "kind" : "IdRef", "name" : "Offset" }, 159 { "kind" : "IdRef", "name" : "Size" } 160 ] 161 }, 162 { 163 "opname" : "PushConstantEnqueuedLocalSize", 164 "opcode" : 16, 165 "operands" : [ 166 { "kind" : "IdRef", "name" : "Offset" }, 167 { "kind" : "IdRef", "name" : "Size" } 168 ] 169 }, 170 { 171 "opname" : "PushConstantGlobalSize", 172 "opcode" : 17, 173 "operands" : [ 174 { "kind" : "IdRef", "name" : "Offset" }, 175 { "kind" : "IdRef", "name" : "Size" } 176 ] 177 }, 178 { 179 "opname" : "PushConstantRegionOffset", 180 "opcode" : 18, 181 "operands" : [ 182 { "kind" : "IdRef", "name" : "Offset" }, 183 { "kind" : "IdRef", "name" : "Size" } 184 ] 185 }, 186 { 187 "opname" : "PushConstantNumWorkgroups", 188 "opcode" : 19, 189 "operands" : [ 190 { "kind" : "IdRef", "name" : "Offset" }, 191 { "kind" : "IdRef", "name" : "Size" } 192 ] 193 }, 194 { 195 "opname" : "PushConstantRegionGroupOffset", 196 "opcode" : 20, 197 "operands" : [ 198 { "kind" : "IdRef", "name" : "Offset" }, 199 { "kind" : "IdRef", "name" : "Size" } 200 ] 201 }, 202 { 203 "opname" : "ConstantDataStorageBuffer", 204 "opcode" : 21, 205 "operands" : [ 206 { "kind" : "IdRef", "name" : "DescriptorSet" }, 207 { "kind" : "IdRef", "name" : "Binding" }, 208 { "kind" : "IdRef", "name" : "Data" } 209 ] 210 }, 211 { 212 "opname" : "ConstantDataUniform", 213 "opcode" : 22, 214 "operands" : [ 215 { "kind" : "IdRef", "name" : "DescriptorSet" }, 216 { "kind" : "IdRef", "name" : "Binding" }, 217 { "kind" : "IdRef", "name" : "Data" } 218 ] 219 }, 220 { 221 "opname" : "LiteralSampler", 222 "opcode" : 23, 223 "operands" : [ 224 { "kind" : "IdRef", "name" : "DescriptorSet" }, 225 { "kind" : "IdRef", "name" : "Binding" }, 226 { "kind" : "IdRef", "name" : "Mask" } 227 ] 228 }, 229 { 230 "opname" : "PropertyRequiredWorkgroupSize", 231 "opcode" : 24, 232 "operands" : [ 233 { "kind" : "IdRef", "name" : "Kernel" }, 234 { "kind" : "IdRef", "name" : "X" }, 235 { "kind" : "IdRef", "name" : "Y" }, 236 { "kind" : "IdRef", "name" : "Z" } 237 ] 238 }, 239 { 240 "opname" : "SpecConstantSubgroupMaxSize", 241 "opcode" : 25, 242 "operands" : [ 243 { "kind" : "IdRef", "name" : "Size" } 244 ] 245 }, 246 { 247 "opname" : "ArgumentPointerPushConstant", 248 "opcode" : 26, 249 "operands": [ 250 { "kind" : "IdRef", "name" : "Kernel" }, 251 { "kind" : "IdRef", "name" : "Ordinal" }, 252 { "kind" : "IdRef", "name" : "Offset" }, 253 { "kind" : "IdRef", "name" : "Size" }, 254 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 255 ] 256 }, 257 { 258 "opname" : "ArgumentPointerUniform", 259 "opcode" : 27, 260 "operands": [ 261 { "kind" : "IdRef", "name" : "Kernel" }, 262 { "kind" : "IdRef", "name" : "Ordinal" }, 263 { "kind" : "IdRef", "name" : "DescriptorSet" }, 264 { "kind" : "IdRef", "name" : "Binding" }, 265 { "kind" : "IdRef", "name" : "Offset" }, 266 { "kind" : "IdRef", "name" : "Size" }, 267 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 268 ] 269 }, 270 { 271 "opname" : "ProgramScopeVariablesStorageBuffer", 272 "opcode" : 28, 273 "operands": [ 274 { "kind" : "IdRef", "name" : "DescriptorSet" }, 275 { "kind" : "IdRef", "name" : "Binding" }, 276 { "kind" : "IdRef", "name" : "Data" } 277 ] 278 }, 279 { 280 "opname" : "ProgramScopeVariablePointerRelocation", 281 "opcode" : 29, 282 "operands": [ 283 { "kind" : "IdRef", "name" : "ObjectOffset" }, 284 { "kind" : "IdRef", "name" : "PointerOffset" }, 285 { "kind" : "IdRef", "name" : "PointerSize" } 286 ] 287 }, 288 { 289 "opname" : "ImageArgumentInfoChannelOrderPushConstant", 290 "opcode" : 30, 291 "operands": [ 292 { "kind" : "IdRef", "name" : "Kernel" }, 293 { "kind" : "IdRef", "name" : "Ordinal" }, 294 { "kind" : "IdRef", "name" : "Offset" }, 295 { "kind" : "IdRef", "name" : "Size" } 296 ] 297 }, 298 { 299 "opname" : "ImageArgumentInfoChannelDataTypePushConstant", 300 "opcode" : 31, 301 "operands": [ 302 { "kind" : "IdRef", "name" : "Kernel" }, 303 { "kind" : "IdRef", "name" : "Ordinal" }, 304 { "kind" : "IdRef", "name" : "Offset" }, 305 { "kind" : "IdRef", "name" : "Size" } 306 ] 307 }, 308 { 309 "opname" : "ImageArgumentInfoChannelOrderUniform", 310 "opcode" : 32, 311 "operands": [ 312 { "kind" : "IdRef", "name" : "Kernel" }, 313 { "kind" : "IdRef", "name" : "Ordinal" }, 314 { "kind" : "IdRef", "name" : "DescriptorSet" }, 315 { "kind" : "IdRef", "name" : "Binding" }, 316 { "kind" : "IdRef", "name" : "Offset" }, 317 { "kind" : "IdRef", "name" : "Size" } 318 ] 319 }, 320 { 321 "opname" : "ImageArgumentInfoChannelDataTypeUniform", 322 "opcode" : 33, 323 "operands": [ 324 { "kind" : "IdRef", "name" : "Kernel" }, 325 { "kind" : "IdRef", "name" : "Ordinal" }, 326 { "kind" : "IdRef", "name" : "DescriptorSet" }, 327 { "kind" : "IdRef", "name" : "Binding" }, 328 { "kind" : "IdRef", "name" : "Offset" }, 329 { "kind" : "IdRef", "name" : "Size" } 330 ] 331 }, 332 { 333 "opname" : "ArgumentStorageTexelBuffer", 334 "opcode" : 34, 335 "operands" : [ 336 { "kind" : "IdRef", "name" : "Decl" }, 337 { "kind" : "IdRef", "name" : "Ordinal" }, 338 { "kind" : "IdRef", "name" : "DescriptorSet" }, 339 { "kind" : "IdRef", "name" : "Binding" }, 340 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 341 ] 342 }, 343 { 344 "opname" : "ArgumentUniformTexelBuffer", 345 "opcode" : 35, 346 "operands" : [ 347 { "kind" : "IdRef", "name" : "Decl" }, 348 { "kind" : "IdRef", "name" : "Ordinal" }, 349 { "kind" : "IdRef", "name" : "DescriptorSet" }, 350 { "kind" : "IdRef", "name" : "Binding" }, 351 { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" } 352 ] 353 }, 354 { 355 "opname" : "ConstantDataPointerPushConstant", 356 "opcode" : 36, 357 "operands" : [ 358 { "kind" : "IdRef", "name" : "Offset"}, 359 { "kind" : "IdRef", "name" : "Size"}, 360 { "kind" : "IdRef", "name" : "Data" } 361 ] 362 }, 363 { 364 "opname" : "ProgramScopeVariablePointerPushConstant", 365 "opcode" : 37, 366 "operands" : [ 367 { "kind" : "IdRef", "name" : "Offset"}, 368 { "kind" : "IdRef", "name" : "Size"}, 369 { "kind" : "IdRef", "name" : "Data" } 370 ] 371 }, 372 { 373 "opname" : "PrintfInfo", 374 "opcode" : 38, 375 "operands" : [ 376 { "kind" : "IdRef", "name" : "PrintfID" }, 377 { "kind" : "IdRef", "name" : "FormatString" }, 378 { "kind" : "IdRef", "quantifier" : "*", "name" : "ArgumentSizes"} 379 ] 380 }, 381 { 382 "opname" : "PrintfBufferStorageBuffer", 383 "opcode" : 39, 384 "operands" : [ 385 { "kind" : "IdRef", "name" : "DescriptorSet" }, 386 { "kind" : "IdRef", "name" : "Binding" }, 387 { "kind" : "IdRef", "name" : "BufferSize"} 388 ] 389 }, 390 { 391 "opname" : "PrintfBufferPointerPushConstant", 392 "opcode" : 40, 393 "operands" : [ 394 { "kind" : "IdRef", "name" : "Offset" }, 395 { "kind" : "IdRef", "name" : "Size"}, 396 { "kind" : "IdRef", "name" : "BufferSize"} 397 ] 398 }, 399 { 400 "opname" : "NormalizedSamplerMaskPushConstant", 401 "opcode" : 41, 402 "operands" : [ 403 { "kind" : "IdRef", "name" : "Kernel" }, 404 { "kind" : "IdRef", "name" : "Ordinal" }, 405 { "kind" : "IdRef", "name" : "Offset" }, 406 { "kind" : "IdRef", "name" : "Size" } 407 ] 408 } 409 ], 410 "operand_kinds" : [ 411 { 412 "category" : "BitEnum", 413 "kind" : "KernelPropertyFlags", 414 "enumerants" : [ 415 { 416 "enumerant" : "None", 417 "value" : "0x0" 418 }, 419 { 420 "enumerant" : "MayUsePrintf", 421 "value" : "0x1" 422 } 423 ] 424 } 425 ] 426} 427