On Wed, Jan 11, 2017 at 12:08 PM, Samuel Pitoiset <samuel.pitoi...@gmail.com > wrote:
> > > On 01/11/2017 07:00 PM, Roland Scheidegger wrote: > >> I don't think there's any glsl, es or otherwise, specification which >> would require denorms (since obviously lots of hw can't do it, d3d10 >> forbids them), with any precision qualifier. Hence these look like bugs >> of the test suite to me? >> (Irrespective if it's a good idea or not to enable denormals, which I >> don't realy know.) >> > > That test works on NVIDIA hw (both with blob and nouveau) and IIRC it also > works on Intel hw. I don't think it's buggy there. > Intel HW has full denorm support. Just because the test works for us doesn't mean it's valid. > > >> Roland >> >> >> Am 11.01.2017 um 18:29 schrieb Samuel Pitoiset: >> >>> 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); >>> >>> >> _______________________________________________ > 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