Two fragment shaders following the same Mandelbrot zoom path. The left canvas uses float32
arithmetic, while the right canvas uses the fp64arithmetic shader module from
@luma.gl/shadertools.
On Apple WebGPU/Metal, automatic arithmetic selection uses an integer-controlled
double-single implementation. That reliable path is too expensive for an iterative
per-pixel Mandelbrot shader, so the live FP64 pane defaults to a hybrid path on every
WebGPU backend: integer operations reconstruct the critical high-part residuals while
native f32 accumulates lower-order terms. The benchmark still exercises the fully
reliable path, and its automatic mode uses classic floating-point error transforms on
non-Apple GPUs.
The opt-in WebGPU benchmark below the canvases compares automatic selection, classic, hybrid, fully integer-controlled, and native float32 arithmetic for add, multiply, divide, and square-root compute workloads. It reports timing and numerical error together; the results are diagnostic and do not impose performance thresholds.
// Loading source…