| ... | ... | @@ -1,8 +1,46 @@ |
| 1 | 1 | //! This file is auto-generated by tools/gen_spirv_spec.zig. |
| 2 | 2 | |
| 3 | 3 | const Version = @import("std").builtin.Version; |
| 4 | |
| 5 | pub const Word = u32; |
| 6 | pub const IdResultType = struct { |
| 7 | id: Word, |
| 8 | pub fn toRef(self: IdResultType) IdRef { |
| 9 | return .{ .id = self.id }; |
| 10 | } |
| 11 | }; |
| 12 | pub const IdResult = struct { |
| 13 | id: Word, |
| 14 | pub fn toRef(self: IdResult) IdRef { |
| 15 | return .{ .id = self.id }; |
| 16 | } |
| 17 | pub fn toResultType(self: IdResult) IdResultType { |
| 18 | return .{ .id = self.id }; |
| 19 | } |
| 20 | }; |
| 21 | pub const IdRef = struct { id: Word }; |
| 22 | |
| 23 | pub const IdMemorySemantics = IdRef; |
| 24 | pub const IdScope = IdRef; |
| 25 | |
| 26 | pub const LiteralInteger = Word; |
| 27 | pub const LiteralString = []const u8; |
| 28 | pub const LiteralContextDependentNumber = union(enum) { |
| 29 | int32: i32, |
| 30 | uint32: u32, |
| 31 | int64: i64, |
| 32 | uint64: u64, |
| 33 | float32: f32, |
| 34 | float64: f64, |
| 35 | }; |
| 36 | pub const LiteralExtInstInteger = struct { inst: Word }; |
| 37 | pub const LiteralSpecConstantOpInteger = struct { opcode: Opcode }; |
| 38 | pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: IdRef }; |
| 39 | pub const PairIdRefLiteralInteger = struct { target: IdRef, member: LiteralInteger }; |
| 40 | pub const PairIdRefIdRef = [2]IdRef; |
| 41 | |
| 4 | 42 | pub const version = Version{ .major = 1, .minor = 5, .patch = 4 }; |
| 5 | | pub const magic_number: u32 = 0x07230203; |
| 43 | pub const magic_number: Word = 0x07230203; |
| 6 | 44 | pub const Opcode = enum(u16) { |
| 7 | 45 | OpNop = 0, |
| 8 | 46 | OpUndef = 1, |
| ... | ... | @@ -381,11 +419,11 @@ pub const Opcode = enum(u16) { |
| 381 | 419 | OpImageSampleFootprintNV = 5283, |
| 382 | 420 | OpGroupNonUniformPartitionNV = 5296, |
| 383 | 421 | OpWritePackedPrimitiveIndices4x8NV = 5299, |
| 384 | | OpReportIntersectionNV = 5334, |
| 422 | OpReportIntersectionKHR = 5334, |
| 385 | 423 | OpIgnoreIntersectionNV = 5335, |
| 386 | 424 | OpTerminateRayNV = 5336, |
| 387 | 425 | OpTraceNV = 5337, |
| 388 | | OpTypeAccelerationStructureNV = 5341, |
| 426 | OpTypeAccelerationStructureKHR = 5341, |
| 389 | 427 | OpExecuteCallableNV = 5344, |
| 390 | 428 | OpTypeCooperativeMatrixNV = 5358, |
| 391 | 429 | OpCooperativeMatrixLoadNV = 5359, |
| ... | ... | @@ -580,10 +618,592 @@ pub const Opcode = enum(u16) { |
| 580 | 618 | OpTypeStructContinuedINTEL = 6090, |
| 581 | 619 | OpConstantCompositeContinuedINTEL = 6091, |
| 582 | 620 | OpSpecConstantCompositeContinuedINTEL = 6092, |
| 583 | | _, |
| 584 | 621 | |
| 585 | | const OpReportIntersectionKHR: Opcode = .OpReportIntersectionNV; |
| 586 | | const OpTypeAccelerationStructureKHR: Opcode = .OpTypeAccelerationStructureNV; |
| 622 | pub const OpReportIntersectionNV = Opcode.OpReportIntersectionKHR; |
| 623 | pub const OpTypeAccelerationStructureNV = Opcode.OpTypeAccelerationStructureKHR; |
| 624 | pub const OpDecorateStringGOOGLE = Opcode.OpDecorateString; |
| 625 | pub const OpMemberDecorateStringGOOGLE = Opcode.OpMemberDecorateString; |
| 626 | |
| 627 | pub fn Operands(comptime self: Opcode) type { |
| 628 | return switch (self) { |
| 629 | .OpNop => void, |
| 630 | .OpUndef => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 631 | .OpSourceContinued => struct { continued_source: LiteralString }, |
| 632 | .OpSource => struct { source_language: SourceLanguage, version: LiteralInteger, file: ?IdRef = null, source: ?LiteralString = null }, |
| 633 | .OpSourceExtension => struct { extension: LiteralString }, |
| 634 | .OpName => struct { target: IdRef, name: LiteralString }, |
| 635 | .OpMemberName => struct { type: IdRef, member: LiteralInteger, name: LiteralString }, |
| 636 | .OpString => struct { id_result: IdResult, string: LiteralString }, |
| 637 | .OpLine => struct { file: IdRef, line: LiteralInteger, column: LiteralInteger }, |
| 638 | .OpExtension => struct { name: LiteralString }, |
| 639 | .OpExtInstImport => struct { id_result: IdResult, name: LiteralString }, |
| 640 | .OpExtInst => struct { id_result_type: IdResultType, id_result: IdResult, set: IdRef, instruction: LiteralExtInstInteger, id_ref_4: []const IdRef = &.{} }, |
| 641 | .OpMemoryModel => struct { addressing_model: AddressingModel, memory_model: MemoryModel }, |
| 642 | .OpEntryPoint => struct { execution_model: ExecutionModel, entry_point: IdRef, name: LiteralString, interface: []const IdRef = &.{} }, |
| 643 | .OpExecutionMode => struct { entry_point: IdRef, mode: ExecutionMode.Extended }, |
| 644 | .OpCapability => struct { capability: Capability }, |
| 645 | .OpTypeVoid => struct { id_result: IdResult }, |
| 646 | .OpTypeBool => struct { id_result: IdResult }, |
| 647 | .OpTypeInt => struct { id_result: IdResult, width: LiteralInteger, signedness: LiteralInteger }, |
| 648 | .OpTypeFloat => struct { id_result: IdResult, width: LiteralInteger }, |
| 649 | .OpTypeVector => struct { id_result: IdResult, component_type: IdRef, component_count: LiteralInteger }, |
| 650 | .OpTypeMatrix => struct { id_result: IdResult, column_type: IdRef, column_count: LiteralInteger }, |
| 651 | .OpTypeImage => struct { id_result: IdResult, sampled_type: IdRef, dim: Dim, depth: LiteralInteger, arrayed: LiteralInteger, ms: LiteralInteger, sampled: LiteralInteger, image_format: ImageFormat, access_qualifier: ?AccessQualifier = null }, |
| 652 | .OpTypeSampler => struct { id_result: IdResult }, |
| 653 | .OpTypeSampledImage => struct { id_result: IdResult, image_type: IdRef }, |
| 654 | .OpTypeArray => struct { id_result: IdResult, element_type: IdRef, length: IdRef }, |
| 655 | .OpTypeRuntimeArray => struct { id_result: IdResult, element_type: IdRef }, |
| 656 | .OpTypeStruct => struct { id_result: IdResult, id_ref: []const IdRef = &.{} }, |
| 657 | .OpTypeOpaque => struct { id_result: IdResult, literal_string: LiteralString }, |
| 658 | .OpTypePointer => struct { id_result: IdResult, storage_class: StorageClass, type: IdRef }, |
| 659 | .OpTypeFunction => struct { id_result: IdResult, return_type: IdRef, id_ref_2: []const IdRef = &.{} }, |
| 660 | .OpTypeEvent => struct { id_result: IdResult }, |
| 661 | .OpTypeDeviceEvent => struct { id_result: IdResult }, |
| 662 | .OpTypeReserveId => struct { id_result: IdResult }, |
| 663 | .OpTypeQueue => struct { id_result: IdResult }, |
| 664 | .OpTypePipe => struct { id_result: IdResult, qualifier: AccessQualifier }, |
| 665 | .OpTypeForwardPointer => struct { pointer_type: IdRef, storage_class: StorageClass }, |
| 666 | .OpConstantTrue => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 667 | .OpConstantFalse => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 668 | .OpConstant => struct { id_result_type: IdResultType, id_result: IdResult, value: LiteralContextDependentNumber }, |
| 669 | .OpConstantComposite => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} }, |
| 670 | .OpConstantSampler => struct { id_result_type: IdResultType, id_result: IdResult, sampler_addressing_mode: SamplerAddressingMode, param: LiteralInteger, sampler_filter_mode: SamplerFilterMode }, |
| 671 | .OpConstantNull => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 672 | .OpSpecConstantTrue => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 673 | .OpSpecConstantFalse => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 674 | .OpSpecConstant => struct { id_result_type: IdResultType, id_result: IdResult, value: LiteralContextDependentNumber }, |
| 675 | .OpSpecConstantComposite => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} }, |
| 676 | .OpSpecConstantOp => struct { id_result_type: IdResultType, id_result: IdResult, opcode: LiteralSpecConstantOpInteger }, |
| 677 | .OpFunction => struct { id_result_type: IdResultType, id_result: IdResult, function_control: FunctionControl, function_type: IdRef }, |
| 678 | .OpFunctionParameter => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 679 | .OpFunctionEnd => void, |
| 680 | .OpFunctionCall => struct { id_result_type: IdResultType, id_result: IdResult, function: IdRef, id_ref_3: []const IdRef = &.{} }, |
| 681 | .OpVariable => struct { id_result_type: IdResultType, id_result: IdResult, storage_class: StorageClass, initializer: ?IdRef = null }, |
| 682 | .OpImageTexelPointer => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, sample: IdRef }, |
| 683 | .OpLoad => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory_access: ?MemoryAccess.Extended = null }, |
| 684 | .OpStore => struct { pointer: IdRef, object: IdRef, memory_access: ?MemoryAccess.Extended = null }, |
| 685 | .OpCopyMemory => struct { target: IdRef, source: IdRef, memory_access_2: ?MemoryAccess.Extended = null, memory_access_3: ?MemoryAccess.Extended = null }, |
| 686 | .OpCopyMemorySized => struct { target: IdRef, source: IdRef, size: IdRef, memory_access_3: ?MemoryAccess.Extended = null, memory_access_4: ?MemoryAccess.Extended = null }, |
| 687 | .OpAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, indexes: []const IdRef = &.{} }, |
| 688 | .OpInBoundsAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, indexes: []const IdRef = &.{} }, |
| 689 | .OpPtrAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, element: IdRef, indexes: []const IdRef = &.{} }, |
| 690 | .OpArrayLength => struct { id_result_type: IdResultType, id_result: IdResult, structure: IdRef, array_member: LiteralInteger }, |
| 691 | .OpGenericPtrMemSemantics => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, |
| 692 | .OpInBoundsPtrAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, element: IdRef, indexes: []const IdRef = &.{} }, |
| 693 | .OpDecorate => struct { target: IdRef, decoration: Decoration.Extended }, |
| 694 | .OpMemberDecorate => struct { structure_type: IdRef, member: LiteralInteger, decoration: Decoration.Extended }, |
| 695 | .OpDecorationGroup => struct { id_result: IdResult }, |
| 696 | .OpGroupDecorate => struct { decoration_group: IdRef, targets: []const IdRef = &.{} }, |
| 697 | .OpGroupMemberDecorate => struct { decoration_group: IdRef, targets: []const PairIdRefLiteralInteger = &.{} }, |
| 698 | .OpVectorExtractDynamic => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, index: IdRef }, |
| 699 | .OpVectorInsertDynamic => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, component: IdRef, index: IdRef }, |
| 700 | .OpVectorShuffle => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, components: []const LiteralInteger = &.{} }, |
| 701 | .OpCompositeConstruct => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} }, |
| 702 | .OpCompositeExtract => struct { id_result_type: IdResultType, id_result: IdResult, composite: IdRef, indexes: []const LiteralInteger = &.{} }, |
| 703 | .OpCompositeInsert => struct { id_result_type: IdResultType, id_result: IdResult, object: IdRef, composite: IdRef, indexes: []const LiteralInteger = &.{} }, |
| 704 | .OpCopyObject => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 705 | .OpTranspose => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef }, |
| 706 | .OpSampledImage => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, sampler: IdRef }, |
| 707 | .OpImageSampleImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 708 | .OpImageSampleExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, |
| 709 | .OpImageSampleDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 710 | .OpImageSampleDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, |
| 711 | .OpImageSampleProjImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 712 | .OpImageSampleProjExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, |
| 713 | .OpImageSampleProjDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 714 | .OpImageSampleProjDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, |
| 715 | .OpImageFetch => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 716 | .OpImageGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, component: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 717 | .OpImageDrefGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 718 | .OpImageRead => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 719 | .OpImageWrite => struct { image: IdRef, coordinate: IdRef, texel: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 720 | .OpImage => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef }, |
| 721 | .OpImageQueryFormat => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, |
| 722 | .OpImageQueryOrder => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, |
| 723 | .OpImageQuerySizeLod => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, level_of_detail: IdRef }, |
| 724 | .OpImageQuerySize => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, |
| 725 | .OpImageQueryLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef }, |
| 726 | .OpImageQueryLevels => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, |
| 727 | .OpImageQuerySamples => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, |
| 728 | .OpConvertFToU => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef }, |
| 729 | .OpConvertFToS => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef }, |
| 730 | .OpConvertSToF => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef }, |
| 731 | .OpConvertUToF => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef }, |
| 732 | .OpUConvert => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef }, |
| 733 | .OpSConvert => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef }, |
| 734 | .OpFConvert => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef }, |
| 735 | .OpQuantizeToF16 => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef }, |
| 736 | .OpConvertPtrToU => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, |
| 737 | .OpSatConvertSToU => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef }, |
| 738 | .OpSatConvertUToS => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef }, |
| 739 | .OpConvertUToPtr => struct { id_result_type: IdResultType, id_result: IdResult, integer_value: IdRef }, |
| 740 | .OpPtrCastToGeneric => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, |
| 741 | .OpGenericCastToPtr => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, |
| 742 | .OpGenericCastToPtrExplicit => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, storage: StorageClass }, |
| 743 | .OpBitcast => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 744 | .OpSNegate => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 745 | .OpFNegate => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 746 | .OpIAdd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 747 | .OpFAdd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 748 | .OpISub => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 749 | .OpFSub => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 750 | .OpIMul => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 751 | .OpFMul => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 752 | .OpUDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 753 | .OpSDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 754 | .OpFDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 755 | .OpUMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 756 | .OpSRem => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 757 | .OpSMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 758 | .OpFRem => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 759 | .OpFMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 760 | .OpVectorTimesScalar => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, scalar: IdRef }, |
| 761 | .OpMatrixTimesScalar => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef, scalar: IdRef }, |
| 762 | .OpVectorTimesMatrix => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, matrix: IdRef }, |
| 763 | .OpMatrixTimesVector => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef, vector: IdRef }, |
| 764 | .OpMatrixTimesMatrix => struct { id_result_type: IdResultType, id_result: IdResult, leftmatrix: IdRef, rightmatrix: IdRef }, |
| 765 | .OpOuterProduct => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef }, |
| 766 | .OpDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef }, |
| 767 | .OpIAddCarry => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 768 | .OpISubBorrow => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 769 | .OpUMulExtended => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 770 | .OpSMulExtended => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 771 | .OpAny => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef }, |
| 772 | .OpAll => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef }, |
| 773 | .OpIsNan => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, |
| 774 | .OpIsInf => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, |
| 775 | .OpIsFinite => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, |
| 776 | .OpIsNormal => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, |
| 777 | .OpSignBitSet => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, |
| 778 | .OpLessOrGreater => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef }, |
| 779 | .OpOrdered => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef }, |
| 780 | .OpUnordered => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef }, |
| 781 | .OpLogicalEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 782 | .OpLogicalNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 783 | .OpLogicalOr => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 784 | .OpLogicalAnd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 785 | .OpLogicalNot => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 786 | .OpSelect => struct { id_result_type: IdResultType, id_result: IdResult, condition: IdRef, object_1: IdRef, object_2: IdRef }, |
| 787 | .OpIEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 788 | .OpINotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 789 | .OpUGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 790 | .OpSGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 791 | .OpUGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 792 | .OpSGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 793 | .OpULessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 794 | .OpSLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 795 | .OpULessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 796 | .OpSLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 797 | .OpFOrdEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 798 | .OpFUnordEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 799 | .OpFOrdNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 800 | .OpFUnordNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 801 | .OpFOrdLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 802 | .OpFUnordLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 803 | .OpFOrdGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 804 | .OpFUnordGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 805 | .OpFOrdLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 806 | .OpFUnordLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 807 | .OpFOrdGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 808 | .OpFUnordGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 809 | .OpShiftRightLogical => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef }, |
| 810 | .OpShiftRightArithmetic => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef }, |
| 811 | .OpShiftLeftLogical => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef }, |
| 812 | .OpBitwiseOr => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 813 | .OpBitwiseXor => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 814 | .OpBitwiseAnd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 815 | .OpNot => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 816 | .OpBitFieldInsert => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, insert: IdRef, offset: IdRef, count: IdRef }, |
| 817 | .OpBitFieldSExtract => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, offset: IdRef, count: IdRef }, |
| 818 | .OpBitFieldUExtract => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, offset: IdRef, count: IdRef }, |
| 819 | .OpBitReverse => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef }, |
| 820 | .OpBitCount => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef }, |
| 821 | .OpDPdx => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 822 | .OpDPdy => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 823 | .OpFwidth => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 824 | .OpDPdxFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 825 | .OpDPdyFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 826 | .OpFwidthFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 827 | .OpDPdxCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 828 | .OpDPdyCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 829 | .OpFwidthCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, |
| 830 | .OpEmitVertex => void, |
| 831 | .OpEndPrimitive => void, |
| 832 | .OpEmitStreamVertex => struct { stream: IdRef }, |
| 833 | .OpEndStreamPrimitive => struct { stream: IdRef }, |
| 834 | .OpControlBarrier => struct { execution: IdScope, memory: IdScope, semantics: IdMemorySemantics }, |
| 835 | .OpMemoryBarrier => struct { memory: IdScope, semantics: IdMemorySemantics }, |
| 836 | .OpAtomicLoad => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, |
| 837 | .OpAtomicStore => struct { pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 838 | .OpAtomicExchange => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 839 | .OpAtomicCompareExchange => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, equal: IdMemorySemantics, unequal: IdMemorySemantics, value: IdRef, comparator: IdRef }, |
| 840 | .OpAtomicCompareExchangeWeak => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, equal: IdMemorySemantics, unequal: IdMemorySemantics, value: IdRef, comparator: IdRef }, |
| 841 | .OpAtomicIIncrement => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, |
| 842 | .OpAtomicIDecrement => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, |
| 843 | .OpAtomicIAdd => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 844 | .OpAtomicISub => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 845 | .OpAtomicSMin => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 846 | .OpAtomicUMin => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 847 | .OpAtomicSMax => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 848 | .OpAtomicUMax => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 849 | .OpAtomicAnd => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 850 | .OpAtomicOr => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 851 | .OpAtomicXor => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 852 | .OpPhi => struct { id_result_type: IdResultType, id_result: IdResult, pair_id_ref_id_ref: []const PairIdRefIdRef = &.{} }, |
| 853 | .OpLoopMerge => struct { merge_block: IdRef, continue_target: IdRef, loop_control: LoopControl.Extended }, |
| 854 | .OpSelectionMerge => struct { merge_block: IdRef, selection_control: SelectionControl }, |
| 855 | .OpLabel => struct { id_result: IdResult }, |
| 856 | .OpBranch => struct { target_label: IdRef }, |
| 857 | .OpBranchConditional => struct { condition: IdRef, true_label: IdRef, false_label: IdRef, branch_weights: []const LiteralInteger = &.{} }, |
| 858 | .OpSwitch => struct { selector: IdRef, default: IdRef, target: []const PairLiteralIntegerIdRef = &.{} }, |
| 859 | .OpKill => void, |
| 860 | .OpReturn => void, |
| 861 | .OpReturnValue => struct { value: IdRef }, |
| 862 | .OpUnreachable => void, |
| 863 | .OpLifetimeStart => struct { pointer: IdRef, size: LiteralInteger }, |
| 864 | .OpLifetimeStop => struct { pointer: IdRef, size: LiteralInteger }, |
| 865 | .OpGroupAsyncCopy => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, destination: IdRef, source: IdRef, num_elements: IdRef, stride: IdRef, event: IdRef }, |
| 866 | .OpGroupWaitEvents => struct { execution: IdScope, num_events: IdRef, events_list: IdRef }, |
| 867 | .OpGroupAll => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, |
| 868 | .OpGroupAny => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, |
| 869 | .OpGroupBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, localid: IdRef }, |
| 870 | .OpGroupIAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 871 | .OpGroupFAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 872 | .OpGroupFMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 873 | .OpGroupUMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 874 | .OpGroupSMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 875 | .OpGroupFMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 876 | .OpGroupUMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 877 | .OpGroupSMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 878 | .OpReadPipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 879 | .OpWritePipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 880 | .OpReservedReadPipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, reserve_id: IdRef, index: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 881 | .OpReservedWritePipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, reserve_id: IdRef, index: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 882 | .OpReserveReadPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 883 | .OpReserveWritePipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 884 | .OpCommitReadPipe => struct { pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 885 | .OpCommitWritePipe => struct { pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 886 | .OpIsValidReserveId => struct { id_result_type: IdResultType, id_result: IdResult, reserve_id: IdRef }, |
| 887 | .OpGetNumPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 888 | .OpGetMaxPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 889 | .OpGroupReserveReadPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 890 | .OpGroupReserveWritePipePackets => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 891 | .OpGroupCommitReadPipe => struct { execution: IdScope, pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 892 | .OpGroupCommitWritePipe => struct { execution: IdScope, pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, |
| 893 | .OpEnqueueMarker => struct { id_result_type: IdResultType, id_result: IdResult, queue: IdRef, num_events: IdRef, wait_events: IdRef, ret_event: IdRef }, |
| 894 | .OpEnqueueKernel => struct { id_result_type: IdResultType, id_result: IdResult, queue: IdRef, flags: IdRef, nd_range: IdRef, num_events: IdRef, wait_events: IdRef, ret_event: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef, local_size: []const IdRef = &.{} }, |
| 895 | .OpGetKernelNDrangeSubGroupCount => struct { id_result_type: IdResultType, id_result: IdResult, nd_range: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, |
| 896 | .OpGetKernelNDrangeMaxSubGroupSize => struct { id_result_type: IdResultType, id_result: IdResult, nd_range: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, |
| 897 | .OpGetKernelWorkGroupSize => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, |
| 898 | .OpGetKernelPreferredWorkGroupSizeMultiple => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, |
| 899 | .OpRetainEvent => struct { event: IdRef }, |
| 900 | .OpReleaseEvent => struct { event: IdRef }, |
| 901 | .OpCreateUserEvent => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 902 | .OpIsValidEvent => struct { id_result_type: IdResultType, id_result: IdResult, event: IdRef }, |
| 903 | .OpSetUserEventStatus => struct { event: IdRef, status: IdRef }, |
| 904 | .OpCaptureEventProfilingInfo => struct { event: IdRef, profiling_info: IdRef, value: IdRef }, |
| 905 | .OpGetDefaultQueue => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 906 | .OpBuildNDRange => struct { id_result_type: IdResultType, id_result: IdResult, globalworksize: IdRef, localworksize: IdRef, globalworkoffset: IdRef }, |
| 907 | .OpImageSparseSampleImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 908 | .OpImageSparseSampleExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, |
| 909 | .OpImageSparseSampleDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 910 | .OpImageSparseSampleDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, |
| 911 | .OpImageSparseSampleProjImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 912 | .OpImageSparseSampleProjExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, |
| 913 | .OpImageSparseSampleProjDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 914 | .OpImageSparseSampleProjDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, |
| 915 | .OpImageSparseFetch => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 916 | .OpImageSparseGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, component: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 917 | .OpImageSparseDrefGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 918 | .OpImageSparseTexelsResident => struct { id_result_type: IdResultType, id_result: IdResult, resident_code: IdRef }, |
| 919 | .OpNoLine => void, |
| 920 | .OpAtomicFlagTestAndSet => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, |
| 921 | .OpAtomicFlagClear => struct { pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, |
| 922 | .OpImageSparseRead => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 923 | .OpSizeOf => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, |
| 924 | .OpTypePipeStorage => struct { id_result: IdResult }, |
| 925 | .OpConstantPipeStorage => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: LiteralInteger, packet_alignment: LiteralInteger, capacity: LiteralInteger }, |
| 926 | .OpCreatePipeFromPipeStorage => struct { id_result_type: IdResultType, id_result: IdResult, pipe_storage: IdRef }, |
| 927 | .OpGetKernelLocalSizeForSubgroupCount => struct { id_result_type: IdResultType, id_result: IdResult, subgroup_count: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, |
| 928 | .OpGetKernelMaxNumSubgroups => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, |
| 929 | .OpTypeNamedBarrier => struct { id_result: IdResult }, |
| 930 | .OpNamedBarrierInitialize => struct { id_result_type: IdResultType, id_result: IdResult, subgroup_count: IdRef }, |
| 931 | .OpMemoryNamedBarrier => struct { named_barrier: IdRef, memory: IdScope, semantics: IdMemorySemantics }, |
| 932 | .OpModuleProcessed => struct { process: LiteralString }, |
| 933 | .OpExecutionModeId => struct { entry_point: IdRef, mode: ExecutionMode.Extended }, |
| 934 | .OpDecorateId => struct { target: IdRef, decoration: Decoration.Extended }, |
| 935 | .OpGroupNonUniformElect => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope }, |
| 936 | .OpGroupNonUniformAll => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, |
| 937 | .OpGroupNonUniformAny => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, |
| 938 | .OpGroupNonUniformAllEqual => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, |
| 939 | .OpGroupNonUniformBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, id: IdRef }, |
| 940 | .OpGroupNonUniformBroadcastFirst => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, |
| 941 | .OpGroupNonUniformBallot => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, |
| 942 | .OpGroupNonUniformInverseBallot => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, |
| 943 | .OpGroupNonUniformBallotBitExtract => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, index: IdRef }, |
| 944 | .OpGroupNonUniformBallotBitCount => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef }, |
| 945 | .OpGroupNonUniformBallotFindLSB => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, |
| 946 | .OpGroupNonUniformBallotFindMSB => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, |
| 947 | .OpGroupNonUniformShuffle => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, id: IdRef }, |
| 948 | .OpGroupNonUniformShuffleXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, mask: IdRef }, |
| 949 | .OpGroupNonUniformShuffleUp => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef }, |
| 950 | .OpGroupNonUniformShuffleDown => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef }, |
| 951 | .OpGroupNonUniformIAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 952 | .OpGroupNonUniformFAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 953 | .OpGroupNonUniformIMul => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 954 | .OpGroupNonUniformFMul => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 955 | .OpGroupNonUniformSMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 956 | .OpGroupNonUniformUMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 957 | .OpGroupNonUniformFMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 958 | .OpGroupNonUniformSMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 959 | .OpGroupNonUniformUMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 960 | .OpGroupNonUniformFMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 961 | .OpGroupNonUniformBitwiseAnd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 962 | .OpGroupNonUniformBitwiseOr => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 963 | .OpGroupNonUniformBitwiseXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 964 | .OpGroupNonUniformLogicalAnd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 965 | .OpGroupNonUniformLogicalOr => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 966 | .OpGroupNonUniformLogicalXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, |
| 967 | .OpGroupNonUniformQuadBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, index: IdRef }, |
| 968 | .OpGroupNonUniformQuadSwap => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, direction: IdRef }, |
| 969 | .OpCopyLogical => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 970 | .OpPtrEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 971 | .OpPtrNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 972 | .OpPtrDiff => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 973 | .OpTerminateInvocation => void, |
| 974 | .OpSubgroupBallotKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, |
| 975 | .OpSubgroupFirstInvocationKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef }, |
| 976 | .OpSubgroupAllKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, |
| 977 | .OpSubgroupAnyKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, |
| 978 | .OpSubgroupAllEqualKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, |
| 979 | .OpSubgroupReadInvocationKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef, index: IdRef }, |
| 980 | .OpTraceRayKHR => struct { accel: IdRef, ray_flags: IdRef, cull_mask: IdRef, sbt_offset: IdRef, sbt_stride: IdRef, miss_index: IdRef, ray_origin: IdRef, ray_tmin: IdRef, ray_direction: IdRef, ray_tmax: IdRef, payload: IdRef }, |
| 981 | .OpExecuteCallableKHR => struct { sbt_index: IdRef, callable_data: IdRef }, |
| 982 | .OpConvertUToAccelerationStructureKHR => struct { id_result_type: IdResultType, id_result: IdResult, accel: IdRef }, |
| 983 | .OpIgnoreIntersectionKHR => void, |
| 984 | .OpTerminateRayKHR => void, |
| 985 | .OpTypeRayQueryKHR => struct { id_result: IdResult }, |
| 986 | .OpRayQueryInitializeKHR => struct { rayquery: IdRef, accel: IdRef, rayflags: IdRef, cullmask: IdRef, rayorigin: IdRef, raytmin: IdRef, raydirection: IdRef, raytmax: IdRef }, |
| 987 | .OpRayQueryTerminateKHR => struct { rayquery: IdRef }, |
| 988 | .OpRayQueryGenerateIntersectionKHR => struct { rayquery: IdRef, hitt: IdRef }, |
| 989 | .OpRayQueryConfirmIntersectionKHR => struct { rayquery: IdRef }, |
| 990 | .OpRayQueryProceedKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, |
| 991 | .OpRayQueryGetIntersectionTypeKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 992 | .OpGroupIAddNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 993 | .OpGroupFAddNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 994 | .OpGroupFMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 995 | .OpGroupUMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 996 | .OpGroupSMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 997 | .OpGroupFMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 998 | .OpGroupUMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 999 | .OpGroupSMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, |
| 1000 | .OpFragmentMaskFetchAMD => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef }, |
| 1001 | .OpFragmentFetchAMD => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, fragment_index: IdRef }, |
| 1002 | .OpReadClockKHR => struct { id_result_type: IdResultType, id_result: IdResult, scope: IdScope }, |
| 1003 | .OpImageSampleFootprintNV => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, granularity: IdRef, coarse: IdRef, image_operands: ?ImageOperands.Extended = null }, |
| 1004 | .OpGroupNonUniformPartitionNV => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef }, |
| 1005 | .OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: IdRef, packed_indices: IdRef }, |
| 1006 | .OpReportIntersectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, hit: IdRef, hitkind: IdRef }, |
| 1007 | .OpIgnoreIntersectionNV => void, |
| 1008 | .OpTerminateRayNV => void, |
| 1009 | .OpTraceNV => struct { accel: IdRef, ray_flags: IdRef, cull_mask: IdRef, sbt_offset: IdRef, sbt_stride: IdRef, miss_index: IdRef, ray_origin: IdRef, ray_tmin: IdRef, ray_direction: IdRef, ray_tmax: IdRef, payloadid: IdRef }, |
| 1010 | .OpTypeAccelerationStructureKHR => struct { id_result: IdResult }, |
| 1011 | .OpExecuteCallableNV => struct { sbt_index: IdRef, callable_dataid: IdRef }, |
| 1012 | .OpTypeCooperativeMatrixNV => struct { id_result: IdResult, component_type: IdRef, execution: IdScope, rows: IdRef, columns: IdRef }, |
| 1013 | .OpCooperativeMatrixLoadNV => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, stride: IdRef, column_major: IdRef, memory_access: ?MemoryAccess.Extended = null }, |
| 1014 | .OpCooperativeMatrixStoreNV => struct { pointer: IdRef, object: IdRef, stride: IdRef, column_major: IdRef, memory_access: ?MemoryAccess.Extended = null }, |
| 1015 | .OpCooperativeMatrixMulAddNV => struct { id_result_type: IdResultType, id_result: IdResult, a: IdRef, b: IdRef, c: IdRef }, |
| 1016 | .OpCooperativeMatrixLengthNV => struct { id_result_type: IdResultType, id_result: IdResult, type: IdRef }, |
| 1017 | .OpBeginInvocationInterlockEXT => void, |
| 1018 | .OpEndInvocationInterlockEXT => void, |
| 1019 | .OpDemoteToHelperInvocationEXT => void, |
| 1020 | .OpIsHelperInvocationEXT => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 1021 | .OpSubgroupShuffleINTEL => struct { id_result_type: IdResultType, id_result: IdResult, data: IdRef, invocationid: IdRef }, |
| 1022 | .OpSubgroupShuffleDownINTEL => struct { id_result_type: IdResultType, id_result: IdResult, current: IdRef, next: IdRef, delta: IdRef }, |
| 1023 | .OpSubgroupShuffleUpINTEL => struct { id_result_type: IdResultType, id_result: IdResult, previous: IdRef, current: IdRef, delta: IdRef }, |
| 1024 | .OpSubgroupShuffleXorINTEL => struct { id_result_type: IdResultType, id_result: IdResult, data: IdRef, value: IdRef }, |
| 1025 | .OpSubgroupBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, ptr: IdRef }, |
| 1026 | .OpSubgroupBlockWriteINTEL => struct { ptr: IdRef, data: IdRef }, |
| 1027 | .OpSubgroupImageBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef }, |
| 1028 | .OpSubgroupImageBlockWriteINTEL => struct { image: IdRef, coordinate: IdRef, data: IdRef }, |
| 1029 | .OpSubgroupImageMediaBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, width: IdRef, height: IdRef }, |
| 1030 | .OpSubgroupImageMediaBlockWriteINTEL => struct { image: IdRef, coordinate: IdRef, width: IdRef, height: IdRef, data: IdRef }, |
| 1031 | .OpUCountLeadingZerosINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 1032 | .OpUCountTrailingZerosINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, |
| 1033 | .OpAbsISubINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1034 | .OpAbsUSubINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1035 | .OpIAddSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1036 | .OpUAddSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1037 | .OpIAverageINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1038 | .OpUAverageINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1039 | .OpIAverageRoundedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1040 | .OpUAverageRoundedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1041 | .OpISubSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1042 | .OpUSubSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1043 | .OpIMul32x16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1044 | .OpUMul32x16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, |
| 1045 | .OpConstFunctionPointerINTEL => struct { id_result_type: IdResultType, id_result: IdResult, function: IdRef }, |
| 1046 | .OpFunctionPointerCallINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: []const IdRef = &.{} }, |
| 1047 | .OpAsmTargetINTEL => struct { id_result_type: IdResultType, id_result: IdResult, asm_target: LiteralString }, |
| 1048 | .OpAsmINTEL => struct { id_result_type: IdResultType, id_result: IdResult, asm_type: IdRef, target: IdRef, asm_instructions: LiteralString, constraints: LiteralString }, |
| 1049 | .OpAsmCallINTEL => struct { id_result_type: IdResultType, id_result: IdResult, @"asm": IdRef, argument_0: []const IdRef = &.{} }, |
| 1050 | .OpAtomicFMinEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 1051 | .OpAtomicFMaxEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 1052 | .OpAssumeTrueKHR => struct { condition: IdRef }, |
| 1053 | .OpExpectKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef, expectedvalue: IdRef }, |
| 1054 | .OpDecorateString => struct { target: IdRef, decoration: Decoration.Extended }, |
| 1055 | .OpMemberDecorateString => struct { struct_type: IdRef, member: LiteralInteger, decoration: Decoration.Extended }, |
| 1056 | .OpVmeImageINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image_type: IdRef, sampler: IdRef }, |
| 1057 | .OpTypeVmeImageINTEL => struct { id_result: IdResult, image_type: IdRef }, |
| 1058 | .OpTypeAvcImePayloadINTEL => struct { id_result: IdResult }, |
| 1059 | .OpTypeAvcRefPayloadINTEL => struct { id_result: IdResult }, |
| 1060 | .OpTypeAvcSicPayloadINTEL => struct { id_result: IdResult }, |
| 1061 | .OpTypeAvcMcePayloadINTEL => struct { id_result: IdResult }, |
| 1062 | .OpTypeAvcMceResultINTEL => struct { id_result: IdResult }, |
| 1063 | .OpTypeAvcImeResultINTEL => struct { id_result: IdResult }, |
| 1064 | .OpTypeAvcImeResultSingleReferenceStreamoutINTEL => struct { id_result: IdResult }, |
| 1065 | .OpTypeAvcImeResultDualReferenceStreamoutINTEL => struct { id_result: IdResult }, |
| 1066 | .OpTypeAvcImeSingleReferenceStreaminINTEL => struct { id_result: IdResult }, |
| 1067 | .OpTypeAvcImeDualReferenceStreaminINTEL => struct { id_result: IdResult }, |
| 1068 | .OpTypeAvcRefResultINTEL => struct { id_result: IdResult }, |
| 1069 | .OpTypeAvcSicResultINTEL => struct { id_result: IdResult }, |
| 1070 | .OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, slice_type: IdRef, qp: IdRef }, |
| 1071 | .OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, reference_base_penalty: IdRef, payload: IdRef }, |
| 1072 | .OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, slice_type: IdRef, qp: IdRef }, |
| 1073 | .OpSubgroupAvcMceSetInterShapePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packed_shape_penalty: IdRef, payload: IdRef }, |
| 1074 | .OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, slice_type: IdRef, qp: IdRef }, |
| 1075 | .OpSubgroupAvcMceSetInterDirectionPenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, direction_cost: IdRef, payload: IdRef }, |
| 1076 | .OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, slice_type: IdRef, qp: IdRef }, |
| 1077 | .OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL => struct { id_result_type: IdResultType, id_result: IdResult, slice_type: IdRef, qp: IdRef }, |
| 1078 | .OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 1079 | .OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 1080 | .OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 1081 | .OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packed_cost_center_delta: IdRef, packed_cost_table: IdRef, cost_precision: IdRef, payload: IdRef }, |
| 1082 | .OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, slice_type: IdRef, qp: IdRef }, |
| 1083 | .OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 1084 | .OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 1085 | .OpSubgroupAvcMceSetAcOnlyHaarINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1086 | .OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL => struct { id_result_type: IdResultType, id_result: IdResult, source_field_polarity: IdRef, payload: IdRef }, |
| 1087 | .OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL => struct { id_result_type: IdResultType, id_result: IdResult, reference_field_polarity: IdRef, payload: IdRef }, |
| 1088 | .OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL => struct { id_result_type: IdResultType, id_result: IdResult, forward_reference_field_polarity: IdRef, backward_reference_field_polarity: IdRef, payload: IdRef }, |
| 1089 | .OpSubgroupAvcMceConvertToImePayloadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1090 | .OpSubgroupAvcMceConvertToImeResultINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1091 | .OpSubgroupAvcMceConvertToRefPayloadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1092 | .OpSubgroupAvcMceConvertToRefResultINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1093 | .OpSubgroupAvcMceConvertToSicPayloadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1094 | .OpSubgroupAvcMceConvertToSicResultINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1095 | .OpSubgroupAvcMceGetMotionVectorsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1096 | .OpSubgroupAvcMceGetInterDistortionsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1097 | .OpSubgroupAvcMceGetBestInterDistortionsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1098 | .OpSubgroupAvcMceGetInterMajorShapeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1099 | .OpSubgroupAvcMceGetInterMinorShapeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1100 | .OpSubgroupAvcMceGetInterDirectionsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1101 | .OpSubgroupAvcMceGetInterMotionVectorCountINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1102 | .OpSubgroupAvcMceGetInterReferenceIdsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1103 | .OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packed_reference_ids: IdRef, packed_reference_parameter_field_polarities: IdRef, payload: IdRef }, |
| 1104 | .OpSubgroupAvcImeInitializeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_coord: IdRef, partition_mask: IdRef, sad_adjustment: IdRef }, |
| 1105 | .OpSubgroupAvcImeSetSingleReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, ref_offset: IdRef, search_window_config: IdRef, payload: IdRef }, |
| 1106 | .OpSubgroupAvcImeSetDualReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, fwd_ref_offset: IdRef, bwd_ref_offset: IdRef, id_ref_4: IdRef, payload: IdRef }, |
| 1107 | .OpSubgroupAvcImeRefWindowSizeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, search_window_config: IdRef, dual_ref: IdRef }, |
| 1108 | .OpSubgroupAvcImeAdjustRefOffsetINTEL => struct { id_result_type: IdResultType, id_result: IdResult, ref_offset: IdRef, src_coord: IdRef, ref_window_size: IdRef, image_size: IdRef }, |
| 1109 | .OpSubgroupAvcImeConvertToMcePayloadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1110 | .OpSubgroupAvcImeSetMaxMotionVectorCountINTEL => struct { id_result_type: IdResultType, id_result: IdResult, max_motion_vector_count: IdRef, payload: IdRef }, |
| 1111 | .OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1112 | .OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL => struct { id_result_type: IdResultType, id_result: IdResult, threshold: IdRef, payload: IdRef }, |
| 1113 | .OpSubgroupAvcImeSetWeightedSadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packed_sad_weights: IdRef, payload: IdRef }, |
| 1114 | .OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, ref_image: IdRef, payload: IdRef }, |
| 1115 | .OpSubgroupAvcImeEvaluateWithDualReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, fwd_ref_image: IdRef, bwd_ref_image: IdRef, payload: IdRef }, |
| 1116 | .OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, ref_image: IdRef, payload: IdRef, streamin_components: IdRef }, |
| 1117 | .OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, fwd_ref_image: IdRef, bwd_ref_image: IdRef, payload: IdRef, streamin_components: IdRef }, |
| 1118 | .OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, ref_image: IdRef, payload: IdRef }, |
| 1119 | .OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, fwd_ref_image: IdRef, bwd_ref_image: IdRef, payload: IdRef }, |
| 1120 | .OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, ref_image: IdRef, payload: IdRef, streamin_components: IdRef }, |
| 1121 | .OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, fwd_ref_image: IdRef, bwd_ref_image: IdRef, payload: IdRef, streamin_components: IdRef }, |
| 1122 | .OpSubgroupAvcImeConvertToMceResultINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1123 | .OpSubgroupAvcImeGetSingleReferenceStreaminINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1124 | .OpSubgroupAvcImeGetDualReferenceStreaminINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1125 | .OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1126 | .OpSubgroupAvcImeStripDualReferenceStreamoutINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1127 | .OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef, major_shape: IdRef }, |
| 1128 | .OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef, major_shape: IdRef }, |
| 1129 | .OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef, major_shape: IdRef }, |
| 1130 | .OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef, major_shape: IdRef, direction: IdRef }, |
| 1131 | .OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef, major_shape: IdRef, direction: IdRef }, |
| 1132 | .OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef, major_shape: IdRef, direction: IdRef }, |
| 1133 | .OpSubgroupAvcImeGetBorderReachedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image_select: IdRef, payload: IdRef }, |
| 1134 | .OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1135 | .OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1136 | .OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1137 | .OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1138 | .OpSubgroupAvcFmeInitializeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_coord: IdRef, motion_vectors: IdRef, major_shapes: IdRef, minor_shapes: IdRef, direction: IdRef, pixel_resolution: IdRef, sad_adjustment: IdRef }, |
| 1139 | .OpSubgroupAvcBmeInitializeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_coord: IdRef, motion_vectors: IdRef, major_shapes: IdRef, minor_shapes: IdRef, direction: IdRef, pixel_resolution: IdRef, bidirectional_weight: IdRef, sad_adjustment: IdRef }, |
| 1140 | .OpSubgroupAvcRefConvertToMcePayloadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1141 | .OpSubgroupAvcRefSetBidirectionalMixDisableINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1142 | .OpSubgroupAvcRefSetBilinearFilterEnableINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1143 | .OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, ref_image: IdRef, payload: IdRef }, |
| 1144 | .OpSubgroupAvcRefEvaluateWithDualReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, fwd_ref_image: IdRef, bwd_ref_image: IdRef, payload: IdRef }, |
| 1145 | .OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, packed_reference_ids: IdRef, payload: IdRef }, |
| 1146 | .OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, packed_reference_ids: IdRef, packed_reference_field_polarities: IdRef, payload: IdRef }, |
| 1147 | .OpSubgroupAvcRefConvertToMceResultINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1148 | .OpSubgroupAvcSicInitializeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_coord: IdRef }, |
| 1149 | .OpSubgroupAvcSicConfigureSkcINTEL => struct { id_result_type: IdResultType, id_result: IdResult, skip_block_partition_type: IdRef, skip_motion_vector_mask: IdRef, motion_vectors: IdRef, bidirectional_weight: IdRef, sad_adjustment: IdRef, payload: IdRef }, |
| 1150 | .OpSubgroupAvcSicConfigureIpeLumaINTEL => struct { id_result_type: IdResultType, id_result: IdResult, luma_intra_partition_mask: IdRef, intra_neighbour_availabilty: IdRef, left_edge_luma_pixels: IdRef, upper_left_corner_luma_pixel: IdRef, upper_edge_luma_pixels: IdRef, upper_right_edge_luma_pixels: IdRef, sad_adjustment: IdRef, payload: IdRef }, |
| 1151 | .OpSubgroupAvcSicConfigureIpeLumaChromaINTEL => struct { id_result_type: IdResultType, id_result: IdResult, luma_intra_partition_mask: IdRef, intra_neighbour_availabilty: IdRef, left_edge_luma_pixels: IdRef, upper_left_corner_luma_pixel: IdRef, upper_edge_luma_pixels: IdRef, upper_right_edge_luma_pixels: IdRef, left_edge_chroma_pixels: IdRef, upper_left_corner_chroma_pixel: IdRef, upper_edge_chroma_pixels: IdRef, sad_adjustment: IdRef, payload: IdRef }, |
| 1152 | .OpSubgroupAvcSicGetMotionVectorMaskINTEL => struct { id_result_type: IdResultType, id_result: IdResult, skip_block_partition_type: IdRef, direction: IdRef }, |
| 1153 | .OpSubgroupAvcSicConvertToMcePayloadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1154 | .OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packed_shape_penalty: IdRef, payload: IdRef }, |
| 1155 | .OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL => struct { id_result_type: IdResultType, id_result: IdResult, luma_mode_penalty: IdRef, luma_packed_neighbor_modes: IdRef, luma_packed_non_dc_penalty: IdRef, payload: IdRef }, |
| 1156 | .OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL => struct { id_result_type: IdResultType, id_result: IdResult, chroma_mode_base_penalty: IdRef, payload: IdRef }, |
| 1157 | .OpSubgroupAvcSicSetBilinearFilterEnableINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1158 | .OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packed_sad_coefficients: IdRef, payload: IdRef }, |
| 1159 | .OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, block_based_skip_type: IdRef, payload: IdRef }, |
| 1160 | .OpSubgroupAvcSicEvaluateIpeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, payload: IdRef }, |
| 1161 | .OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, ref_image: IdRef, payload: IdRef }, |
| 1162 | .OpSubgroupAvcSicEvaluateWithDualReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, fwd_ref_image: IdRef, bwd_ref_image: IdRef, payload: IdRef }, |
| 1163 | .OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, packed_reference_ids: IdRef, payload: IdRef }, |
| 1164 | .OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, src_image: IdRef, packed_reference_ids: IdRef, packed_reference_field_polarities: IdRef, payload: IdRef }, |
| 1165 | .OpSubgroupAvcSicConvertToMceResultINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1166 | .OpSubgroupAvcSicGetIpeLumaShapeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1167 | .OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1168 | .OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1169 | .OpSubgroupAvcSicGetPackedIpeLumaModesINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1170 | .OpSubgroupAvcSicGetIpeChromaModeINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1171 | .OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1172 | .OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1173 | .OpSubgroupAvcSicGetInterRawSadsINTEL => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, |
| 1174 | .OpVariableLengthArrayINTEL => struct { id_result_type: IdResultType, id_result: IdResult, lenght: IdRef }, |
| 1175 | .OpSaveMemoryINTEL => struct { id_result_type: IdResultType, id_result: IdResult }, |
| 1176 | .OpRestoreMemoryINTEL => struct { ptr: IdRef }, |
| 1177 | .OpLoopControlINTEL => struct { loop_control_parameters: []const LiteralInteger = &.{} }, |
| 1178 | .OpPtrCastToCrossWorkgroupINTEL => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, |
| 1179 | .OpCrossWorkgroupCastToPtrINTEL => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, |
| 1180 | .OpReadPipeBlockingINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: IdRef, packet_alignment: IdRef }, |
| 1181 | .OpWritePipeBlockingINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: IdRef, packet_alignment: IdRef }, |
| 1182 | .OpFPGARegINTEL => struct { id_result_type: IdResultType, id_result: IdResult, result: IdRef, input: IdRef }, |
| 1183 | .OpRayQueryGetRayTMinKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, |
| 1184 | .OpRayQueryGetRayFlagsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, |
| 1185 | .OpRayQueryGetIntersectionTKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1186 | .OpRayQueryGetIntersectionInstanceCustomIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1187 | .OpRayQueryGetIntersectionInstanceIdKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1188 | .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1189 | .OpRayQueryGetIntersectionGeometryIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1190 | .OpRayQueryGetIntersectionPrimitiveIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1191 | .OpRayQueryGetIntersectionBarycentricsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1192 | .OpRayQueryGetIntersectionFrontFaceKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1193 | .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, |
| 1194 | .OpRayQueryGetIntersectionObjectRayDirectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1195 | .OpRayQueryGetIntersectionObjectRayOriginKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1196 | .OpRayQueryGetWorldRayDirectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, |
| 1197 | .OpRayQueryGetWorldRayOriginKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, |
| 1198 | .OpRayQueryGetIntersectionObjectToWorldKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1199 | .OpRayQueryGetIntersectionWorldToObjectKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, |
| 1200 | .OpAtomicFAddEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, |
| 1201 | .OpTypeBufferSurfaceINTEL => struct { id_result: IdResult }, |
| 1202 | .OpTypeStructContinuedINTEL => struct { id_ref: []const IdRef = &.{} }, |
| 1203 | .OpConstantCompositeContinuedINTEL => struct { constituents: []const IdRef = &.{} }, |
| 1204 | .OpSpecConstantCompositeContinuedINTEL => struct { constituents: []const IdRef = &.{} }, |
| 1205 | }; |
| 1206 | } |
| 587 | 1207 | }; |
| 588 | 1208 | pub const ImageOperands = packed struct { |
| 589 | 1209 | Bias: bool align(@alignOf(u32)) = false, |
| ... | ... | @@ -618,6 +1238,46 @@ pub const ImageOperands = packed struct { |
| 618 | 1238 | _reserved_bit_29: bool = false, |
| 619 | 1239 | _reserved_bit_30: bool = false, |
| 620 | 1240 | _reserved_bit_31: bool = false, |
| 1241 | |
| 1242 | pub const MakeTexelAvailableKHR: ImageOperands = .{ .MakeTexelAvailable = true }; |
| 1243 | pub const MakeTexelVisibleKHR: ImageOperands = .{ .MakeTexelVisible = true }; |
| 1244 | pub const NonPrivateTexelKHR: ImageOperands = .{ .NonPrivateTexel = true }; |
| 1245 | pub const VolatileTexelKHR: ImageOperands = .{ .VolatileTexel = true }; |
| 1246 | |
| 1247 | pub const Extended = struct { |
| 1248 | Bias: ?struct { id_ref: IdRef } = null, |
| 1249 | Lod: ?struct { id_ref: IdRef } = null, |
| 1250 | Grad: ?struct { id_ref_0: IdRef, id_ref_1: IdRef } = null, |
| 1251 | ConstOffset: ?struct { id_ref: IdRef } = null, |
| 1252 | Offset: ?struct { id_ref: IdRef } = null, |
| 1253 | ConstOffsets: ?struct { id_ref: IdRef } = null, |
| 1254 | Sample: ?struct { id_ref: IdRef } = null, |
| 1255 | MinLod: ?struct { id_ref: IdRef } = null, |
| 1256 | MakeTexelAvailable: ?struct { id_scope: IdScope } = null, |
| 1257 | MakeTexelVisible: ?struct { id_scope: IdScope } = null, |
| 1258 | NonPrivateTexel: bool = false, |
| 1259 | VolatileTexel: bool = false, |
| 1260 | SignExtend: bool = false, |
| 1261 | ZeroExtend: bool = false, |
| 1262 | _reserved_bit_14: bool = false, |
| 1263 | _reserved_bit_15: bool = false, |
| 1264 | _reserved_bit_16: bool = false, |
| 1265 | _reserved_bit_17: bool = false, |
| 1266 | _reserved_bit_18: bool = false, |
| 1267 | _reserved_bit_19: bool = false, |
| 1268 | _reserved_bit_20: bool = false, |
| 1269 | _reserved_bit_21: bool = false, |
| 1270 | _reserved_bit_22: bool = false, |
| 1271 | _reserved_bit_23: bool = false, |
| 1272 | _reserved_bit_24: bool = false, |
| 1273 | _reserved_bit_25: bool = false, |
| 1274 | _reserved_bit_26: bool = false, |
| 1275 | _reserved_bit_27: bool = false, |
| 1276 | _reserved_bit_28: bool = false, |
| 1277 | _reserved_bit_29: bool = false, |
| 1278 | _reserved_bit_30: bool = false, |
| 1279 | _reserved_bit_31: bool = false, |
| 1280 | }; |
| 621 | 1281 | }; |
| 622 | 1282 | pub const FPFastMathMode = packed struct { |
| 623 | 1283 | NotNaN: bool align(@alignOf(u32)) = false, |
| ... | ... | @@ -720,6 +1380,41 @@ pub const LoopControl = packed struct { |
| 720 | 1380 | _reserved_bit_29: bool = false, |
| 721 | 1381 | _reserved_bit_30: bool = false, |
| 722 | 1382 | _reserved_bit_31: bool = false, |
| 1383 | |
| 1384 | pub const Extended = struct { |
| 1385 | Unroll: bool = false, |
| 1386 | DontUnroll: bool = false, |
| 1387 | DependencyInfinite: bool = false, |
| 1388 | DependencyLength: ?struct { literal_integer: LiteralInteger } = null, |
| 1389 | MinIterations: ?struct { literal_integer: LiteralInteger } = null, |
| 1390 | MaxIterations: ?struct { literal_integer: LiteralInteger } = null, |
| 1391 | IterationMultiple: ?struct { literal_integer: LiteralInteger } = null, |
| 1392 | PeelCount: ?struct { literal_integer: LiteralInteger } = null, |
| 1393 | PartialCount: ?struct { literal_integer: LiteralInteger } = null, |
| 1394 | _reserved_bit_9: bool = false, |
| 1395 | _reserved_bit_10: bool = false, |
| 1396 | _reserved_bit_11: bool = false, |
| 1397 | _reserved_bit_12: bool = false, |
| 1398 | _reserved_bit_13: bool = false, |
| 1399 | _reserved_bit_14: bool = false, |
| 1400 | _reserved_bit_15: bool = false, |
| 1401 | InitiationIntervalINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1402 | MaxConcurrencyINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1403 | DependencyArrayINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1404 | PipelineEnableINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1405 | LoopCoalesceINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1406 | MaxInterleavingINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1407 | SpeculatedIterationsINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1408 | NoFusionINTEL: ?struct { literal_integer: LiteralInteger } = null, |
| 1409 | _reserved_bit_24: bool = false, |
| 1410 | _reserved_bit_25: bool = false, |
| 1411 | _reserved_bit_26: bool = false, |
| 1412 | _reserved_bit_27: bool = false, |
| 1413 | _reserved_bit_28: bool = false, |
| 1414 | _reserved_bit_29: bool = false, |
| 1415 | _reserved_bit_30: bool = false, |
| 1416 | _reserved_bit_31: bool = false, |
| 1417 | }; |
| 723 | 1418 | }; |
| 724 | 1419 | pub const FunctionControl = packed struct { |
| 725 | 1420 | Inline: bool align(@alignOf(u32)) = false, |
| ... | ... | @@ -788,6 +1483,10 @@ pub const MemorySemantics = packed struct { |
| 788 | 1483 | _reserved_bit_29: bool = false, |
| 789 | 1484 | _reserved_bit_30: bool = false, |
| 790 | 1485 | _reserved_bit_31: bool = false, |
| 1486 | |
| 1487 | pub const OutputMemoryKHR: MemorySemantics = .{ .OutputMemory = true }; |
| 1488 | pub const MakeAvailableKHR: MemorySemantics = .{ .MakeAvailable = true }; |
| 1489 | pub const MakeVisibleKHR: MemorySemantics = .{ .MakeVisible = true }; |
| 791 | 1490 | }; |
| 792 | 1491 | pub const MemoryAccess = packed struct { |
| 793 | 1492 | Volatile: bool align(@alignOf(u32)) = false, |
| ... | ... | @@ -822,6 +1521,45 @@ pub const MemoryAccess = packed struct { |
| 822 | 1521 | _reserved_bit_29: bool = false, |
| 823 | 1522 | _reserved_bit_30: bool = false, |
| 824 | 1523 | _reserved_bit_31: bool = false, |
| 1524 | |
| 1525 | pub const MakePointerAvailableKHR: MemoryAccess = .{ .MakePointerAvailable = true }; |
| 1526 | pub const MakePointerVisibleKHR: MemoryAccess = .{ .MakePointerVisible = true }; |
| 1527 | pub const NonPrivatePointerKHR: MemoryAccess = .{ .NonPrivatePointer = true }; |
| 1528 | |
| 1529 | pub const Extended = struct { |
| 1530 | Volatile: bool = false, |
| 1531 | Aligned: ?struct { literal_integer: LiteralInteger } = null, |
| 1532 | Nontemporal: bool = false, |
| 1533 | MakePointerAvailable: ?struct { id_scope: IdScope } = null, |
| 1534 | MakePointerVisible: ?struct { id_scope: IdScope } = null, |
| 1535 | NonPrivatePointer: bool = false, |
| 1536 | _reserved_bit_6: bool = false, |
| 1537 | _reserved_bit_7: bool = false, |
| 1538 | _reserved_bit_8: bool = false, |
| 1539 | _reserved_bit_9: bool = false, |
| 1540 | _reserved_bit_10: bool = false, |
| 1541 | _reserved_bit_11: bool = false, |
| 1542 | _reserved_bit_12: bool = false, |
| 1543 | _reserved_bit_13: bool = false, |
| 1544 | _reserved_bit_14: bool = false, |
| 1545 | _reserved_bit_15: bool = false, |
| 1546 | _reserved_bit_16: bool = false, |
| 1547 | _reserved_bit_17: bool = false, |
| 1548 | _reserved_bit_18: bool = false, |
| 1549 | _reserved_bit_19: bool = false, |
| 1550 | _reserved_bit_20: bool = false, |
| 1551 | _reserved_bit_21: bool = false, |
| 1552 | _reserved_bit_22: bool = false, |
| 1553 | _reserved_bit_23: bool = false, |
| 1554 | _reserved_bit_24: bool = false, |
| 1555 | _reserved_bit_25: bool = false, |
| 1556 | _reserved_bit_26: bool = false, |
| 1557 | _reserved_bit_27: bool = false, |
| 1558 | _reserved_bit_28: bool = false, |
| 1559 | _reserved_bit_29: bool = false, |
| 1560 | _reserved_bit_30: bool = false, |
| 1561 | _reserved_bit_31: bool = false, |
| 1562 | }; |
| 825 | 1563 | }; |
| 826 | 1564 | pub const KernelProfilingInfo = packed struct { |
| 827 | 1565 | CmdExecTime: bool align(@alignOf(u32)) = false, |
| ... | ... | @@ -932,7 +1670,6 @@ pub const SourceLanguage = enum(u32) { |
| 932 | 1670 | OpenCL_C = 3, |
| 933 | 1671 | OpenCL_CPP = 4, |
| 934 | 1672 | HLSL = 5, |
| 935 | | _, |
| 936 | 1673 | }; |
| 937 | 1674 | pub const ExecutionModel = enum(u32) { |
| 938 | 1675 | Vertex = 0, |
| ... | ... | @@ -944,33 +1681,35 @@ pub const ExecutionModel = enum(u32) { |
| 944 | 1681 | Kernel = 6, |
| 945 | 1682 | TaskNV = 5267, |
| 946 | 1683 | MeshNV = 5268, |
| 947 | | RayGenerationNV = 5313, |
| 948 | 1684 | RayGenerationKHR = 5313, |
| 949 | | IntersectionNV = 5314, |
| 950 | 1685 | IntersectionKHR = 5314, |
| 951 | | AnyHitNV = 5315, |
| 952 | 1686 | AnyHitKHR = 5315, |
| 953 | | ClosestHitNV = 5316, |
| 954 | 1687 | ClosestHitKHR = 5316, |
| 955 | | MissNV = 5317, |
| 956 | 1688 | MissKHR = 5317, |
| 957 | | CallableNV = 5318, |
| 958 | 1689 | CallableKHR = 5318, |
| 959 | | _, |
| 1690 | |
| 1691 | pub const RayGenerationNV = ExecutionModel.RayGenerationKHR; |
| 1692 | pub const IntersectionNV = ExecutionModel.IntersectionKHR; |
| 1693 | pub const AnyHitNV = ExecutionModel.AnyHitKHR; |
| 1694 | pub const ClosestHitNV = ExecutionModel.ClosestHitKHR; |
| 1695 | pub const MissNV = ExecutionModel.MissKHR; |
| 1696 | pub const CallableNV = ExecutionModel.CallableKHR; |
| 960 | 1697 | }; |
| 961 | 1698 | pub const AddressingModel = enum(u32) { |
| 962 | 1699 | Logical = 0, |
| 963 | 1700 | Physical32 = 1, |
| 964 | 1701 | Physical64 = 2, |
| 965 | 1702 | PhysicalStorageBuffer64 = 5348, |
| 966 | | _, |
| 1703 | |
| 1704 | pub const PhysicalStorageBuffer64EXT = AddressingModel.PhysicalStorageBuffer64; |
| 967 | 1705 | }; |
| 968 | 1706 | pub const MemoryModel = enum(u32) { |
| 969 | 1707 | Simple = 0, |
| 970 | 1708 | GLSL450 = 1, |
| 971 | 1709 | OpenCL = 2, |
| 972 | 1710 | Vulkan = 3, |
| 973 | | _, |
| 1711 | |
| 1712 | pub const VulkanKHR = MemoryModel.Vulkan; |
| 974 | 1713 | }; |
| 975 | 1714 | pub const ExecutionMode = enum(u32) { |
| 976 | 1715 | Invocations = 0, |
| ... | ... | @@ -1039,7 +1778,75 @@ pub const ExecutionMode = enum(u32) { |
| 1039 | 1778 | NoGlobalOffsetINTEL = 5895, |
| 1040 | 1779 | NumSIMDWorkitemsINTEL = 5896, |
| 1041 | 1780 | SchedulerTargetFmaxMhzINTEL = 5903, |
| 1042 | | _, |
| 1781 | |
| 1782 | pub const Extended = union(ExecutionMode) { |
| 1783 | Invocations: struct { literal_integer: LiteralInteger }, |
| 1784 | SpacingEqual, |
| 1785 | SpacingFractionalEven, |
| 1786 | SpacingFractionalOdd, |
| 1787 | VertexOrderCw, |
| 1788 | VertexOrderCcw, |
| 1789 | PixelCenterInteger, |
| 1790 | OriginUpperLeft, |
| 1791 | OriginLowerLeft, |
| 1792 | EarlyFragmentTests, |
| 1793 | PointMode, |
| 1794 | Xfb, |
| 1795 | DepthReplacing, |
| 1796 | DepthGreater, |
| 1797 | DepthLess, |
| 1798 | DepthUnchanged, |
| 1799 | LocalSize: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger }, |
| 1800 | LocalSizeHint: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger }, |
| 1801 | InputPoints, |
| 1802 | InputLines, |
| 1803 | InputLinesAdjacency, |
| 1804 | Triangles, |
| 1805 | InputTrianglesAdjacency, |
| 1806 | Quads, |
| 1807 | Isolines, |
| 1808 | OutputVertices: struct { vertex_count: LiteralInteger }, |
| 1809 | OutputPoints, |
| 1810 | OutputLineStrip, |
| 1811 | OutputTriangleStrip, |
| 1812 | VecTypeHint: struct { vector_type: LiteralInteger }, |
| 1813 | ContractionOff, |
| 1814 | Initializer, |
| 1815 | Finalizer, |
| 1816 | SubgroupSize: struct { subgroup_size: LiteralInteger }, |
| 1817 | SubgroupsPerWorkgroup: struct { subgroups_per_workgroup: LiteralInteger }, |
| 1818 | SubgroupsPerWorkgroupId: struct { subgroups_per_workgroup: IdRef }, |
| 1819 | LocalSizeId: struct { x_size: IdRef, y_size: IdRef, z_size: IdRef }, |
| 1820 | LocalSizeHintId: struct { local_size_hint: IdRef }, |
| 1821 | PostDepthCoverage, |
| 1822 | DenormPreserve: struct { target_width: LiteralInteger }, |
| 1823 | DenormFlushToZero: struct { target_width: LiteralInteger }, |
| 1824 | SignedZeroInfNanPreserve: struct { target_width: LiteralInteger }, |
| 1825 | RoundingModeRTE: struct { target_width: LiteralInteger }, |
| 1826 | RoundingModeRTZ: struct { target_width: LiteralInteger }, |
| 1827 | StencilRefReplacingEXT, |
| 1828 | OutputLinesNV, |
| 1829 | OutputPrimitivesNV: struct { primitive_count: LiteralInteger }, |
| 1830 | DerivativeGroupQuadsNV, |
| 1831 | DerivativeGroupLinearNV, |
| 1832 | OutputTrianglesNV, |
| 1833 | PixelInterlockOrderedEXT, |
| 1834 | PixelInterlockUnorderedEXT, |
| 1835 | SampleInterlockOrderedEXT, |
| 1836 | SampleInterlockUnorderedEXT, |
| 1837 | ShadingRateInterlockOrderedEXT, |
| 1838 | ShadingRateInterlockUnorderedEXT, |
| 1839 | SharedLocalMemorySizeINTEL: struct { size: LiteralInteger }, |
| 1840 | RoundingModeRTPINTEL: struct { target_width: LiteralInteger }, |
| 1841 | RoundingModeRTNINTEL: struct { target_width: LiteralInteger }, |
| 1842 | FloatingPointModeALTINTEL: struct { target_width: LiteralInteger }, |
| 1843 | FloatingPointModeIEEEINTEL: struct { target_width: LiteralInteger }, |
| 1844 | MaxWorkgroupSizeINTEL: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger, literal_integer_2: LiteralInteger }, |
| 1845 | MaxWorkDimINTEL: struct { literal_integer: LiteralInteger }, |
| 1846 | NoGlobalOffsetINTEL, |
| 1847 | NumSIMDWorkitemsINTEL: struct { literal_integer: LiteralInteger }, |
| 1848 | SchedulerTargetFmaxMhzINTEL: struct { literal_integer: LiteralInteger }, |
| 1849 | }; |
| 1043 | 1850 | }; |
| 1044 | 1851 | pub const StorageClass = enum(u32) { |
| 1045 | 1852 | UniformConstant = 0, |
| ... | ... | @@ -1065,7 +1872,14 @@ pub const StorageClass = enum(u32) { |
| 1065 | 1872 | CodeSectionINTEL = 5605, |
| 1066 | 1873 | DeviceOnlyINTEL = 5936, |
| 1067 | 1874 | HostOnlyINTEL = 5937, |
| 1068 | | _, |
| 1875 | |
| 1876 | pub const CallableDataNV = StorageClass.CallableDataKHR; |
| 1877 | pub const IncomingCallableDataNV = StorageClass.IncomingCallableDataKHR; |
| 1878 | pub const RayPayloadNV = StorageClass.RayPayloadKHR; |
| 1879 | pub const HitAttributeNV = StorageClass.HitAttributeKHR; |
| 1880 | pub const IncomingRayPayloadNV = StorageClass.IncomingRayPayloadKHR; |
| 1881 | pub const ShaderRecordBufferNV = StorageClass.ShaderRecordBufferKHR; |
| 1882 | pub const PhysicalStorageBufferEXT = StorageClass.PhysicalStorageBuffer; |
| 1069 | 1883 | }; |
| 1070 | 1884 | pub const Dim = enum(u32) { |
| 1071 | 1885 | @"1D" = 0, |
| ... | ... | @@ -1075,7 +1889,6 @@ pub const Dim = enum(u32) { |
| 1075 | 1889 | Rect = 4, |
| 1076 | 1890 | Buffer = 5, |
| 1077 | 1891 | SubpassData = 6, |
| 1078 | | _, |
| 1079 | 1892 | }; |
| 1080 | 1893 | pub const SamplerAddressingMode = enum(u32) { |
| 1081 | 1894 | None = 0, |
| ... | ... | @@ -1083,12 +1896,10 @@ pub const SamplerAddressingMode = enum(u32) { |
| 1083 | 1896 | Clamp = 2, |
| 1084 | 1897 | Repeat = 3, |
| 1085 | 1898 | RepeatMirrored = 4, |
| 1086 | | _, |
| 1087 | 1899 | }; |
| 1088 | 1900 | pub const SamplerFilterMode = enum(u32) { |
| 1089 | 1901 | Nearest = 0, |
| 1090 | 1902 | Linear = 1, |
| 1091 | | _, |
| 1092 | 1903 | }; |
| 1093 | 1904 | pub const ImageFormat = enum(u32) { |
| 1094 | 1905 | Unknown = 0, |
| ... | ... | @@ -1133,7 +1944,6 @@ pub const ImageFormat = enum(u32) { |
| 1133 | 1944 | R8ui = 39, |
| 1134 | 1945 | R64ui = 40, |
| 1135 | 1946 | R64i = 41, |
| 1136 | | _, |
| 1137 | 1947 | }; |
| 1138 | 1948 | pub const ImageChannelOrder = enum(u32) { |
| 1139 | 1949 | R = 0, |
| ... | ... | @@ -1156,7 +1966,6 @@ pub const ImageChannelOrder = enum(u32) { |
| 1156 | 1966 | sRGBA = 17, |
| 1157 | 1967 | sBGRA = 18, |
| 1158 | 1968 | ABGR = 19, |
| 1159 | | _, |
| 1160 | 1969 | }; |
| 1161 | 1970 | pub const ImageChannelDataType = enum(u32) { |
| 1162 | 1971 | SnormInt8 = 0, |
| ... | ... | @@ -1176,36 +1985,30 @@ pub const ImageChannelDataType = enum(u32) { |
| 1176 | 1985 | Float = 14, |
| 1177 | 1986 | UnormInt24 = 15, |
| 1178 | 1987 | UnormInt101010_2 = 16, |
| 1179 | | _, |
| 1180 | 1988 | }; |
| 1181 | 1989 | pub const FPRoundingMode = enum(u32) { |
| 1182 | 1990 | RTE = 0, |
| 1183 | 1991 | RTZ = 1, |
| 1184 | 1992 | RTP = 2, |
| 1185 | 1993 | RTN = 3, |
| 1186 | | _, |
| 1187 | 1994 | }; |
| 1188 | 1995 | pub const FPDenormMode = enum(u32) { |
| 1189 | 1996 | Preserve = 0, |
| 1190 | 1997 | FlushToZero = 1, |
| 1191 | | _, |
| 1192 | 1998 | }; |
| 1193 | 1999 | pub const FPOperationMode = enum(u32) { |
| 1194 | 2000 | IEEE = 0, |
| 1195 | 2001 | ALT = 1, |
| 1196 | | _, |
| 1197 | 2002 | }; |
| 1198 | 2003 | pub const LinkageType = enum(u32) { |
| 1199 | 2004 | Export = 0, |
| 1200 | 2005 | Import = 1, |
| 1201 | 2006 | LinkOnceODR = 2, |
| 1202 | | _, |
| 1203 | 2007 | }; |
| 1204 | 2008 | pub const AccessQualifier = enum(u32) { |
| 1205 | 2009 | ReadOnly = 0, |
| 1206 | 2010 | WriteOnly = 1, |
| 1207 | 2011 | ReadWrite = 2, |
| 1208 | | _, |
| 1209 | 2012 | }; |
| 1210 | 2013 | pub const FunctionParameterAttribute = enum(u32) { |
| 1211 | 2014 | Zext = 0, |
| ... | ... | @@ -1216,7 +2019,6 @@ pub const FunctionParameterAttribute = enum(u32) { |
| 1216 | 2019 | NoCapture = 5, |
| 1217 | 2020 | NoWrite = 6, |
| 1218 | 2021 | NoReadWrite = 7, |
| 1219 | | _, |
| 1220 | 2022 | }; |
| 1221 | 2023 | pub const Decoration = enum(u32) { |
| 1222 | 2024 | RelaxedPrecision = 0, |
| ... | ... | @@ -1278,11 +2080,8 @@ pub const Decoration = enum(u32) { |
| 1278 | 2080 | PerTaskNV = 5273, |
| 1279 | 2081 | PerVertexNV = 5285, |
| 1280 | 2082 | NonUniform = 5300, |
| 1281 | | NonUniformEXT = 5300, |
| 1282 | 2083 | RestrictPointer = 5355, |
| 1283 | | RestrictPointerEXT = 5355, |
| 1284 | 2084 | AliasedPointer = 5356, |
| 1285 | | AliasedPointerEXT = 5356, |
| 1286 | 2085 | SIMTCallINTEL = 5599, |
| 1287 | 2086 | ReferencedIndirectlyINTEL = 5602, |
| 1288 | 2087 | ClobberINTEL = 5607, |
| ... | ... | @@ -1293,9 +2092,7 @@ pub const Decoration = enum(u32) { |
| 1293 | 2092 | StackCallINTEL = 5627, |
| 1294 | 2093 | GlobalVariableOffsetINTEL = 5628, |
| 1295 | 2094 | CounterBuffer = 5634, |
| 1296 | | HlslCounterBufferGOOGLE = 5634, |
| 1297 | 2095 | UserSemantic = 5635, |
| 1298 | | HlslSemanticGOOGLE = 5635, |
| 1299 | 2096 | UserTypeGOOGLE = 5636, |
| 1300 | 2097 | FunctionRoundingModeINTEL = 5822, |
| 1301 | 2098 | FunctionDenormModeINTEL = 5823, |
| ... | ... | @@ -1322,7 +2119,113 @@ pub const Decoration = enum(u32) { |
| 1322 | 2119 | FunctionFloatingPointModeINTEL = 6080, |
| 1323 | 2120 | SingleElementVectorINTEL = 6085, |
| 1324 | 2121 | VectorComputeCallableFunctionINTEL = 6087, |
| 1325 | | _, |
| 2122 | |
| 2123 | pub const NonUniformEXT = Decoration.NonUniform; |
| 2124 | pub const RestrictPointerEXT = Decoration.RestrictPointer; |
| 2125 | pub const AliasedPointerEXT = Decoration.AliasedPointer; |
| 2126 | pub const HlslCounterBufferGOOGLE = Decoration.CounterBuffer; |
| 2127 | pub const HlslSemanticGOOGLE = Decoration.UserSemantic; |
| 2128 | |
| 2129 | pub const Extended = union(Decoration) { |
| 2130 | RelaxedPrecision, |
| 2131 | SpecId: struct { specialization_constant_id: LiteralInteger }, |
| 2132 | Block, |
| 2133 | BufferBlock, |
| 2134 | RowMajor, |
| 2135 | ColMajor, |
| 2136 | ArrayStride: struct { array_stride: LiteralInteger }, |
| 2137 | MatrixStride: struct { matrix_stride: LiteralInteger }, |
| 2138 | GLSLShared, |
| 2139 | GLSLPacked, |
| 2140 | CPacked, |
| 2141 | BuiltIn: struct { built_in: BuiltIn }, |
| 2142 | NoPerspective, |
| 2143 | Flat, |
| 2144 | Patch, |
| 2145 | Centroid, |
| 2146 | Sample, |
| 2147 | Invariant, |
| 2148 | Restrict, |
| 2149 | Aliased, |
| 2150 | Volatile, |
| 2151 | Constant, |
| 2152 | Coherent, |
| 2153 | NonWritable, |
| 2154 | NonReadable, |
| 2155 | Uniform, |
| 2156 | UniformId: struct { execution: IdScope }, |
| 2157 | SaturatedConversion, |
| 2158 | Stream: struct { stream_number: LiteralInteger }, |
| 2159 | Location: struct { location: LiteralInteger }, |
| 2160 | Component: struct { component: LiteralInteger }, |
| 2161 | Index: struct { index: LiteralInteger }, |
| 2162 | Binding: struct { binding_point: LiteralInteger }, |
| 2163 | DescriptorSet: struct { descriptor_set: LiteralInteger }, |
| 2164 | Offset: struct { byte_offset: LiteralInteger }, |
| 2165 | XfbBuffer: struct { xfb_buffer_number: LiteralInteger }, |
| 2166 | XfbStride: struct { xfb_stride: LiteralInteger }, |
| 2167 | FuncParamAttr: struct { function_parameter_attribute: FunctionParameterAttribute }, |
| 2168 | FPRoundingMode: struct { fprounding_mode: FPRoundingMode }, |
| 2169 | FPFastMathMode: struct { fpfast_math_mode: FPFastMathMode }, |
| 2170 | LinkageAttributes: struct { name: LiteralString, linkage_type: LinkageType }, |
| 2171 | NoContraction, |
| 2172 | InputAttachmentIndex: struct { attachment_index: LiteralInteger }, |
| 2173 | Alignment: struct { alignment: LiteralInteger }, |
| 2174 | MaxByteOffset: struct { max_byte_offset: LiteralInteger }, |
| 2175 | AlignmentId: struct { alignment: IdRef }, |
| 2176 | MaxByteOffsetId: struct { max_byte_offset: IdRef }, |
| 2177 | NoSignedWrap, |
| 2178 | NoUnsignedWrap, |
| 2179 | ExplicitInterpAMD, |
| 2180 | OverrideCoverageNV, |
| 2181 | PassthroughNV, |
| 2182 | ViewportRelativeNV, |
| 2183 | SecondaryViewportRelativeNV: struct { offset: LiteralInteger }, |
| 2184 | PerPrimitiveNV, |
| 2185 | PerViewNV, |
| 2186 | PerTaskNV, |
| 2187 | PerVertexNV, |
| 2188 | NonUniform, |
| 2189 | RestrictPointer, |
| 2190 | AliasedPointer, |
| 2191 | SIMTCallINTEL: struct { n: LiteralInteger }, |
| 2192 | ReferencedIndirectlyINTEL, |
| 2193 | ClobberINTEL: struct { register: LiteralString }, |
| 2194 | SideEffectsINTEL, |
| 2195 | VectorComputeVariableINTEL, |
| 2196 | FuncParamIOKindINTEL: struct { kind: LiteralInteger }, |
| 2197 | VectorComputeFunctionINTEL, |
| 2198 | StackCallINTEL, |
| 2199 | GlobalVariableOffsetINTEL: struct { offset: LiteralInteger }, |
| 2200 | CounterBuffer: struct { counter_buffer: IdRef }, |
| 2201 | UserSemantic: struct { semantic: LiteralString }, |
| 2202 | UserTypeGOOGLE: struct { user_type: LiteralString }, |
| 2203 | FunctionRoundingModeINTEL: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode }, |
| 2204 | FunctionDenormModeINTEL: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode }, |
| 2205 | RegisterINTEL, |
| 2206 | MemoryINTEL: struct { memory_type: LiteralString }, |
| 2207 | NumbanksINTEL: struct { banks: LiteralInteger }, |
| 2208 | BankwidthINTEL: struct { bank_width: LiteralInteger }, |
| 2209 | MaxPrivateCopiesINTEL: struct { maximum_copies: LiteralInteger }, |
| 2210 | SinglepumpINTEL, |
| 2211 | DoublepumpINTEL, |
| 2212 | MaxReplicatesINTEL: struct { maximum_replicates: LiteralInteger }, |
| 2213 | SimpleDualPortINTEL, |
| 2214 | MergeINTEL: struct { merge_key: LiteralString, merge_type: LiteralString }, |
| 2215 | BankBitsINTEL: struct { bank_bits: []const LiteralInteger = &.{} }, |
| 2216 | ForcePow2DepthINTEL: struct { force_key: LiteralInteger }, |
| 2217 | BurstCoalesceINTEL, |
| 2218 | CacheSizeINTEL: struct { cache_size_in_bytes: LiteralInteger }, |
| 2219 | DontStaticallyCoalesceINTEL, |
| 2220 | PrefetchINTEL: struct { prefetcher_size_in_bytes: LiteralInteger }, |
| 2221 | StallEnableINTEL, |
| 2222 | FuseLoopsInFunctionINTEL, |
| 2223 | BufferLocationINTEL: struct { buffer_location_id: LiteralInteger }, |
| 2224 | IOPipeStorageINTEL: struct { io_pipe_id: LiteralInteger }, |
| 2225 | FunctionFloatingPointModeINTEL: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode }, |
| 2226 | SingleElementVectorINTEL, |
| 2227 | VectorComputeCallableFunctionINTEL, |
| 2228 | }; |
| 1326 | 2229 | }; |
| 1327 | 2230 | pub const BuiltIn = enum(u32) { |
| 1328 | 2231 | Position = 0, |
| ... | ... | @@ -1367,15 +2270,10 @@ pub const BuiltIn = enum(u32) { |
| 1367 | 2270 | VertexIndex = 42, |
| 1368 | 2271 | InstanceIndex = 43, |
| 1369 | 2272 | SubgroupEqMask = 4416, |
| 1370 | | SubgroupEqMaskKHR = 4416, |
| 1371 | 2273 | SubgroupGeMask = 4417, |
| 1372 | | SubgroupGeMaskKHR = 4417, |
| 1373 | 2274 | SubgroupGtMask = 4418, |
| 1374 | | SubgroupGtMaskKHR = 4418, |
| 1375 | 2275 | SubgroupLeMask = 4419, |
| 1376 | | SubgroupLeMaskKHR = 4419, |
| 1377 | 2276 | SubgroupLtMask = 4420, |
| 1378 | | SubgroupLtMaskKHR = 4420, |
| 1379 | 2277 | BaseVertex = 4424, |
| 1380 | 2278 | BaseInstance = 4425, |
| 1381 | 2279 | DrawIndex = 4426, |
| ... | ... | @@ -1408,42 +2306,47 @@ pub const BuiltIn = enum(u32) { |
| 1408 | 2306 | BaryCoordNV = 5286, |
| 1409 | 2307 | BaryCoordNoPerspNV = 5287, |
| 1410 | 2308 | FragSizeEXT = 5292, |
| 1411 | | FragmentSizeNV = 5292, |
| 1412 | 2309 | FragInvocationCountEXT = 5293, |
| 1413 | | InvocationsPerPixelNV = 5293, |
| 1414 | | LaunchIdNV = 5319, |
| 1415 | 2310 | LaunchIdKHR = 5319, |
| 1416 | | LaunchSizeNV = 5320, |
| 1417 | 2311 | LaunchSizeKHR = 5320, |
| 1418 | | WorldRayOriginNV = 5321, |
| 1419 | 2312 | WorldRayOriginKHR = 5321, |
| 1420 | | WorldRayDirectionNV = 5322, |
| 1421 | 2313 | WorldRayDirectionKHR = 5322, |
| 1422 | | ObjectRayOriginNV = 5323, |
| 1423 | 2314 | ObjectRayOriginKHR = 5323, |
| 1424 | | ObjectRayDirectionNV = 5324, |
| 1425 | 2315 | ObjectRayDirectionKHR = 5324, |
| 1426 | | RayTminNV = 5325, |
| 1427 | 2316 | RayTminKHR = 5325, |
| 1428 | | RayTmaxNV = 5326, |
| 1429 | 2317 | RayTmaxKHR = 5326, |
| 1430 | | InstanceCustomIndexNV = 5327, |
| 1431 | 2318 | InstanceCustomIndexKHR = 5327, |
| 1432 | | ObjectToWorldNV = 5330, |
| 1433 | 2319 | ObjectToWorldKHR = 5330, |
| 1434 | | WorldToObjectNV = 5331, |
| 1435 | 2320 | WorldToObjectKHR = 5331, |
| 1436 | 2321 | HitTNV = 5332, |
| 1437 | | HitKindNV = 5333, |
| 1438 | 2322 | HitKindKHR = 5333, |
| 1439 | | IncomingRayFlagsNV = 5351, |
| 1440 | 2323 | IncomingRayFlagsKHR = 5351, |
| 1441 | 2324 | RayGeometryIndexKHR = 5352, |
| 1442 | 2325 | WarpsPerSMNV = 5374, |
| 1443 | 2326 | SMCountNV = 5375, |
| 1444 | 2327 | WarpIDNV = 5376, |
| 1445 | 2328 | SMIDNV = 5377, |
| 1446 | | _, |
| 2329 | |
| 2330 | pub const SubgroupEqMaskKHR = BuiltIn.SubgroupEqMask; |
| 2331 | pub const SubgroupGeMaskKHR = BuiltIn.SubgroupGeMask; |
| 2332 | pub const SubgroupGtMaskKHR = BuiltIn.SubgroupGtMask; |
| 2333 | pub const SubgroupLeMaskKHR = BuiltIn.SubgroupLeMask; |
| 2334 | pub const SubgroupLtMaskKHR = BuiltIn.SubgroupLtMask; |
| 2335 | pub const FragmentSizeNV = BuiltIn.FragSizeEXT; |
| 2336 | pub const InvocationsPerPixelNV = BuiltIn.FragInvocationCountEXT; |
| 2337 | pub const LaunchIdNV = BuiltIn.LaunchIdKHR; |
| 2338 | pub const LaunchSizeNV = BuiltIn.LaunchSizeKHR; |
| 2339 | pub const WorldRayOriginNV = BuiltIn.WorldRayOriginKHR; |
| 2340 | pub const WorldRayDirectionNV = BuiltIn.WorldRayDirectionKHR; |
| 2341 | pub const ObjectRayOriginNV = BuiltIn.ObjectRayOriginKHR; |
| 2342 | pub const ObjectRayDirectionNV = BuiltIn.ObjectRayDirectionKHR; |
| 2343 | pub const RayTminNV = BuiltIn.RayTminKHR; |
| 2344 | pub const RayTmaxNV = BuiltIn.RayTmaxKHR; |
| 2345 | pub const InstanceCustomIndexNV = BuiltIn.InstanceCustomIndexKHR; |
| 2346 | pub const ObjectToWorldNV = BuiltIn.ObjectToWorldKHR; |
| 2347 | pub const WorldToObjectNV = BuiltIn.WorldToObjectKHR; |
| 2348 | pub const HitKindNV = BuiltIn.HitKindKHR; |
| 2349 | pub const IncomingRayFlagsNV = BuiltIn.IncomingRayFlagsKHR; |
| 1447 | 2350 | }; |
| 1448 | 2351 | pub const Scope = enum(u32) { |
| 1449 | 2352 | CrossDevice = 0, |
| ... | ... | @@ -1452,9 +2355,9 @@ pub const Scope = enum(u32) { |
| 1452 | 2355 | Subgroup = 3, |
| 1453 | 2356 | Invocation = 4, |
| 1454 | 2357 | QueueFamily = 5, |
| 1455 | | QueueFamilyKHR = 5, |
| 1456 | 2358 | ShaderCallKHR = 6, |
| 1457 | | _, |
| 2359 | |
| 2360 | pub const QueueFamilyKHR = Scope.QueueFamily; |
| 1458 | 2361 | }; |
| 1459 | 2362 | pub const GroupOperation = enum(u32) { |
| 1460 | 2363 | Reduce = 0, |
| ... | ... | @@ -1464,13 +2367,11 @@ pub const GroupOperation = enum(u32) { |
| 1464 | 2367 | PartitionedReduceNV = 6, |
| 1465 | 2368 | PartitionedInclusiveScanNV = 7, |
| 1466 | 2369 | PartitionedExclusiveScanNV = 8, |
| 1467 | | _, |
| 1468 | 2370 | }; |
| 1469 | 2371 | pub const KernelEnqueueFlags = enum(u32) { |
| 1470 | 2372 | NoWait = 0, |
| 1471 | 2373 | WaitKernel = 1, |
| 1472 | 2374 | WaitWorkGroup = 2, |
| 1473 | | _, |
| 1474 | 2375 | }; |
| 1475 | 2376 | pub const Capability = enum(u32) { |
| 1476 | 2377 | Matrix = 0, |
| ... | ... | @@ -1550,7 +2451,7 @@ pub const Capability = enum(u32) { |
| 1550 | 2451 | WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, |
| 1551 | 2452 | SubgroupVoteKHR = 4431, |
| 1552 | 2453 | StorageBuffer16BitAccess = 4433, |
| 1553 | | StorageUniform16 = 4434, |
| 2454 | UniformAndStorageBuffer16BitAccess = 4434, |
| 1554 | 2455 | StoragePushConstant16 = 4435, |
| 1555 | 2456 | StorageInputOutput16 = 4436, |
| 1556 | 2457 | DeviceGroup = 4437, |
| ... | ... | @@ -1580,7 +2481,7 @@ pub const Capability = enum(u32) { |
| 1580 | 2481 | ShaderClockKHR = 5055, |
| 1581 | 2482 | SampleMaskOverrideCoverageNV = 5249, |
| 1582 | 2483 | GeometryShaderPassthroughNV = 5251, |
| 1583 | | ShaderViewportIndexLayerNV = 5254, |
| 2484 | ShaderViewportIndexLayerEXT = 5254, |
| 1584 | 2485 | ShaderViewportMaskNV = 5255, |
| 1585 | 2486 | ShaderStereoViewNV = 5259, |
| 1586 | 2487 | PerViewAttributesNV = 5260, |
| ... | ... | @@ -1589,7 +2490,7 @@ pub const Capability = enum(u32) { |
| 1589 | 2490 | ImageFootprintNV = 5282, |
| 1590 | 2491 | FragmentBarycentricNV = 5284, |
| 1591 | 2492 | ComputeDerivativeGroupQuadsNV = 5288, |
| 1592 | | ShadingRateNV = 5291, |
| 2493 | FragmentDensityEXT = 5291, |
| 1593 | 2494 | GroupNonUniformPartitionedNV = 5297, |
| 1594 | 2495 | ShaderNonUniform = 5301, |
| 1595 | 2496 | RuntimeDescriptorArray = 5302, |
| ... | ... | @@ -1654,21 +2555,37 @@ pub const Capability = enum(u32) { |
| 1654 | 2555 | AtomicFloat32AddEXT = 6033, |
| 1655 | 2556 | AtomicFloat64AddEXT = 6034, |
| 1656 | 2557 | LongConstantCompositeINTEL = 6089, |
| 1657 | | _, |
| 2558 | |
| 2559 | pub const StorageUniformBufferBlock16 = Capability.StorageBuffer16BitAccess; |
| 2560 | pub const StorageUniform16 = Capability.UniformAndStorageBuffer16BitAccess; |
| 2561 | pub const ShaderViewportIndexLayerNV = Capability.ShaderViewportIndexLayerEXT; |
| 2562 | pub const ShadingRateNV = Capability.FragmentDensityEXT; |
| 2563 | pub const ShaderNonUniformEXT = Capability.ShaderNonUniform; |
| 2564 | pub const RuntimeDescriptorArrayEXT = Capability.RuntimeDescriptorArray; |
| 2565 | pub const InputAttachmentArrayDynamicIndexingEXT = Capability.InputAttachmentArrayDynamicIndexing; |
| 2566 | pub const UniformTexelBufferArrayDynamicIndexingEXT = Capability.UniformTexelBufferArrayDynamicIndexing; |
| 2567 | pub const StorageTexelBufferArrayDynamicIndexingEXT = Capability.StorageTexelBufferArrayDynamicIndexing; |
| 2568 | pub const UniformBufferArrayNonUniformIndexingEXT = Capability.UniformBufferArrayNonUniformIndexing; |
| 2569 | pub const SampledImageArrayNonUniformIndexingEXT = Capability.SampledImageArrayNonUniformIndexing; |
| 2570 | pub const StorageBufferArrayNonUniformIndexingEXT = Capability.StorageBufferArrayNonUniformIndexing; |
| 2571 | pub const StorageImageArrayNonUniformIndexingEXT = Capability.StorageImageArrayNonUniformIndexing; |
| 2572 | pub const InputAttachmentArrayNonUniformIndexingEXT = Capability.InputAttachmentArrayNonUniformIndexing; |
| 2573 | pub const UniformTexelBufferArrayNonUniformIndexingEXT = Capability.UniformTexelBufferArrayNonUniformIndexing; |
| 2574 | pub const StorageTexelBufferArrayNonUniformIndexingEXT = Capability.StorageTexelBufferArrayNonUniformIndexing; |
| 2575 | pub const VulkanMemoryModelKHR = Capability.VulkanMemoryModel; |
| 2576 | pub const VulkanMemoryModelDeviceScopeKHR = Capability.VulkanMemoryModelDeviceScope; |
| 2577 | pub const PhysicalStorageBufferAddressesEXT = Capability.PhysicalStorageBufferAddresses; |
| 1658 | 2578 | }; |
| 1659 | 2579 | pub const RayQueryIntersection = enum(u32) { |
| 1660 | 2580 | RayQueryCandidateIntersectionKHR = 0, |
| 1661 | 2581 | RayQueryCommittedIntersectionKHR = 1, |
| 1662 | | _, |
| 1663 | 2582 | }; |
| 1664 | 2583 | pub const RayQueryCommittedIntersectionType = enum(u32) { |
| 1665 | 2584 | RayQueryCommittedIntersectionNoneKHR = 0, |
| 1666 | 2585 | RayQueryCommittedIntersectionTriangleKHR = 1, |
| 1667 | 2586 | RayQueryCommittedIntersectionGeneratedKHR = 2, |
| 1668 | | _, |
| 1669 | 2587 | }; |
| 1670 | 2588 | pub const RayQueryCandidateIntersectionType = enum(u32) { |
| 1671 | 2589 | RayQueryCandidateIntersectionTriangleKHR = 0, |
| 1672 | 2590 | RayQueryCandidateIntersectionAABBKHR = 1, |
| 1673 | | _, |
| 1674 | 2591 | }; |