[Mesa-dev] gallivm and system values
airlied at gmail.com
Tue Feb 28 07:42:37 PST 2012
So I've gotten llvmpipe GLSL 1.20 support with native integers enabled
to be 0 regressions from non-integers enabled.
The one big problem I've hit is non-native integer llvmpipe uses
system_values, it takes them in as integers and converts them to
floats and stores that value, however the state trackers assume that
system values are stored as integers, so we don't ever see any
explicit F2I, so although we do bit casting we get the wrong value
since it isn't converted back to an integer anywhere.
Now I don't think support instance id pre GLSL 1.40 works properly anyways.
But I'm open to suggestions on how to handle it:
a) drop support for float system values, don't advertise instance id
since we don't let apps use it properly. Just use integers.
b) add a mechanism for gallivm to know if its operating with native
integers or not advertised and have it do something, the reason I
don't like this is so far this is the only case where this is a
problem, gallivm code so far has not need to know what the driver was
advertising above it.
More information about the mesa-dev