Problem: When running an OpenGL regression test against a recent change in Mesa git which uses always_inline, we are getting odd results. 64bit builds seem to be working fine, it's just 32bit with a problem. gcc 6.3.1 and gcc 7.1 have both been confirmed to have the same issue. If I remove always_inline the problem goes away. Code: always_inline was added in this commit [1], but it wasn't until a second user of the inlined function was added that the problem began [2]. [1] https://cgit.freedesktop.org/mesa/mesa/commit/?id=ca5f1e82de7e43eecb00843597688801809cc22e [2] https://cgit.freedesktop.org/mesa/mesa/commit/?id=bc0af44a5ae9a6671cc6c2f5a380d86fd7babacb Reproducing: I've only tested the issue on Intel gpu's so far, but likely exists on all drivers. It should be reproducible on Sandy Bridge and later. 1. Build the a 32 versions of piglit [1] and mesa [2] from git. 2. Set LD_LIBRARY_PATH to the new Mesa libs and run the following tests from the piglit git directory. ./bin/shader_runner tests/spec/arb_shader_bit_encoding/execution/and-clamp.shader_test -auto -fbo If you have any questions about this please ask for help on the #dri-devel or #intel-gfx freenode channels. My nick is tarceri but there should be someone who can help if I'm not around. [1] git://anongit.freedesktop.org/piglit [2] git://anongit.freedesktop.org/mesa/mesa
Adding url to Mesa bug report.
This sounds like maybe some undefined code that only shows up with always_inline and maybe 32bit x86. Can you attach the preprocessed source of where the always_inline makes a difference? Also can you try with -fwarpv (turns signed integer overflow to be defined as overflow) -fno-strict-aliasing (turns aliasing issues from undefined to being defined)?
No change with -fno-strict-aliasing -fwarpv is not geting past config with warnings such as: WARNING: sys/sysmacros.h: present but cannot be compiled
Seems to work correctly with newer versions of GCC.