[Mesa-dev] [PATCH 00/11] glsl, tgsi, radeonsi: ldexp and frexp bug fixes and features
Dieter Nützel
Dieter at nuetzel-hh.de
Tue Sep 26 21:55:45 UTC 2017
Ah,
this one works. Sorry Nicolai, I've tried the patchwork (rev 1) version
last week, but it didn't apply clean. Soo.
For the series
Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>
Should I run any special app?
Notice any speedup?
Greetings,
Dieter
Am 16.09.2017 13:27, schrieb Nicolai Hähnle:
> If you want to test, you can find the series at
>
> https://cgit.freedesktop.org/~nh/mesa/log/?h=ldexp
>
> On 16.09.2017 13:23, Nicolai Hähnle wrote:
>> Hi all,
>>
>> This series was motivated by radeonsi failing some ldexp tests due to
>> not handling denorms correctly and not handling overflows (which GLSL
>> doesn't require, but GLSL ES does).
>>
>> The first patch fixes the GLSL IR lowering of ldexp() to handle all
>> cases
>> fully except:
>>
>> 1. Denorms; they're annoying and therefore all flushed to zero.
>>
>> 2. Exponent 32-bit overflow. This would be easy to fix at the cost of
>> an additional min() instruction, but neither GLSL nor GLSL ES
>> requires it.
>>
>> The goal of the remainder of the series is to move radeonsi to use
>> the hardware implementation of ldexp and frexp. This entails cleaning
>> up a lot of stuff around the existing DLDEXP and DFRACEXP (implemented
>> by softpipe and r600), as well as adding a new LDEXP opcode.
>>
>> Please review!
>>
>> Cheers,
>> Nicolai
>> --
>> src/compiler/glsl/lower_instructions.cpp | 171 +++++++++++------
>> .../auxiliary/gallivm/lp_bld_limits.h | 1 +
>> src/gallium/auxiliary/gallivm/lp_bld_tgsi.c | 26 ++-
>> src/gallium/auxiliary/gallivm/lp_bld_tgsi.h | 1 +
>> .../auxiliary/gallivm/lp_bld_tgsi_action.h | 5 +
>> .../auxiliary/gallivm/lp_bld_tgsi_soa.c | 19 +-
>> src/gallium/auxiliary/nir/tgsi_to_nir.c | 7 +-
>> src/gallium/auxiliary/tgsi/tgsi_exec.c | 31 ++-
>> src/gallium/auxiliary/tgsi/tgsi_exec.h | 10 +
>> src/gallium/auxiliary/tgsi/tgsi_info.c | 11 +-
>> src/gallium/auxiliary/tgsi/tgsi_info.h | 4 +-
>> .../auxiliary/tgsi/tgsi_info_opcodes.h | 4 +-
>> src/gallium/docs/source/screen.rst | 1 +
>> src/gallium/docs/source/tgsi.rst | 24 ++-
>> src/gallium/drivers/etnaviv/etnaviv_screen.c | 1 +
>> .../drivers/freedreno/freedreno_screen.c | 1 +
>> src/gallium/drivers/i915/i915_screen.c | 1 +
>> .../drivers/nouveau/nv30/nv30_screen.c | 2 +
>> .../drivers/nouveau/nv50/nv50_screen.c | 1 +
>> .../drivers/nouveau/nvc0/nvc0_screen.c | 1 +
>> src/gallium/drivers/r300/r300_screen.c | 2 +
>> src/gallium/drivers/r600/r600_pipe.c | 1 +
>> src/gallium/drivers/r600/r600_shader.c | 14 +-
>> src/gallium/drivers/radeonsi/si_pipe.c | 3 +-
>> src/gallium/drivers/radeonsi/si_shader.c | 14 +-
>> .../drivers/radeonsi/si_shader_internal.h | 1 +
>> .../drivers/radeonsi/si_shader_tgsi_alu.c | 27 +++
>> .../drivers/radeonsi/si_shader_tgsi_setup.c | 16 +-
>> src/gallium/drivers/svga/svga_screen.c | 3 +
>> src/gallium/drivers/vc4/vc4_screen.c | 1 +
>> src/gallium/include/pipe/p_defines.h | 1 +
>> src/gallium/include/pipe/p_shader_tokens.h | 2 +-
>> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 10 +-
>> 33 files changed, 290 insertions(+), 127 deletions(-)
>>
More information about the mesa-dev
mailing list