Merge commit 'origin/master' into gallium-sw-api-2
authorKeith Whitwell <keithw@vmware.com>
Wed, 10 Mar 2010 08:29:27 +0000 (08:29 +0000)
committerKeith Whitwell <keithw@vmware.com>
Wed, 10 Mar 2010 08:29:27 +0000 (08:29 +0000)
1  2 
src/gallium/drivers/cell/ppu/cell_context.h
src/gallium/drivers/softpipe/sp_context.c
src/gallium/drivers/softpipe/sp_context.h

index 233b91dec6b301021a500c23b8511e6b359ad9e8,584f3558044098fa355f5411eb6e92b1eba59c96..28f80b82cd590d3336ff5274066e9c780c5a093f
@@@ -34,7 -34,7 +34,7 @@@
  #include "pipe/p_defines.h"
  #include "draw/draw_vertex.h"
  #include "draw/draw_vbuf.h"
 -#include "cell_winsys.h"
 +/*#include "cell_winsys.h"*/
  #include "cell/common.h"
  #include "rtasm/rtasm_ppc_spe.h"
  #include "tgsi/tgsi_scan.h"
@@@ -93,6 -93,11 +93,11 @@@ struct cell_buffer_lis
     struct cell_buffer_node *head;
  };
  
+ struct cell_velems_state
+ {
+    unsigned count;
+    struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS];
+ }
  
  /**
   * Per-context state, subclass of pipe_context.
@@@ -110,6 -115,7 +115,7 @@@ struct cell_contex
     const struct pipe_rasterizer_state *rasterizer;
     const struct cell_vertex_shader_state *vs;
     const struct cell_fragment_shader_state *fs;
+    const struct cell_velems_state *velems;
  
     struct spe_function logic_op;
  
     struct pipe_viewport_state viewport;
     struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];
     uint num_vertex_buffers;
-    struct pipe_vertex_element vertex_element[PIPE_MAX_ATTRIBS];
-    uint num_vertex_elements;
  
     ubyte *cbuf_map[PIPE_MAX_COLOR_BUFS];
     ubyte *zsbuf_map;
index 53eecd1cbf389604143ec708ed80a181ee458f32,e8f2318e488ee585da3c0f2e861db4db57ca7d91..30494719f7b9fa817e1dd3d241874eed834b4c4c
@@@ -210,7 -210,7 +210,7 @@@ softpipe_create_context( struct pipe_sc
     softpipe->dump_fs = debug_get_bool_option( "GALLIUM_DUMP_FS", FALSE );
     softpipe->dump_gs = debug_get_bool_option( "SOFTPIPE_DUMP_GS", FALSE );
  
 -   softpipe->pipe.winsys = screen->winsys;
 +   softpipe->pipe.winsys = NULL;
     softpipe->pipe.screen = screen;
     softpipe->pipe.destroy = softpipe_destroy;
     softpipe->pipe.priv = priv;
     softpipe->pipe.bind_gs_state   = softpipe_bind_gs_state;
     softpipe->pipe.delete_gs_state = softpipe_delete_gs_state;
  
+    softpipe->pipe.create_vertex_elements_state = softpipe_create_vertex_elements_state;
+    softpipe->pipe.bind_vertex_elements_state = softpipe_bind_vertex_elements_state;
+    softpipe->pipe.delete_vertex_elements_state = softpipe_delete_vertex_elements_state;
     softpipe->pipe.set_blend_color = softpipe_set_blend_color;
     softpipe->pipe.set_stencil_ref = softpipe_set_stencil_ref;
     softpipe->pipe.set_clip_state = softpipe_set_clip_state;
     softpipe->pipe.set_viewport_state = softpipe_set_viewport_state;
  
     softpipe->pipe.set_vertex_buffers = softpipe_set_vertex_buffers;
-    softpipe->pipe.set_vertex_elements = softpipe_set_vertex_elements;
  
     softpipe->pipe.draw_arrays = softpipe_draw_arrays;
     softpipe->pipe.draw_elements = softpipe_draw_elements;
index 3d69cfdb114aa896dca6b15973179ec22508b6eb,396d46d4ba64b15aaecd4cacc38c5e817b98824b..9a8158e6a22978f47bdcbe213cbc8ee25f7efd4c
@@@ -45,6 -45,7 +45,7 @@@ struct softpipe_tile_cache
  struct softpipe_tex_tile_cache;
  struct sp_fragment_shader;
  struct sp_vertex_shader;
+ struct sp_velems_state;
  
  
  struct softpipe_context {
@@@ -59,6 -60,7 +60,7 @@@
     struct sp_fragment_shader *fs;
     struct sp_vertex_shader *vs;
     struct sp_geometry_shader *gs;
+    struct sp_velems_state *velems;
  
     /** Other rendering state */
     struct pipe_blend_color blend_color;
     struct pipe_texture *vertex_textures[PIPE_MAX_VERTEX_SAMPLERS];
     struct pipe_viewport_state viewport;
     struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];
-    struct pipe_vertex_element vertex_element[PIPE_MAX_ATTRIBS];
  
     unsigned num_samplers;
     unsigned num_textures;
     unsigned num_vertex_samplers;
     unsigned num_vertex_textures;
-    unsigned num_vertex_elements;
     unsigned num_vertex_buffers;
  
     unsigned dirty; /**< Mask of SP_NEW_x flags */
@@@ -93,7 -93,7 +93,7 @@@
     ubyte *mapped_vbuffer[PIPE_MAX_ATTRIBS];
  
     /** Mapped constant buffers */
 -   void *mapped_constants[PIPE_SHADER_TYPES][PIPE_MAX_CONSTANT_BUFFERS];
 +   const void *mapped_constants[PIPE_SHADER_TYPES][PIPE_MAX_CONSTANT_BUFFERS];
  
     /** Vertex format */
     struct vertex_info vertex_info;