r300-gallium: HW TCL glxgears. (Read the rest of the log.)
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Tue, 9 Jun 2009 03:23:34 +0000 (20:23 -0700)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Tue, 9 Jun 2009 03:23:34 +0000 (20:23 -0700)
Um. So, yeah. Two massive WTF moments here. The first one is that, somehow,
I never actually hooked up vertex shader emission, so the only time that the
VAP gets set up is during surface_copy/surface_fill. That's why acidgears
was happening.

The second one is that, somehow, once I actually hooked it up, glxgears just
magically worked. Without any actual, real testing, I somehow accidentally
made the shader compiler work. Go figure.

src/gallium/drivers/r300/r300_emit.c

index 8b9fcd75e2b634e1255d5cdaa2942ca52031e3b4..93cf6909a33a824dd07774a6892525074f230422 100644 (file)
@@ -632,6 +632,11 @@ validate:
         r300->dirty_state &= ~R300_NEW_VERTEX_FORMAT;
     }
 
+    if (r300->dirty_state & R300_NEW_VERTEX_SHADER) {
+        r300_emit_vertex_shader(r300, r300->vs);
+        r300->dirty_state &= ~R300_NEW_VERTEX_SHADER;
+    }
+
     /* Finally, emit the VBO. */
     r300_emit_vertex_buffer(r300);