From eb817b1f6374bfc37b3b3c12f96d048d31fcc364 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Wed, 13 May 2026 17:20:47 +0200 Subject: [PATCH] virgl: advertise new muladd options The "old" nir_to_tgsi_compiler_options enabled fusing for 32 and 64 bit, and virglrenderer implements TGSI's MAD as an mul+add. But because virgl also lowered it for 32 bits, we just enable fmad for 64 bit. Reviewed-by: Georg Lehmann Part-of: --- src/gallium/drivers/virgl/virgl_screen.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index bcade7bc68a..e114a5c9bc2 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -1056,6 +1056,9 @@ virgl_create_screen(struct virgl_winsys *vws, const struct pipe_screen_config *c */ screen->compiler_options.lower_ffloor = true; screen->compiler_options.lower_fneg = true; + /* We implement TGSI's MAD as fmul + fadd in virglrenderer */ + screen->compiler_options.float_mul_add64 = nir_float_muladd_support_has_fmad | + nir_float_muladd_support_fuse; } screen->compiler_options.no_integers = screen->caps.caps.v1.glsl_level < 130; screen->compiler_options.lower_ffma32 = true;