On 01/11/2017 07:09 PM, Marek Olšák wrote:
Reviewed-by: Marek Olšák <marek.ol...@amd.com>

Would you please run a GPU-bound benchmark of your choice to make sure
it doesn't affect performance?

I tried Furmark and Pixmark Piano on my rx 480. With 3 runs before and after that change, the number of FPS as well as the number of points are identical.


Thanks,
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

Reply via email to