+ const struct tgsi_shader_info *input_info;
+ unsigned vector_length;
+ unsigned max_out_prims;
+
+#ifdef HAVE_LLVM
+ struct draw_gs_inputs *gs_input;
+ struct draw_gs_jit_context *jit_context;
+ struct draw_gs_llvm_variant *current_variant;
+ struct vertex_header *gs_output;
+
+ int **llvm_prim_lengths;
+ int *llvm_emitted_primitives;
+ int *llvm_emitted_vertices;
+ int *llvm_prim_ids;
+#endif
+
+ void (*fetch_inputs)(struct draw_geometry_shader *shader,
+ unsigned *indices,
+ unsigned num_vertices,
+ unsigned prim_idx);
+ void (*fetch_outputs)(struct draw_geometry_shader *shader,
+ unsigned num_primitives,
+ float (**p_output)[4]);
+
+ void (*prepare)(struct draw_geometry_shader *shader,
+ const void *constants[PIPE_MAX_CONSTANT_BUFFERS],
+ const unsigned constants_size[PIPE_MAX_CONSTANT_BUFFERS]);
+ unsigned (*run)(struct draw_geometry_shader *shader,
+ unsigned input_primitives);