llvmpipe: use runtime loop instead of static loop for looping over quads
[mesa.git] / src / gallium / drivers / llvmpipe / lp_state_so.c
index 30b17c98816d2b0f6f8ce56ee5853169f8a50c23..ed2272d05eefbb6df10848bd1b1ddd260b4bbe5d 100644 (file)
 
 static void *
 llvmpipe_create_stream_output_state(struct pipe_context *pipe,
-                                    const struct pipe_stream_output_state *templ)
+                                    const struct pipe_stream_output_info *templ)
 {
    struct lp_so_state *so;
    so = (struct lp_so_state *) CALLOC_STRUCT(lp_so_state);
 
    if (so) {
       so->base.num_outputs = templ->num_outputs;
-      so->base.stride = templ->stride;
-      memcpy(so->base.output_buffer,
-             templ->output_buffer,
-             sizeof(int) * templ->num_outputs);
-      memcpy(so->base.register_index,
-             templ->register_index,
-             sizeof(int) * templ->num_outputs);
-      memcpy(so->base.register_mask,
-             templ->register_mask,
-             sizeof(ubyte) * templ->num_outputs);
+      memcpy(so->base.stride, templ->stride, sizeof(templ->stride));
+      memcpy(so->base.output, templ->output,
+             templ->num_outputs * sizeof(templ->output[0]));
    }
    return so;
 }
@@ -125,6 +118,7 @@ llvmpipe_set_stream_output_buffers(struct pipe_context *pipe,
 void
 llvmpipe_init_so_funcs(struct llvmpipe_context *llvmpipe)
 {
+#if 0
    llvmpipe->pipe.create_stream_output_state =
       llvmpipe_create_stream_output_state;
    llvmpipe->pipe.bind_stream_output_state =
@@ -134,4 +128,10 @@ llvmpipe_init_so_funcs(struct llvmpipe_context *llvmpipe)
 
    llvmpipe->pipe.set_stream_output_buffers =
       llvmpipe_set_stream_output_buffers;
+#else
+   (void) llvmpipe_create_stream_output_state;
+   (void) llvmpipe_bind_stream_output_state;
+   (void) llvmpipe_delete_stream_output_state;
+   (void) llvmpipe_set_stream_output_buffers;
+#endif
 }