| ... | ... | @@ -15,13 +15,14 @@ pub const Feature = enum { |
| 15 | 15 | int64, |
| 16 | 16 | float16, |
| 17 | 17 | float64, |
| 18 | | addresses, |
| 19 | 18 | matrix, |
| 20 | 19 | storage_push_constant16, |
| 21 | 20 | kernel, |
| 21 | addresses, |
| 22 | 22 | generic_pointer, |
| 23 | 23 | vector16, |
| 24 | 24 | shader, |
| 25 | physical_storage_buffer, |
| 25 | 26 | }; |
| 26 | 27 | |
| 27 | 28 | pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet; |
| ... | ... | @@ -94,11 +95,6 @@ pub const all_features = blk: { |
| 94 | 95 | .description = "Enable Float64 capability", |
| 95 | 96 | .dependencies = featureSet(&[_]Feature{.v1_0}), |
| 96 | 97 | }; |
| 97 | | result[@intFromEnum(Feature.addresses)] = .{ |
| 98 | | .llvm_name = null, |
| 99 | | .description = "Enable either the Addresses capability or, SPV_KHR_physical_storage_buffer extension and the PhysicalStorageBufferAddresses capability", |
| 100 | | .dependencies = featureSet(&[_]Feature{.v1_0}), |
| 101 | | }; |
| 102 | 98 | result[@intFromEnum(Feature.matrix)] = .{ |
| 103 | 99 | .llvm_name = null, |
| 104 | 100 | .description = "Enable Matrix capability", |
| ... | ... | @@ -114,6 +110,11 @@ pub const all_features = blk: { |
| 114 | 110 | .description = "Enable Kernel capability", |
| 115 | 111 | .dependencies = featureSet(&[_]Feature{.v1_0}), |
| 116 | 112 | }; |
| 113 | result[@intFromEnum(Feature.addresses)] = .{ |
| 114 | .llvm_name = null, |
| 115 | .description = "Enable Addresses capability", |
| 116 | .dependencies = featureSet(&[_]Feature{.v1_0}), |
| 117 | }; |
| 117 | 118 | result[@intFromEnum(Feature.generic_pointer)] = .{ |
| 118 | 119 | .llvm_name = null, |
| 119 | 120 | .description = "Enable GenericPointer capability", |
| ... | ... | @@ -129,6 +130,11 @@ pub const all_features = blk: { |
| 129 | 130 | .description = "Enable Shader capability", |
| 130 | 131 | .dependencies = featureSet(&[_]Feature{ .v1_0, .matrix }), |
| 131 | 132 | }; |
| 133 | result[@intFromEnum(Feature.physical_storage_buffer)] = .{ |
| 134 | .llvm_name = null, |
| 135 | .description = "Enable SPV_KHR_physical_storage_buffer extension and the PhysicalStorageBufferAddresses capability", |
| 136 | .dependencies = featureSet(&[_]Feature{.v1_0}), |
| 137 | }; |
| 132 | 138 | const ti = @typeInfo(Feature); |
| 133 | 139 | for (&result, 0..) |*elem, i| { |
| 134 | 140 | elem.index = i; |
| ... | ... | @@ -147,7 +153,7 @@ pub const cpu = struct { |
| 147 | 153 | pub const vulkan_v1_2: CpuModel = .{ |
| 148 | 154 | .name = "vulkan_v1_2", |
| 149 | 155 | .llvm_name = null, |
| 150 | | .features = featureSet(&[_]Feature{ .v1_5, .shader, .addresses }), |
| 156 | .features = featureSet(&[_]Feature{ .v1_5, .shader, .physical_storage_buffer }), |
| 151 | 157 | }; |
| 152 | 158 | |
| 153 | 159 | pub const opencl_v2: CpuModel = .{ |