On 01/11/2017 07:49 PM, Marek Olšák wrote:
I've realized there is a small problem with this. MAD never supports
denorms, but MUL+ADD do. That can cause issues, because the compiler
assumes that MAD = MUL+ADD.
We need to use MAD for good performance, which means we should
probably never enable FP32 denorms.
Yeah, this is explained in the code also, but according to your comment
on Bugzilla, I thought VI+ was not affected by that...
Marek
On Wed, Jan 11, 2017 at 6:29 PM, Samuel Pitoiset
<samuel.pitoi...@gmail.com> wrote:
Only VI can do 32-bit denormals at full rate while previous
generations can do it only for 64-bit and 16-bit.
This fixes some dEQP tests with the highp type qualifier.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99343
Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
---
src/gallium/drivers/radeonsi/si_shader.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader.c
b/src/gallium/drivers/radeonsi/si_shader.c
index 5dfbd6603a..e9cb11883f 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -6361,8 +6361,10 @@ int si_compile_llvm(struct si_screen *sscreen,
si_shader_binary_read_config(binary, conf, 0);
- /* Enable 64-bit and 16-bit denormals, because there is no performance
- * cost.
+ /* Enable denormals when there is no performance cost.
+ *
+ * Only VI can do 32-bit denormals at full rate while previous
+ * generations can do it only for 64-bit and 16-bit.
*
* If denormals are enabled, all floating-point output modifiers are
* ignored.
@@ -6373,7 +6375,10 @@ int si_compile_llvm(struct si_screen *sscreen,
* have to stop using those.
* - SI & CI would be very slow.
*/
- conf->float_mode |= V_00B028_FP_64_DENORMS;
+ if (sscreen->b.chip_class >= VI)
+ conf->float_mode |= V_00B028_FP_ALL_DENORMS;
+ else
+ conf->float_mode |= V_00B028_FP_64_DENORMS;
FREE(binary->config);
FREE(binary->global_symbol_offsets);
--
2.11.0
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev