[Mesa-dev] [AppVeyor] mesa master #1090 failed

Jose Fonseca jfonseca at vmware.com
Thu Apr 28 10:44:19 UTC 2016

On 28/04/16 11:07, AppVeyor wrote:
>   Build mesa 1090 failed
>   <https://ci.appveyor.com/project/jrfonseca-fdo/mesa/build/1090>
> Commit db07b46f2c by Samuel Iglesias Gonsálvez
> <mailto:siglesias at igalia.com> on 4/26/2016 7:35 AM:
> nir: Add lrp lowering for doubles in opt_algebraic\n\nSome hardware
> (i965 on Broadwell generation, for example) does not support\nnatively
> the execution of lrp instruction with double arguments.\n\nAdd
> 'lower_flrp64' flag to lower this instruction in that case.\n\nv2:\n -
> Rename lower_flrp_double to lower_flrp64 (Jason)\n - Fix typo (Jason)\n
> - Adapt the code to define bit_size information in the
> opcodes.\n\nSigned-off-by: Samuel Iglesias Gonsálvez
> <siglesias at igalia.com>\nReviewed-by: Jason Ekstrand <jason at jlekstrand.net>
> Configure your notification preferences
> <https://ci.appveyor.com/notifications>

The problem is the C99 field initializers in nir_builder.h:

static inline nir_ssa_def *
nir_imm_double(nir_builder *build, double x)
    nir_const_value v = { { .f64 = {x, 0, 0, 0} } };   <===========
    nir_ssa_def *def = nir_build_imm(build, 1, 64, v);
    return def;

This is valid C99, and is supported by MSVC C compiler, but its not 
standard C++ and is not supported by MSVC C++ compiler.

And nir_builder.h is used by C++ source files too (e.g. glsl_to_nir.cpp 
)this is a problem.

I'll see if there's any GNU C++ option we can use to throw an 
error/warning when this happen.  In the meanwhile could we avoid the 
field initializer?


More information about the mesa-dev mailing list