From d578c1cb315e38f91c2a156b1a30014db20b161a Mon Sep 17 00:00:00 2001 From: Mel Henning Date: Tue, 3 Feb 2026 18:18:30 -0500 Subject: [PATCH] zink: Emit float controls for preserve_denorms too Fixes: 6afa1b3bade ("zink: handle denorm preserve execution modes") Reviewed-by: Georg Lehmann Reviewed-by: Karol Herbst (cherry picked from commit 9189a705986988f1b0b5b716d776d64fc39d5773) Part-of: --- .pick_status.json | 2 +- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index a984198927a..9374f26bfa0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1004,7 +1004,7 @@ "description": "zink: Emit float controls for preserve_denorms too", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "6afa1b3bade64e0676b349d7d57b3c89b5ec3e9e", "notes": null diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index b3f578ef0ed..c5565b7ac7f 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -4987,7 +4987,8 @@ nir_to_spirv(struct nir_shader *s, const struct zink_shader_info *sinfo, const s emit_image(&ctx, var, get_bare_image_type(&ctx, var, false)); } - if (sinfo->float_controls.flush_denorms) { + if (sinfo->float_controls.flush_denorms || + sinfo->float_controls.preserve_denorms) { unsigned execution_mode = s->info.float_controls_execution_mode; bool flush_16_bit = nir_is_denorm_flush_to_zero(execution_mode, 16); bool flush_32_bit = nir_is_denorm_flush_to_zero(execution_mode, 32);