Attached is a snapshot of my t_vertex.c conversion for r128 to be tested. It
would be nice if we could use t_dd_triemit.h, but there's the endianness
difference in there. I managed to hang the card both with and without the
changes iirc, so r128 could stand some good testing. I only tested with some
real basic apps.
Created attachment 387 [details] [review]
I'm just getting to know the r128 code, but this bit of the patch
looks a bit wrong:
+#define CTX_ARG sisContextPtr smesa
+#define CTX_ARG2 smesa
+#define GET_VERTEX_DWORDS() smesa->vertex_size
+#define ALLOC_VERTS( n, size ) sisAllocDmaLow( smesa, n * size * sizeof(int) )
+#define LOCAL_VARS \
+ sisContextPtr smesa = SIS_CONTEXT(ctx); \
+ const char *vertptr = smesa->verts;
+#define VERT(x) (sisVertex *)(vertptr + (x * vertsize * sizeof(int)))
+#define VERTEX sisVertex
+#define TAG(x) sis_##x
Shouldn't you s/sis/r128/ in here? If not then I (for one :) would appreciate
a big comment telling me why that code uses sis rather than r128.
Okay, so ajax was bugging me to put my diff up like I said I would, and I
thought I hadn't messed things up since the point that they were basically
working, so I just test-compiled again and threw it up here. Here's a new
version, with t_dd_triemit.h fixed up for r128 and being actually used, the fix
for bug 755, and some attempts at fixing something new I noticed: tuxracer's
colors are wacky.
Other issue I noticed: Lack of SpanRenderStart/SpanRenderFinish around the
t_dd_triemit.h notes: Do other cards need the CPU_TO_LE32? If not, why is r128
special? Should it be a required define (to 0 or 1, like other HAVE_*)?
Need to work on other code for a while, though. Review welcome, but this is
quite unfinished I guess.
Created attachment 395 [details] [review]
Created attachment 403 [details] [review]
New version fixing diffuse color emitting, emitting texcoord correctly for st1
&& !st0, using EMIT_PAD for fog/spec when unnecessary, and using better
color/spec offsets I think.
Still explodes if you hit a glut menu in multiarb or texcyl, though.
Use a slightly more permanent email address, and the one I use in changelogs.
Fixed the bug, and committed.