Commit Graph
1 Commits
Author SHA1 Message Date
fdfawef324andClaude Opus 5.5 8847086a00 refactor(recompiler): emit the v_fma_mixlo/hi and v_interp_*_f16 emulation once per module
FPInterpolateF16 and FPInterpolateF32 (v_fma_mixlo_f16, v_fma_mixhi_f16,
v_interp_p1ll_f16, v_interp_p1lv_f16, v_interp_p2_f16) were lowered by
expanding the f64-based Interpolate emulation inline at every use, about
1200 SPIR-V words each, twice per instruction in wave64 shaders. Interpolate
now builds one non-inlined helper function per result width and float mode,
created on first use, and each use calls it. The function body is the
same instruction sequence the inline expansion produced, so results are
unchanged; only the module size changes.

agc_fma_mix_once checks that two more uses grow a module by less than the
first use with its shared function.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:20:43 -04:00