radeonsi: Use tgsi_util_get_texture_coord_dim()
[mesa.git] / src / gallium / drivers / svga / svga_draw_private.h
index 9aa40e16642d44acf823be6861394092fb1afcfb..8126f7ee23c8e9da5dc90d117d39d34a91c8f85b 100644 (file)
@@ -90,20 +90,22 @@ struct index_cache {
    /* If non-null, this buffer is filled by calling 
     *   generate(nr, map(buffer))
     */
-   struct pipe_buffer *buffer;
+   struct pipe_resource *buffer;
 };
 
-#define QSZ 32
+
+/** Max number of primitives per draw call */
+#define QSZ SVGA3D_MAX_DRAW_PRIMITIVE_RANGES
 
 struct draw_cmd {
    struct svga_winsys_context *swc;
 
    SVGA3dVertexDecl vdecl[SVGA3D_INPUTREG_MAX];
-   struct pipe_buffer *vdecl_vb[SVGA3D_INPUTREG_MAX];
+   struct pipe_resource *vdecl_vb[SVGA3D_INPUTREG_MAX];
    unsigned vdecl_count;
 
    SVGA3dPrimitiveRange prim[QSZ];
-   struct pipe_buffer *prim_ib[QSZ];
+   struct pipe_resource *prim_ib[QSZ];
    unsigned prim_count;
    unsigned min_index[QSZ];
    unsigned max_index[QSZ];
@@ -114,6 +116,13 @@ struct draw_cmd {
 struct svga_hwtnl {
    struct svga_context *svga;
    struct u_upload_mgr *upload_ib;
+
+   /* Additional negative index bias due to partial buffer uploads
+    * This is compensated for in the offset associated with all
+    * vertex buffers.
+    */
+
+   int index_bias;
    
    /* Flatshade information:
     */
@@ -141,18 +150,18 @@ svga_hwtnl_prim( struct svga_hwtnl *hwtnl,
                  const SVGA3dPrimitiveRange *range,
                  unsigned min_index,
                  unsigned max_index,
-                 struct pipe_buffer *ib );
+                 struct pipe_resource *ib );
 
 enum pipe_error
 svga_hwtnl_simple_draw_range_elements( struct svga_hwtnl *hwtnl,
-                                       struct pipe_buffer *indexBuffer,
+                                       struct pipe_resource *indexBuffer,
                                        unsigned index_size,
+                                       int index_bias,
                                        unsigned min_index,
                                        unsigned max_index,
                                        unsigned prim, 
                                        unsigned start,
-                                       unsigned count,
-                                       unsigned bias );
+                                       unsigned count );
 
 
 #endif