Mesa (gallium-0.2): gallium: temporary check for > 65535 vertices

Alan Hourihane alanh at kemper.freedesktop.org
Wed Dec 10 11:31:18 UTC 2008


Module: Mesa
Branch: gallium-0.2
Commit: e3f5370d637f367dbfe7d21f726e84185ad1e07d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3f5370d637f367dbfe7d21f726e84185ad1e07d

Author: Alan Hourihane <alanh at tungstengraphics.com>
Date:   Wed Dec 10 11:30:46 2008 +0000

gallium: temporary check for > 65535 vertices

---

 src/gallium/auxiliary/draw/draw_pipe_vbuf.c        |    2 ++
 src/gallium/auxiliary/draw/draw_pt_emit.c          |    3 +++
 src/gallium/auxiliary/draw/draw_pt_fetch_emit.c    |    3 +++
 .../auxiliary/draw/draw_pt_fetch_shade_emit.c      |    3 +++
 4 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pipe_vbuf.c b/src/gallium/auxiliary/draw/draw_pipe_vbuf.c
index 9825e11..fb0d895 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_vbuf.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_vbuf.c
@@ -399,6 +399,8 @@ vbuf_alloc_vertices( struct vbuf_stage *vbuf )
     * and it will flush itself if necessary to do so.  If this does
     * fail, we are basically without usable hardware.
     */
+   assert(vbuf->max_vertices < 65536);
+
    vbuf->vertices = (uint *) vbuf->render->allocate_vertices(vbuf->render,
 							     (ushort) vbuf->vertex_size,
 							     (ushort) vbuf->max_vertices);
diff --git a/src/gallium/auxiliary/draw/draw_pt_emit.c b/src/gallium/auxiliary/draw/draw_pt_emit.c
index d520b05..9c73d9c 100644
--- a/src/gallium/auxiliary/draw/draw_pt_emit.c
+++ b/src/gallium/auxiliary/draw/draw_pt_emit.c
@@ -165,6 +165,9 @@ void draw_pt_emit( struct pt_emit *emit,
     */
    draw_do_flush( draw, DRAW_FLUSH_BACKEND );
 
+   if (count > 65535) /* FIXME */
+      return FALSE;
+
    /* XXX: and work out some way to coordinate the render primitive
     * between vbuf.c and here...
     */
diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c b/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
index 3966ad4..8ab0895 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
@@ -338,6 +338,9 @@ static boolean fetch_emit_run_linear_elts( struct draw_pt_middle_end *middle,
     */
    draw_do_flush( draw, DRAW_FLUSH_BACKEND );
 
+   if (count > 65535) /* FIXME */
+      return FALSE;
+
    hw_verts = draw->render->allocate_vertices( draw->render,
                                                (ushort)feme->translate->key.output_stride,
                                                (ushort)count );
diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c
index f7e6a1a..77e630c 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c
@@ -234,6 +234,9 @@ static void fse_run_linear( struct draw_pt_middle_end *middle,
     */
    draw_do_flush( draw, DRAW_FLUSH_BACKEND );
 
+   if (count > 65535) /* FIXME */
+      return FALSE;
+
    hw_verts = draw->render->allocate_vertices( draw->render,
                                                (ushort)fse->key.output_stride,
                                                (ushort)count );




More information about the mesa-commit mailing list