James Price | 4cc4315 | 2021-09-02 13:49:59 +0000 | [diff] [blame] | 1 | # Tint changes during Origin Trial |
| 2 | |
dan sinclair | f374b81 | 2023-01-30 15:34:49 +0000 | [diff] [blame] | 3 | ## Changes for M112 |
| 4 | |
| 5 | ### Breaking changes |
| 6 | |
Ben Clayton | b549b30 | 2023-02-22 16:18:22 +0000 | [diff] [blame] | 7 | * Most builtin functions that return a value can no longer be used as a call statement. [tint:1844](crbug.com/tint/1844) |
James Price | d9c0f21 | 2023-02-07 19:40:01 +0000 | [diff] [blame] | 8 | * The `sig` member of the return type of `frexp()` has been renamed to `fract`. [tint:1766](crbug.com/tint/1766) |
| 9 | * Calling a function with multiple pointer arguments that alias each other is now a error. [tint:1675](crbug.com/tint/1675) |
dan sinclair | 2157170 | 2023-02-21 16:55:07 +0000 | [diff] [blame] | 10 | * `type` deprecation has been removed. `alias` must be used now. [tint:1812](crbug.com/tint/1812) |
dan sinclair | b92ff39 | 2023-02-21 18:44:16 +0000 | [diff] [blame] | 11 | * `static_assert` deprecation has been removed. `const_assert` must now be used. [tint:1807](crbug.com/tint/1807) |
dan sinclair | f374b81 | 2023-01-30 15:34:49 +0000 | [diff] [blame] | 12 | |
Ben Clayton | 9dc48bc | 2023-01-24 14:55:17 +0000 | [diff] [blame] | 13 | ## Changes for M111 |
| 14 | |
James Price | b4049dc | 2023-01-26 13:02:59 +0000 | [diff] [blame] | 15 | ### New features |
| 16 | |
| 17 | * The `workgroupUniformLoad` builtin function is now supported. [tint:1780](crbug.com/tint/1780) |
| 18 | * The `diagnostic` directive and `@diagnostic` attribute are now supported. [tint:1809](crbug.com/tint/1809) |
| 19 | * The attribute is currently only supported on function declarations. |
| 20 | |
Ben Clayton | 41884e4 | 2023-01-24 19:32:04 +0000 | [diff] [blame] | 21 | ### Breaking changes |
| 22 | |
| 23 | * You may need to add parentheses to less-than or greater-than binary expressions that now parse as template lists. For example `a(b<c, d>e)` will need parentheses around `b<c` or `d>e`. [tint:1810](crbug.com/tint/1810). |
James Price | b4049dc | 2023-01-26 13:02:59 +0000 | [diff] [blame] | 24 | * Uniformity analysis failures are now an error [tint:880](crbug.com/tint/880) |
| 25 | * The `derivative_uniformity` diagnostic filter can be used to modify the severity if needed. |
Ben Clayton | 41884e4 | 2023-01-24 19:32:04 +0000 | [diff] [blame] | 26 | |
Ben Clayton | 9dc48bc | 2023-01-24 14:55:17 +0000 | [diff] [blame] | 27 | ## Deprecated Features |
| 28 | |
| 29 | * The keyword to alias a type has been renamed from `type` to `alias`. [tint:1812](crbug.com/tint/1812) |
Ben Clayton | c98d57d | 2023-01-24 14:59:43 +0000 | [diff] [blame] | 30 | * `static_assert` has been renamed to `const_assert`. [tint:1807](crbug.com/tint/1807) |
Ben Clayton | 9dc48bc | 2023-01-24 14:55:17 +0000 | [diff] [blame] | 31 | |
Ben Clayton | 10fae7a | 2022-11-14 15:29:29 +0000 | [diff] [blame] | 32 | ## Changes for M110 |
| 33 | |
Ben Clayton | 543dd18 | 2022-11-18 11:17:41 +0000 | [diff] [blame] | 34 | ### Breaking changes |
| 35 | |
| 36 | * The `textureSampleLevel()` overload for `texture_external` has been removed. Use `textureSampleBaseClampToEdge()`. [tint:1671](crbug.com/tint/1671) |
| 37 | |
Ben Clayton | 10fae7a | 2022-11-14 15:29:29 +0000 | [diff] [blame] | 38 | ### Deprecated Features |
| 39 | |
| 40 | * The `sig` member of the return type of `frexp()` has been renamed to `fract`. [tint:1757](crbug.com/tint/1757) |
James Price | 4d65fc9 | 2022-11-17 17:27:27 +0000 | [diff] [blame] | 41 | * Calling a function with multiple pointer arguments that alias each other is now a warning, and |
| 42 | will become an error in a future release. [tint:1675](crbug.com/tint/1675) |
Ben Clayton | 10fae7a | 2022-11-14 15:29:29 +0000 | [diff] [blame] | 43 | |
Antonio Maiorano | 0640c81 | 2022-10-26 00:27:38 +0000 | [diff] [blame] | 44 | ## Changes for M109 |
| 45 | |
Ben Clayton | 13f0890 | 2022-10-26 18:36:44 +0000 | [diff] [blame] | 46 | ### Breaking changes |
| 47 | |
| 48 | * `textureDimensions()`, `textureNumLayers()` and `textureNumLevels()` now return unsigned integers / vectors. [tint:1526](crbug.com/tint/1526) |
dan sinclair | f218af0 | 2022-11-07 11:34:34 +0000 | [diff] [blame] | 49 | * The `@stage` attribute has been removed. The short forms should be used |
| 50 | instead (`@vertex`, `@fragment`, or `@compute`). [tint:1503](crbug.com/tint/1503) |
dan sinclair | 3b2b548 | 2022-11-07 14:20:33 +0000 | [diff] [blame] | 51 | * Module-scope `let` is now an error. Use module-scope `const` instead. [tint:1580](crbug.com/tint/1584) |
dan sinclair | 5071a54 | 2022-11-07 16:15:55 +0000 | [diff] [blame] | 52 | * Reserved words are now an error instead of a deprecation. [tint:1463](crbug.com/tint/1463) |
Ben Clayton | 55a8eac | 2022-11-09 20:11:43 +0000 | [diff] [blame] | 53 | * You may no longer use pointer parameters in `workgroup` address space. [tint:1721](crbug.com/tint/1721) |
Ben Clayton | 13f0890 | 2022-10-26 18:36:44 +0000 | [diff] [blame] | 54 | |
Antonio Maiorano | 0640c81 | 2022-10-26 00:27:38 +0000 | [diff] [blame] | 55 | ### New features |
| 56 | |
| 57 | * Uniformity analysis failures are warnings again [tint:1728](crbug.com/tint/1728) |
Ben Clayton | 2e376a9 | 2022-10-26 18:47:02 +0000 | [diff] [blame] | 58 | * You can now call texture builtins with a mix of signed and unsigned integer arguments. [tint:1733](crbug.com/tint/1733) |
Antonio Maiorano | 0640c81 | 2022-10-26 00:27:38 +0000 | [diff] [blame] | 59 | |
Ben Clayton | c4ebf2c | 2022-09-22 22:59:16 +0000 | [diff] [blame] | 60 | ## Changes for M108 |
| 61 | |
| 62 | ### New features |
| 63 | |
| 64 | * `textureSampleBaseClampToEdge()` has been implemented. [tint:1671](crbug.com/tint/1671) |
| 65 | |
| 66 | ### Deprecated Features |
| 67 | |
| 68 | * The `external_texture` overload of `textureSampleLevel()` has been deprecated. Use `textureSampleBaseClampToEdge()` instead. [tint:1671](crbug.com/tint/1671) |
| 69 | |
Ben Clayton | 75bc93c | 2022-10-11 20:36:48 +0000 | [diff] [blame] | 70 | ### Fixes |
| 71 | |
| 72 | * Constant evaluation of type conversions where the value exceeds the limits of the target type have been fixed. [tint:1707](crbug.com/tint/1707) |
| 73 | |
Ben Clayton | 4d8fa43 | 2022-09-21 13:20:13 +0000 | [diff] [blame] | 74 | ## Changes for M107 |
| 75 | |
| 76 | ### New features |
| 77 | |
| 78 | * `saturate()` has been implemented. [tint:1591](crbug.com/tint/1591) |
| 79 | |
| 80 | ### Breaking changes |
| 81 | |
Ben Clayton | 4c70d7f | 2022-09-26 12:30:05 +0000 | [diff] [blame] | 82 | * Uniformity analysis failures are now an error [tint:880](crbug.com/tint/880) |
Ben Clayton | 4d8fa43 | 2022-09-21 13:20:13 +0000 | [diff] [blame] | 83 | * Indexing an array, vector or matrix with a compile-time expression that's out-of-bounds is now an error [tint:1665](crbug.com/tint/1665) |
| 84 | |
Ben Clayton | cae5547 | 2022-08-02 16:14:25 +0000 | [diff] [blame] | 85 | ## Changes for M106 |
| 86 | |
| 87 | ### New features |
| 88 | |
| 89 | * `array()` constructor can now infer type and count. [tint:1628](crbug.com/tint/1628) |
Ben Clayton | f795308 | 2022-08-03 12:12:25 +0000 | [diff] [blame] | 90 | * `static_assert` statement has been added. [tint:1625](crbug.com/tint/1625) |
Ben Clayton | f3d9ea4 | 2022-09-13 22:47:12 +0000 | [diff] [blame] | 91 | |
dan sinclair | 0e141c2 | 2022-08-03 14:34:16 +0000 | [diff] [blame] | 92 | ### Deprecated Features |
| 93 | |
| 94 | * The list of reserved words has been sync'd to the WGSL specification. [tint:1463](crbug.com/tint/1463) |
| 95 | |
dan sinclair | 0fa572f | 2022-06-09 15:33:42 +0000 | [diff] [blame] | 96 | ## Changes for M105 |
| 97 | |
Ben Clayton | 53af158 | 2022-06-28 12:53:56 +0000 | [diff] [blame] | 98 | ### New features |
| 99 | |
| 100 | * Module-scope `var<private>` can now infer the storage type, like function-scope `var`. [tint:1584](crbug.com/tint/1584) |
dan sinclair | d23f296 | 2022-06-28 15:27:44 +0000 | [diff] [blame] | 101 | * The `acosh`, `asinh`, and `atanh` builtin functions are now supported [tint:1465](crbug.com/tint/1465) |
Ben Clayton | 53af158 | 2022-06-28 12:53:56 +0000 | [diff] [blame] | 102 | |
James Price | 3e38d7e | 2022-06-15 23:32:14 +0000 | [diff] [blame] | 103 | ### Breaking changes |
| 104 | |
| 105 | * The `smoothStep()` builtin has been removed (use `smoothstep` instead). [tint:1483](crbug.com/tint/1483) |
Ben Clayton | c64ca23 | 2022-06-29 00:55:36 +0000 | [diff] [blame] | 106 | * Module-scope `let` has been replaced with module-scope `const`. [tint:1580](crbug.com/tint/1584) |
| 107 | * Note: Module-scope `const` does not support structure types. Use `var<private>` if you need a module-scope structure type. |
dan sinclair | cfa951a | 2022-07-04 16:58:00 +0000 | [diff] [blame] | 108 | * Struct members can no longer be separated with semicolons (use commas instead). [tint:1475](crbug.com/tint/1475) |
Ben Clayton | f19cb02 | 2022-07-15 15:25:30 +0000 | [diff] [blame] | 109 | * Single scalar matrix constructors have been removed. These were never part of the WGSL spec. [tint:1597](crbug.com/tint/1597) |
James Price | 3e38d7e | 2022-06-15 23:32:14 +0000 | [diff] [blame] | 110 | |
dan sinclair | 0fa572f | 2022-06-09 15:33:42 +0000 | [diff] [blame] | 111 | ### Deprecated Features |
| 112 | |
| 113 | * The `@stage` attribute has been deprecated. The short forms should be used |
| 114 | instead (`@vertex`, `@fragment`, or `@compute`). [tint:1503](crbug.com/tint/1503) |
| 115 | |
| 116 | ## Changes for M104 |
| 117 | |
Ben Clayton | 8174713 | 2022-06-09 16:45:05 +0000 | [diff] [blame] | 118 | ### New features |
| 119 | |
| 120 | * Tint now supports abstract-numerics, removing the need to always suffix unsigned integers with `u` [tint:1504](crbug.com/tint/1504) |
dan sinclair | 0fa572f | 2022-06-09 15:33:42 +0000 | [diff] [blame] | 121 | * Parsing of `@compute`, `@fragment` and `@vertex` added. |
| 122 | |
James Price | be656f7 | 2022-05-11 22:05:15 +0000 | [diff] [blame] | 123 | ## Changes for M103 |
| 124 | |
| 125 | ### New features |
| 126 | |
| 127 | * Produce warnings for when calling barriers, textureSample, and derivative |
| 128 | builtins in non-uniform control flow [tint:880](crbug.com/tint/880) |
Ben Clayton | 3b5edf1 | 2022-05-16 21:14:11 +0000 | [diff] [blame] | 129 | * Matrix identity constructors and constructors for a single scalar value are now supported [tint:1545](crbug.com/tint/1545) |
James Price | be656f7 | 2022-05-11 22:05:15 +0000 | [diff] [blame] | 130 | |
Antonio Maiorano | 6ac7c8a | 2022-05-31 22:35:49 +0000 | [diff] [blame] | 131 | ### Breaking changes |
Ben Clayton | 8174713 | 2022-06-09 16:45:05 +0000 | [diff] [blame] | 132 | |
Antonio Maiorano | 6ac7c8a | 2022-05-31 22:35:49 +0000 | [diff] [blame] | 133 | * Builtin `atomicCompareExchangeWeak` returns a struct instead of a vec2. [tint:1185](crbug.com/tint/1185) |
| 134 | |
James Price | 8bcecf3 | 2022-03-21 16:09:17 +0000 | [diff] [blame] | 135 | ## Changes for M102 |
| 136 | |
James Price | d9d08ae | 2022-03-23 09:11:03 +0000 | [diff] [blame] | 137 | ### New Features |
| 138 | |
| 139 | * Parentheses are no longer required around expressions for if and switch statements [tint:1424](crbug.com/tint/1424) |
James Price | e47b313 | 2022-03-31 22:30:10 +0000 | [diff] [blame] | 140 | * Compound assignment statements are now supported. [tint:1325](https://crbug.com/tint/1325) |
James Price | d68d3a9 | 2022-04-07 13:42:45 +0000 | [diff] [blame] | 141 | * Postfix increment and decrement statements are now supported. [tint:1488](crbug.com/tint/1488) |
James Price | e6c7fd7 | 2022-04-05 21:01:09 +0000 | [diff] [blame] | 142 | * The colon in case statements is now optional. [tint:1485](crbug.com/tint/1485) |
James Price | d9d08ae | 2022-03-23 09:11:03 +0000 | [diff] [blame] | 143 | |
James Price | 8bcecf3 | 2022-03-21 16:09:17 +0000 | [diff] [blame] | 144 | ### Breaking changes |
| 145 | |
James Price | 3b671cb | 2022-03-28 14:31:22 +0000 | [diff] [blame] | 146 | * Struct members are now separated by commas. [tint:1475](crbug.com/tint/1475) |
James Price | 8bcecf3 | 2022-03-21 16:09:17 +0000 | [diff] [blame] | 147 | * The `@block` attribute has been removed. [tint:1324](crbug.com/tint/1324) |
James Price | dfc1a2c | 2022-03-21 16:09:17 +0000 | [diff] [blame] | 148 | * The `@stride` attribute has been removed. [tint:1381](crbug.com/tint/1381) |
James Price | 6bd90d6 | 2022-03-21 16:09:17 +0000 | [diff] [blame] | 149 | * Attributes using `[[attribute]]` syntax are no longer supported. [tint:1382](crbug.com/tint/1382) |
James Price | 7d38b88 | 2022-03-21 16:09:17 +0000 | [diff] [blame] | 150 | * The `elseif` keyword is no longer supported. [tint:1289](crbug.com/tint/1289) |
James Price | 8bcecf3 | 2022-03-21 16:09:17 +0000 | [diff] [blame] | 151 | |
James Price | e6c7609 | 2022-03-30 17:57:39 +0000 | [diff] [blame] | 152 | ### Deprecated Features |
| 153 | |
| 154 | * The `smoothStep()` builtin has been renamed to `smoothstep()`. [tint:1483](crbug.com/tint/1483) |
| 155 | |
James Price | 3fac602 | 2022-02-18 21:47:24 +0000 | [diff] [blame] | 156 | ## Changes for M101 |
| 157 | |
| 158 | ### New Features |
| 159 | |
| 160 | * Tint now supports unicode identifiers. [tint:1437](crbug.com/tint/1437) |
| 161 | |
James Price | bcd9ad2 | 2022-03-05 00:39:14 +0000 | [diff] [blame] | 162 | ### Breaking changes |
| 163 | |
| 164 | * The `isNan()`, `isInf()`, `isFinite()`, and `isNormal()` builtins have been removed. [tint:1312](https://crbug.com/tint/1312) |
| 165 | |
James Price | 1c02eb8 | 2022-01-25 01:01:39 +0000 | [diff] [blame] | 166 | ## Changes for M100 |
| 167 | |
| 168 | ### Breaking changes |
| 169 | |
| 170 | * The `@interpolate(flat)` attribute must now be specified on integral user-defined IO. [tint:1224](crbug.com/tint/1224) |
Ben Clayton | b80e2f3 | 2022-02-01 17:21:52 +0000 | [diff] [blame] | 171 | * The `ignore()` intrinsic has been removed. Use phoney-assignment instead: `ignore(expr);` -> `_ = expr;`. |
Ben Clayton | 8250f2b | 2022-02-03 00:12:52 +0000 | [diff] [blame] | 172 | * `break` statements in `continuing` blocks are now correctly validated. |
James Price | 1c02eb8 | 2022-01-25 01:01:39 +0000 | [diff] [blame] | 173 | |
Ben Clayton | f1d570a | 2022-02-14 21:56:06 +0000 | [diff] [blame] | 174 | ### New Features |
| 175 | |
| 176 | * Module-scope declarations can now be declared in any order. [tint:1266](crbug.com/tint/1266) |
James Price | d0ec88c | 2022-02-15 16:36:57 +0000 | [diff] [blame] | 177 | * The `override` keyword and `@id()` attribute for pipeline-overridable constants are now supported, replacing the `@override` attribute. [tint:1403](crbug.com/tint/1403) |
Ben Clayton | f1d570a | 2022-02-14 21:56:06 +0000 | [diff] [blame] | 178 | |
Ben Clayton | 30d55fa | 2021-12-09 22:53:14 +0000 | [diff] [blame] | 179 | ## Changes for M99 |
| 180 | |
Ben Clayton | e5919ac | 2022-01-14 17:16:32 +0000 | [diff] [blame] | 181 | ### Breaking changes |
| 182 | |
| 183 | Obviously infinite loops (no condition, no break) are now a validation error. |
| 184 | |
Ben Clayton | 30d55fa | 2021-12-09 22:53:14 +0000 | [diff] [blame] | 185 | ### Deprecated Features |
| 186 | |
Ben Clayton | 1372222 | 2022-01-04 20:06:49 +0000 | [diff] [blame] | 187 | The following features have been deprecated and will be removed in M102: |
| 188 | |
| 189 | * The `[[block]]` attribute has been deprecated. [tint:1324](https://crbug.com/tint/1324) |
Ben Clayton | 01e4b6f | 2022-01-19 22:46:57 +0000 | [diff] [blame] | 190 | * Attributes now use the `@decoration` syntax instead of the `[[decoration]]` syntax. [tint:1382](https://crbug.com/tint/1382) |
| 191 | * `elseif` has been replaced with `else if`. [tint:1289](https://crbug.com/tint/1289) |
James Price | f6e5cc0 | 2022-01-20 22:11:07 +0000 | [diff] [blame] | 192 | * The `[[stride]]` attribute has been deprecated. [tint:1381](https://crbug.com/tint/1381) |
Ben Clayton | 30d55fa | 2021-12-09 22:53:14 +0000 | [diff] [blame] | 193 | |
| 194 | ### New Features |
| 195 | |
| 196 | * Vector and matrix element type can now be inferred from constructor argument types. [tint:1334](https://crbug.com/tint/1334) |
Ben Clayton | 5c99ed0 | 2022-01-05 20:11:00 +0000 | [diff] [blame] | 197 | * Added builtins `degrees()` and `radians()` for converting between degrees and radians. [tint:1329](https://crbug.com/tint/1329) |
Ben Clayton | 3cbb136 | 2022-01-06 18:11:01 +0000 | [diff] [blame] | 198 | * `let` arrays and matrices can now be dynamically indexed. [tint:1352](https://crbug.com/tint/1352) |
James Price | ecf43d6 | 2022-01-19 15:55:56 +0000 | [diff] [blame] | 199 | * Storage and Uniform buffer types no longer have to be structures. [tint:1372](crbug.com/tint/1372) |
James Price | 6b1e5f5 | 2022-01-19 18:11:17 +0000 | [diff] [blame] | 200 | * A struct declaration does not have to be followed by a semicolon. [tint:1380](crbug.com/tint/1380) |
Ben Clayton | 30d55fa | 2021-12-09 22:53:14 +0000 | [diff] [blame] | 201 | |
Ben Clayton | e4e7485 | 2022-01-06 21:32:41 +0000 | [diff] [blame] | 202 | ### Fixes |
| 203 | |
| 204 | * Fixed an issue where for-loops that contain array or structure constructors in the loop initializer statements, condition expressions or continuing statements could fail to compile. [tint:1364](https://crbug.com/tint/1364) |
| 205 | |
James Price | 85170d7 | 2021-11-04 19:55:57 +0000 | [diff] [blame] | 206 | ## Changes for M98 |
| 207 | |
| 208 | ### Breaking Changes |
| 209 | |
| 210 | * Taking the address of a vector component is no longer allowed. |
Ben Clayton | 0ea236f | 2021-11-26 09:56:19 +0000 | [diff] [blame] | 211 | * Module-scope declarations can no longer alias a builtin name. [tint:1318](https://crbug.com/tint/1318) |
Ben Clayton | ea3eee9 | 2021-12-03 17:51:48 +0000 | [diff] [blame] | 212 | * It is now an error to call a function either directly or transitively, from a loop continuing block, that uses `discard`. [tint:1302](https://crbug.com/tint/1302) |
James Price | 85170d7 | 2021-11-04 19:55:57 +0000 | [diff] [blame] | 213 | |
Ben Clayton | a40e455 | 2021-11-23 18:57:57 +0000 | [diff] [blame] | 214 | ### Deprecated Features |
| 215 | |
| 216 | * The `isNan()`, `isInf()`, `isFinite()` and `isNormal()` builtins has been deprecated and will be removed in M101. [tint:1312](https://crbug.com/tint/1312) |
| 217 | |
Ben Clayton | 189dc7d | 2021-11-05 18:37:16 +0000 | [diff] [blame] | 218 | ### New Features |
| 219 | |
Ben Clayton | 3703522 | 2021-12-08 19:54:08 +0000 | [diff] [blame] | 220 | * New texture gather builtins: `textureGather()` and `textureGatherCompare()`. [tint:1330](https://crbug.com/tint/1330) |
Ben Clayton | b05e185 | 2021-11-23 20:45:51 +0000 | [diff] [blame] | 221 | * Shadowing is now fully supported. [tint:819](https://crbug.com/tint/819) |
Ben Clayton | 189dc7d | 2021-11-05 18:37:16 +0000 | [diff] [blame] | 222 | * The `dot()` builtin now supports integer vector types. |
Ben Clayton | 177e7bf | 2021-11-22 15:24:16 +0000 | [diff] [blame] | 223 | * Identifiers can now start with a single leading underscore. [tint:1292](https://crbug.com/tint/1292) |
Ben Clayton | ea3eee9 | 2021-12-03 17:51:48 +0000 | [diff] [blame] | 224 | * Control flow analysis has been improved, and functions no longer need to `return` if the statement is unreachable. [tint:1302](https://crbug.com/tint/1302) |
| 225 | * Unreachable statements now produce a warning instead of an error, to allow WGSL code to be updated to the new analysis behavior. These warnings may become errors in the future [gpuweb#2378](https://github.com/gpuweb/gpuweb/issues/2378) |
Ben Clayton | 189dc7d | 2021-11-05 18:37:16 +0000 | [diff] [blame] | 226 | |
Ben Clayton | d1f0a14 | 2021-11-23 21:46:48 +0000 | [diff] [blame] | 227 | ### Fixes |
| 228 | |
| 229 | * Fixed an issue where using a module-scoped `let` in a `workgroup_size` may result in a compilation error. [tint:1320](https://crbug.com/tint/1320) |
| 230 | |
Ben Clayton | 11c9656 | 2021-10-14 03:17:32 +0000 | [diff] [blame] | 231 | ## Changes for M97 |
Ben Clayton | 2aa6855 | 2021-10-12 21:57:47 +0000 | [diff] [blame] | 232 | |
| 233 | ### Breaking Changes |
| 234 | |
| 235 | * Deprecated `modf()` and `frexp()` builtin overloads that take a pointer second parameter have been removed. |
Ben Clayton | f3f2d0a | 2021-10-14 10:10:45 +0000 | [diff] [blame] | 236 | * Deprecated texture builtin functions that accepted a `read` access controlled storage texture have been removed. |
| 237 | * Storage textures must now only use the `write` access control. |
Ben Clayton | 2aa6855 | 2021-10-12 21:57:47 +0000 | [diff] [blame] | 238 | |
Ben Clayton | 7b776f1 | 2021-10-22 06:23:12 +0000 | [diff] [blame] | 239 | ### Deprecated Features |
| 240 | |
| 241 | * The `ignore()` builtin has been replaced with phony-assignment. [gpuweb#2127](https://github.com/gpuweb/gpuweb/pull/2127) |
| 242 | |
Ben Clayton | 8cab28c | 2021-10-21 09:39:13 +0000 | [diff] [blame] | 243 | ### New Features |
| 244 | |
| 245 | * `any()` and `all()` now support a `bool` parameter. These simply return the passed argument. [tint:1253](https://crbug.com/tint/1253) |
Ben Clayton | 72789de | 2021-10-21 20:36:04 +0000 | [diff] [blame] | 246 | * Call statements may now include functions that return a value (`ignore()` is no longer needed). |
James Price | a41694e | 2021-10-21 23:08:44 +0000 | [diff] [blame] | 247 | * The `interpolate(flat)` attribute can now be specified on integral user-defined IO. It will eventually become an error to define integral user-defined IO without this attribute. |
James Price | 91689fb | 2021-10-25 19:20:31 +0000 | [diff] [blame] | 248 | * Matrix construction from scalar element values is now supported. |
Ben Clayton | 8cab28c | 2021-10-21 09:39:13 +0000 | [diff] [blame] | 249 | |
Ben Clayton | 7103f51 | 2021-10-20 16:12:33 +0000 | [diff] [blame] | 250 | ### Fixes |
| 251 | |
| 252 | * Swizzling of `vec3` types in `storage` and `uniform` buffers has been fixed for Metal 1.x. [tint:1249](https://crbug.com/tint/1249) |
Ben Clayton | 33c13c6 | 2021-10-25 11:00:44 +0000 | [diff] [blame] | 253 | * Calling a function that returns an unused value no longer produces an FXC compilation error. [tint:1259](https://crbug.com/tint/1259) |
Ben Clayton | 7dc901f | 2022-01-05 21:03:10 +0000 | [diff] [blame] | 254 | * `abs()` fixed for unsigned integers on SPIR-V backend |
Ben Clayton | 7103f51 | 2021-10-20 16:12:33 +0000 | [diff] [blame] | 255 | |
James Price | 4cc4315 | 2021-09-02 13:49:59 +0000 | [diff] [blame] | 256 | ## Changes for M95 |
| 257 | |
| 258 | ### New Features |
Ben Clayton | 5e35864 | 2021-10-01 08:41:55 +0000 | [diff] [blame] | 259 | |
James Price | 4cc4315 | 2021-09-02 13:49:59 +0000 | [diff] [blame] | 260 | * The size of an array can now be defined using a non-overridable module-scope constant |
James Price | 922fce7 | 2021-09-13 17:11:58 +0000 | [diff] [blame] | 261 | * The `num_workgroups` builtin is now supported. |
David Neto | be514a1 | 2021-09-08 13:46:51 +0000 | [diff] [blame] | 262 | |
| 263 | ### Fixes |
David Neto | be514a1 | 2021-09-08 13:46:51 +0000 | [diff] [blame] | 264 | |
Ben Clayton | 5e35864 | 2021-10-01 08:41:55 +0000 | [diff] [blame] | 265 | * Hex floats: now correctly errors when the magnitude is non-zero, and the exponent would cause overflow. [tint:1150](https://crbug.com/tint/1150), [tint:1166](https://crbug.com/tint/1166) |
Ben Clayton | 2aa6855 | 2021-10-12 21:57:47 +0000 | [diff] [blame] | 266 | * Identifiers beginning with an underscore are now correctly rejected. [tint:1179](https://crbug.com/tint/1179) |