dawn-cmake/docs/origin-trial-changes.md
Ben Clayton 7dc901fa4f tools roll-release: Bump branchLegacyCutoff to M96
The tool was getting slow, due to the number of branches being examined.
M96 is the latest stable release. We aren't applying fixes to this or older branches.

Also avoids an issue where the M95 branch was missing a cherry-pick, which the tool wanted to merge with each run.

Change-Id: I8a8b1466c10633d9539725cd4f9b1b0514e41e93
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/75067
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
2022-01-05 21:03:10 +00:00

3.8 KiB

Tint changes during Origin Trial

Changes for M99

Deprecated Features

The following features have been deprecated and will be removed in M102:

  • The [[block]] attribute has been deprecated. tint:1324
  • elseif has been replaced with else if tint:1289

New Features

  • Vector and matrix element type can now be inferred from constructor argument types. tint:1334
  • Added builtins degrees() and radians() for converting between degrees and radians. tint:1329

Changes for M98

Breaking Changes

  • Taking the address of a vector component is no longer allowed.
  • Module-scope declarations can no longer alias a builtin name. tint:1318
  • It is now an error to call a function either directly or transitively, from a loop continuing block, that uses discard. tint:1302

Deprecated Features

  • The isNan(), isInf(), isFinite() and isNormal() builtins has been deprecated and will be removed in M101. tint:1312

New Features

  • New texture gather builtins: textureGather() and textureGatherCompare(). tint:1330
  • Shadowing is now fully supported. tint:819
  • The dot() builtin now supports integer vector types.
  • Identifiers can now start with a single leading underscore. tint:1292
  • Control flow analysis has been improved, and functions no longer need to return if the statement is unreachable. tint:1302
  • 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

Fixes

  • Fixed an issue where using a module-scoped let in a workgroup_size may result in a compilation error. tint:1320

Changes for M97

Breaking Changes

  • Deprecated modf() and frexp() builtin overloads that take a pointer second parameter have been removed.
  • Deprecated texture builtin functions that accepted a read access controlled storage texture have been removed.
  • Storage textures must now only use the write access control.

Deprecated Features

  • The ignore() builtin has been replaced with phony-assignment. gpuweb#2127

New Features

  • any() and all() now support a bool parameter. These simply return the passed argument. tint:1253
  • Call statements may now include functions that return a value (ignore() is no longer needed).
  • 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.
  • Matrix construction from scalar element values is now supported.

Fixes

  • Swizzling of vec3 types in storage and uniform buffers has been fixed for Metal 1.x. tint:1249
  • Calling a function that returns an unused value no longer produces an FXC compilation error. tint:1259
  • abs() fixed for unsigned integers on SPIR-V backend

Changes for M95

New Features

  • The size of an array can now be defined using a non-overridable module-scope constant
  • The num_workgroups builtin is now supported.

Fixes

  • Hex floats: now correctly errors when the magnitude is non-zero, and the exponent would cause overflow. tint:1150, tint:1166
  • Identifiers beginning with an underscore are now correctly rejected. tint:1179