> I'd like to get rid of the zero stride concept and require the state tracker > to either turn those values into proper constant (easy now we can bind >1 > constant buffer) Wouldn't that require changing and recompiling the vertex shaders, reading the constants from the driver anyway, or just binding that constant buffer as a vertex buffer like things are done now? (unless the GPU has special fetch-from-constant-buffer support)
> or use instancing to get the same effect. How is this possible? Non-per-instance data still varies per vertex. IMHO what could be done is to add an explicit API for that instead ("set_vertex_attrib") and have a special vertex buffer index in the vertex element state that means "I'll call set_vertex_attrib for this element". As an additional step, "begin_draw", "end_draw" and "emit_vertex" could be added, allowing to implement glBegin/glVertexAttrib/glEnd directly over Gallium and getting rid of the vbo module, probably with significant performance gains. A vbo-like Gallium auxiliary module could handle GPUs that lack such support, if there are any. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev