The idea here is to eliminate the set_edgeflags() call in pipe_context
by treating edgeflags as a regular vertex element.
Edgeflags provoke special treatment in hardware, which means we need to
label them in some way, in this case we'll be passing them through the
vertex shader and labelling the vertex shader output with a new TGSI
semantic (TGSI_SEMANTIC_EDGEFLAG).
The util_format_layout name was unfortunate and there
are as been a lot of confusion due to this. Hopefully
this will shed some light on what it was meant for.
Bottom line is: do not rely on these values unless
you're automatically code generating pixel
packing/unpacking routines.
Suggestions for better names than util_format_layout
are welcome!
In particular, gcc man page warns that
union a_union {
int i;
double d;
};
int f() {
double d = 3.0;
return ((union a_union *) &d)->i;
}
"might" not be ok (why not?), even though it doesn't seem to generate
any warnings. Hence don't use this and do the extra step to actually use
assignment to get the values in/out of the union.
This changes parts of 3456f9149b.
The ureg and/or tgsi-simplification work introduced some inconsistencies
between the ureg and traditional TGSI construction code.
Now the tgsi_instruction::NrTokens field is consistant and the
tgsi_header::BodySize field isn't off by one.
Fixes bug 25455.
First time around render targets are not enabled yet (done in
r700SendRenderTargetState) so blend state is not emitted for any targets.
Affects first glClear in some mesa tests.
As a quick fix reorder state emit so that target is set first
Conflicts:
progs/demos/projtex.c
progs/xdemos/glxinfo.c
src/mesa/main/version.h
To fix the confilicts in projtex.c and glxinfo.c I just took the code from
mesa_7_6_branch. The conflicts seem to have occured from cherry-picks from
mesa_7_7_branch to mesa_7_6_branch followed by commmits just to
mesa_7_6_branch.
use pointer to union instead of void pointer.
gcc complained a lot, depending what the pointer originally actually was.
Looks like it's in fact maybe legal to cast for instance uint pointers to
union pointers as long as union contains a uint type, hence use this with some
callers, other just use union util_color in the first place.
Well, technically non-r[345]xx. At any rate...
$ glxgears
libGL: OpenDriver: trying /home/simpson/mesa/lib/gallium/r600_dri.so
131 frames in 5.0 seconds = 26.107 FPS
I'm sure you can see where this is going. :3