SD0041
On this page

SD0041

Core code

unsupported operation on f64 operands

The registry text and every compiler message on these pages are the compiler's own English.

In the front end

A "use typeshade" file never reaches this check with the same mistake: the front end refuses it first, under its own code. This program, compiled at build time, gets:

example.shade.ts
"use typeshade"
class Uniforms {
m: mat3<f64>
}
declare const u: uniform<Uniforms>
@fragment
export function main(@location(0) uv: vec2): vec4 {
const k = u.m + u.m
return vec4(uv, 0., 1.)
}

TS8003 error, line 11: Cannot + mat3x3<f64>: the fp64 pass lowers only * and transpose on a matrix of doubles. Declare the matrix mat3x3 where you need +.

How to fix it

The registry's hint: only + - * / compare, abs, min, max, sqrt, mix, floor, fract, round, sin, cos (and on vectors dot, length, distance, normalize) are emulated — narrow explicitly first: f32(x) on a scalar and vecN(v) on a vector in a "use typeshade" program, toF32(x) in the fn() EDSL

See also

TS8003 TYPE_MISMATCH
Two types that do not fit where they meet (an operator, a condition, a declaration, a return or an argument), or a constant the compiler folds that WGSL refuses: a shift amount past 31, a divisor of 0, clamp bounds that cross or an f32 past its range.

Source

Where the compiler raises this code at commit 26de7be8, one line per file:

Edit this page Report a problem