[Mesa-dev] NIR + softfp64 problem

Gert Wollny gw.fossdev at gmail.com
Wed Jan 16 11:51:59 UTC 2019


Hello, 

I'm trying to get soft-fp64 working with my experimental r600-nir
backend, and thanks to Dave's contribution it is already tied in, 
some instructions are not yet supported by the backend, but when
running the piglits I have already 24 tests passing. However, there are
also 1099 test crashing, and skimming over the results this is mostly
because of validation erros in nir_lower_doubles called with
nir_lower_fp64_full_software. For instance, in fs-fract-dvec4 I get
something like 

decl_var  INTERP_MODE_NONE dvec4 p
...
vec1 32 ssa_0 = deref_var &p (function dvec4) 
...
call __fadd64 ssa_77, ssa_78, ssa_79
vec1 64 ssa_80 = intrinsic load_deref (ssa_77) (0) /* access=0
*/intrinsic store_deref (ssa_0, ssa_80) (15, 0) /* wrmask=xyzw */ /*
access=0 */
error: src->ssa->num_components == num_components
(../../../mesa/src/compiler/nir/nir_validate.c:206)
... 

with (src->ssa->num_components == 1) and  (num_components == 4). 

i.e. a function returns a single value, but the target where to store
it is a vector with four elements.  

I have no idea whether this is something triggered by the compile
options I defined for nir, or whether this is independed from this, so
any idea how to quell this would be very welcome.

Many thanks, 
Gert 



More information about the mesa-dev mailing list