floating-point-exceptions in gallium/auxiliary/tgsi/ functions
Submitted by pop..@..isk.fr
Assigned to mes..@..op.org
Link to original bug (#108856)
Description
Calling the gallium osmesa implementation generates multiple floating-point exceptions.
For example the src/gallium/auxiliary/tgsi/tgsi_exec.c:554, micro_rsq() function contains the code:
dst->f[0] = 1.0f / sqrtf(src->f[0]);
and is sometimes called with src->f[0] == 0.
This is an important issue for (scientific) codes which typically turn floating-point-exceptions on.
A workaround is to turn FPE off before each GL/OSmesa call and turn them back on after.
Note that the non-gallium OSMesa implementation does not have this issue.
Version: 18.2