Redoing the way we handle vertex shaders for the draw module.
diff --git a/src/mesa/pipe/draw/draw_private.h b/src/mesa/pipe/draw/draw_private.h
index ebef534..2f52299 100644
--- a/src/mesa/pipe/draw/draw_private.h
+++ b/src/mesa/pipe/draw/draw_private.h
@@ -46,6 +46,7 @@
#include "draw_vertex.h"
+#include "x86/rtasm/x86sse.h"
/**
* Basic vertex info.
@@ -104,7 +105,7 @@
void (*tri)( struct draw_stage *,
struct prim_header * );
-
+
void (*end)( struct draw_stage * );
void (*reset_stipple_counter)( struct draw_stage * );
@@ -116,6 +117,15 @@
#define VCACHE_OVERFLOW 4
#define VS_QUEUE_LENGTH (VCACHE_SIZE + VCACHE_OVERFLOW + 1) /* can never fill up */
+/**
+ * Private version of the compiled vertex_shader
+ */
+struct draw_vertex_shader {
+ const struct pipe_shader_state *state;
+#if defined(__i386__) || defined(__386__)
+ struct x86_function sse2_program;
+#endif
+};
/**
* Private context for the drawing module.
@@ -145,7 +155,7 @@
struct pipe_viewport_state viewport;
struct pipe_vertex_buffer vertex_buffer[PIPE_ATTRIB_MAX];
struct pipe_vertex_element vertex_element[PIPE_ATTRIB_MAX];
- struct pipe_shader_state vertex_shader;
+ const struct draw_vertex_shader *vertex_shader;
struct pipe_vertex_buffer feedback_buffer[PIPE_ATTRIB_MAX];
struct pipe_vertex_element feedback_element[PIPE_ATTRIB_MAX];