diff options
Diffstat (limited to 'src/gallium')
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_gs.c | 2 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe.c | 11 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_private.h | 22 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c | 6 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c | 6 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_pt_so_emit.c | 2 | 
6 files changed, 19 insertions, 30 deletions
| diff --git a/src/gallium/auxiliary/draw/draw_gs.c b/src/gallium/auxiliary/draw/draw_gs.c index 592f71bfbe..50a03ac95a 100644 --- a/src/gallium/auxiliary/draw/draw_gs.c +++ b/src/gallium/auxiliary/draw/draw_gs.c @@ -380,7 +380,7 @@ static void gs_tri_adj(struct draw_geometry_shader *shader,  #define FUNC         gs_run_elts  #define LOCAL_VARS   const ushort *elts = input_prims->elts; -#define GET_ELT(idx) (elts[idx] & ~DRAW_PIPE_FLAG_MASK) +#define GET_ELT(idx) (elts[idx])  #include "draw_gs_tmp.h" diff --git a/src/gallium/auxiliary/draw/draw_pipe.c b/src/gallium/auxiliary/draw/draw_pipe.c index 43c25167a9..b75262a357 100644 --- a/src/gallium/auxiliary/draw/draw_pipe.c +++ b/src/gallium/auxiliary/draw/draw_pipe.c @@ -173,27 +173,23 @@ static void do_triangle( struct draw_context *draw,  #define TRIANGLE(flags,i0,i1,i2)                                  \     do {                                                           \ -      assert(!((i1) & DRAW_PIPE_FLAG_MASK));                      \ -      assert(!((i2) & DRAW_PIPE_FLAG_MASK));                      \        do_triangle( draw,                                          \                     flags,                                         \ -                   verts + stride * (i0 & ~DRAW_PIPE_FLAG_MASK),  \ +                   verts + stride * (i0),                         \                     verts + stride * (i1),                         \                     verts + stride * (i2) );                       \     } while (0)  #define LINE(flags,i0,i1)                                         \     do {                                                           \ -      assert(!((i1) & DRAW_PIPE_FLAG_MASK));                      \        do_line( draw,                                              \                 flags,                                             \ -               verts + stride * (i0 & ~DRAW_PIPE_FLAG_MASK),      \ +               verts + stride * (i0),                             \                 verts + stride * (i1) );                           \     } while (0)  #define POINT(i0)                               \     do {                                         \ -      assert(!((i0) & DRAW_PIPE_FLAG_MASK));    \        do_point( draw, verts + stride * (i0) );  \     } while (0) @@ -247,8 +243,7 @@ void draw_pipeline_run( struct draw_context *draw,           unsigned max_index = 0x0, i;           /* find the largest element index */           for (i = 0; i < count; i++) { -            unsigned int index = (prim_info->elts[start + i] -                                  & ~DRAW_PIPE_FLAG_MASK); +            unsigned int index = prim_info->elts[start + i];              if (index > max_index)                 max_index = index;           } diff --git a/src/gallium/auxiliary/draw/draw_private.h b/src/gallium/auxiliary/draw/draw_private.h index 94b688f891..854c45f060 100644 --- a/src/gallium/auxiliary/draw/draw_private.h +++ b/src/gallium/auxiliary/draw/draw_private.h @@ -373,21 +373,15 @@ void draw_pipeline_destroy( struct draw_context *draw ); -/* We use the top few bits in the elts[] parameter to convey a little - * API information.  This limits the number of vertices we can address - * to only 4096 -- if that becomes a problem, we can switch to 32-bit - * draw indices. - * - * These flags expected at first vertex of lines & triangles when - * unfilled and/or line stipple modes are operational. +/* + * These flags are used by the pipeline when unfilled and/or line stipple modes + * are operational.   */ -#define DRAW_PIPE_MAX_VERTICES  (0x1<<12) -#define DRAW_PIPE_EDGE_FLAG_0   (0x1<<12) -#define DRAW_PIPE_EDGE_FLAG_1   (0x2<<12) -#define DRAW_PIPE_EDGE_FLAG_2   (0x4<<12) -#define DRAW_PIPE_EDGE_FLAG_ALL (0x7<<12) -#define DRAW_PIPE_RESET_STIPPLE (0x8<<12) -#define DRAW_PIPE_FLAG_MASK     (0xf<<12) +#define DRAW_PIPE_EDGE_FLAG_0   0x1 +#define DRAW_PIPE_EDGE_FLAG_1   0x2 +#define DRAW_PIPE_EDGE_FLAG_2   0x4 +#define DRAW_PIPE_EDGE_FLAG_ALL 0x7 +#define DRAW_PIPE_RESET_STIPPLE 0x8  void draw_pipeline_run( struct draw_context *draw,                          const struct draw_vertex_info *vert, diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c index 1ac20d27f3..4d2d24d2df 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c @@ -112,11 +112,11 @@ static void fetch_pipeline_prepare( struct draw_pt_middle_end *middle,  			    gs_out_prim,                              max_vertices ); -      *max_vertices = MAX2( *max_vertices, -                            DRAW_PIPE_MAX_VERTICES ); +      *max_vertices = MAX2( *max_vertices, 4096 );     }     else { -      *max_vertices = DRAW_PIPE_MAX_VERTICES;  +      /* limit max fetches by limiting max_vertices */ +      *max_vertices = 4096;     }     /* return even number */ diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 8f2847ffa0..572aa67e60 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -118,11 +118,11 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle,  			    out_prim,                              max_vertices ); -      *max_vertices = MAX2( *max_vertices, -                            DRAW_PIPE_MAX_VERTICES ); +      *max_vertices = MAX2( *max_vertices, 4096 );     }     else { -      *max_vertices = DRAW_PIPE_MAX_VERTICES; +      /* limit max fetches by limiting max_vertices */ +      *max_vertices = 4096;     }     /* return even number */ diff --git a/src/gallium/auxiliary/draw/draw_pt_so_emit.c b/src/gallium/auxiliary/draw/draw_pt_so_emit.c index f7f4f24d35..c86bdd99a3 100644 --- a/src/gallium/auxiliary/draw/draw_pt_so_emit.c +++ b/src/gallium/auxiliary/draw/draw_pt_so_emit.c @@ -225,7 +225,7 @@ static void so_tri(struct pt_so_emit *so, int i0, int i1, int i2)  #define FUNC         so_run_elts  #define LOCAL_VARS   const ushort *elts = input_prims->elts; -#define GET_ELT(idx) (elts[start + (idx)] & ~DRAW_PIPE_FLAG_MASK) +#define GET_ELT(idx) (elts[start + (idx)])  #include "draw_so_emit_tmp.h" | 
