i965: Drop "Destination Element Offset" from Ironlake SGVs.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 28 Apr 2017 21:09:24 +0000 (14:09 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 4 May 2017 01:57:51 +0000 (18:57 -0700)
The Ironlake documentation is terrible, so it's unclear whether or not
this field exists there.  It definitely doesn't exist on Sandybridge
and later.  It definitely does exist on G45.

We haven't been setting it for our normal vertex attributes - just
the SGVs (VertexID, InstanceID, BaseVertex, BaseInstance, DrawID).
We should be consistent.  My guess is that it isn't necessary and
doesn't exist - this patch drops it from the SGVs elements, making
them follow the behavior of most attributes.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
src/mesa/drivers/dri/i965/brw_draw_upload.c

index 7846293cb1b6ff4f5ec7a6fa3a716495d2570520..002e863a6495222e867354a287eafb7dd92d1303 100644 (file)
@@ -1096,7 +1096,8 @@ brw_emit_vertices(struct brw_context *brw)
          dw0 |= BRW_VE0_VALID |
                 brw->vb.nr_buffers << BRW_VE0_INDEX_SHIFT |
                 ISL_FORMAT_R32G32_UINT << BRW_VE0_FORMAT_SHIFT;
-        dw1 |= (i * 4) << BRW_VE1_DST_OFFSET_SHIFT;
+         if (brw->gen == 4)
+            dw1 |= (i * 4) << BRW_VE1_DST_OFFSET_SHIFT;
       }
 
       /* Note that for gl_VertexID, gl_InstanceID, and gl_PrimitiveID values,
@@ -1124,7 +1125,8 @@ brw_emit_vertices(struct brw_context *brw)
                 ((brw->vb.nr_buffers + 1) << BRW_VE0_INDEX_SHIFT) |
                 (ISL_FORMAT_R32_UINT << BRW_VE0_FORMAT_SHIFT);
 
-        dw1 |= (i * 4) << BRW_VE1_DST_OFFSET_SHIFT;
+         if (brw->gen == 4)
+            dw1 |= (i * 4) << BRW_VE1_DST_OFFSET_SHIFT;
       }
 
       OUT_BATCH(dw0);