i965: Add a warning if something ever hits a bug I noticed.
authorEric Anholt <eric@anholt.net>
Thu, 31 Oct 2013 17:14:17 +0000 (10:14 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 12 Nov 2013 23:04:25 +0000 (15:04 -0800)
We'd have to map the VBO and rewrite things to a lower stride to fix it.

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_draw_upload.c

index e2002e8ebc6140820e2378b1374afadce66f028f..57b81df81108dc1e592430026f12c22b2504f3ba 100644 (file)
@@ -609,6 +609,7 @@ static void brw_prepare_vertices(struct brw_context *brw)
 
 static void brw_emit_vertices(struct brw_context *brw)
 {
+   struct gl_context *ctx = &brw->ctx;
    GLuint i, nr_elements;
 
    brw_prepare_vertices(brw);
@@ -680,6 +681,9 @@ static void brw_emit_vertices(struct brw_context *brw)
          if (brw->gen == 7)
            dw0 |= GEN7_MOCS_L3 << 16;
 
+         WARN_ONCE(buffer->stride >= (brw->gen >= 5 ? 2048 : 2047),
+                   "VBO stride %d too large, bad rendering may occur\n",
+                   buffer->stride);
         OUT_BATCH(dw0 | (buffer->stride << BRW_VB0_PITCH_SHIFT));
         OUT_RELOC(buffer->bo, I915_GEM_DOMAIN_VERTEX, 0, buffer->offset);
         if (brw->gen >= 5) {