draw: add vs/gs images support
[mesa.git] / src / gallium / auxiliary / draw / draw_vs_llvm.c
index de074be09264714acf59c64ac5473d54ca8555c7..04484ff13b821344046ead966a493b1819478f9a 100644 (file)
@@ -53,7 +53,8 @@ vs_llvm_run_linear( struct draw_vertex_shader *shader,
                     const unsigned constants_size[PIPE_MAX_CONSTANT_BUFFERS],
                    unsigned count,
                    unsigned input_stride,
-                   unsigned output_stride )
+                   unsigned output_stride,
+                   const unsigned *elts)
 {
    /* we should never get here since the entire pipeline is
     * generated in draw_pt_fetch_shade_pipeline_llvm.c */
@@ -86,7 +87,7 @@ draw_create_vs_llvm(struct draw_context *draw,
 {
    struct llvm_vertex_shader *vs = CALLOC_STRUCT( llvm_vertex_shader );
 
-   if (vs == NULL)
+   if (!vs)
       return NULL;
 
    /* we make a private copy of the tokens */
@@ -100,14 +101,17 @@ draw_create_vs_llvm(struct draw_context *draw,
 
    vs->variant_key_size = 
       draw_llvm_variant_key_size(
-        vs->base.info.file_max[TGSI_FILE_INPUT]+1,
-        vs->base.info.file_max[TGSI_FILE_SAMPLER]+1);
+         vs->base.info.file_max[TGSI_FILE_INPUT]+1,
+         MAX2(vs->base.info.file_max[TGSI_FILE_SAMPLER]+1,
+              vs->base.info.file_max[TGSI_FILE_SAMPLER_VIEW]+1),
+         vs->base.info.file_max[TGSI_FILE_IMAGE]+1);
 
+   vs->base.state.stream_output = state->stream_output;
    vs->base.draw = draw;
    vs->base.prepare = vs_llvm_prepare;
    vs->base.run_linear = vs_llvm_run_linear;
    vs->base.delete = vs_llvm_delete;
-   vs->base.create_varient = draw_vs_create_varient_generic;
+   vs->base.create_variant = draw_vs_create_variant_generic;
 
    make_empty_list(&vs->variants);