Mesa (master): radv: enable denorms for 64-bit and 16-bit floats
Samuel Pitoiset
hakzsam at kemper.freedesktop.org
Fri Jan 5 08:53:16 UTC 2018
Module: Mesa
Branch: master
Commit: ec63ab39be0b48550ec6da58537566d0041a628e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ec63ab39be0b48550ec6da58537566d0041a628e
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Thu Dec 28 22:55:27 2017 +0100
radv: enable denorms for 64-bit and 16-bit floats
Similar to RadeonSI.
This fixes:
dEQP-VK.image.texel_view_compatible.graphic.basic.attachment_read.bc*r16g16b16a16_sfloat
dEQP-VK.image.extended_usage_bit.attachment_write.r16_sfloat
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
---
src/amd/common/ac_nir_to_llvm.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index ac0a2e67d4..48e2920a15 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -6892,6 +6892,20 @@ static void ac_compile_llvm_module(LLVMTargetMachineRef tm,
/* +3 for scratch wave offset and VCC */
config->num_sgprs = MAX2(config->num_sgprs,
shader_info->num_input_sgprs + 3);
+
+ /* Enable 64-bit and 16-bit denormals, because there is no performance
+ * cost.
+ *
+ * If denormals are enabled, all floating-point output modifiers are
+ * ignored.
+ *
+ * Don't enable denormals for 32-bit floats, because:
+ * - Floating-point output modifiers would be ignored by the hw.
+ * - Some opcodes don't support denormals, such as v_mad_f32. We would
+ * have to stop using those.
+ * - SI & CI would be very slow.
+ */
+ config->float_mode |= V_00B028_FP_64_DENORMS;
}
static void
More information about the mesa-commit
mailing list