i965: Stop worrying about alignment of vertex data.
authorEric Anholt <eric@anholt.net>
Wed, 23 Jan 2013 01:27:14 +0000 (17:27 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 25 Jan 2013 17:40:33 +0000 (09:40 -0800)
For our current types, the required alignment is actually just 1 byte.
When we get doubles, we have to worry (those have to be aligned to the
natural size), but we don't have doubles yet and they'll just be a
special case.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_draw_upload.c

index 06a5886..31282dd 100644 (file)
@@ -462,7 +462,6 @@ static void brw_prepare_vertices(struct brw_context *brw)
    for (i = j = 0; i < brw->vb.nr_enabled; i++) {
       struct brw_vertex_element *input = brw->vb.enabled[i];
       const struct gl_client_array *glarray = input->glarray;
-      int type_size = get_size(glarray->Type);
 
       if (_mesa_is_bufferobj(glarray->BufferObj)) {
         struct intel_buffer_object *intel_buffer =
@@ -490,7 +489,7 @@ static void brw_prepare_vertices(struct brw_context *brw)
 
            /* Named buffer object: Just reference its contents directly. */
             buffer->bo = intel_bufferobj_source(intel,
-                                                intel_buffer, type_size,
+                                                intel_buffer, 1,
                                                &buffer->offset);
            drm_intel_bo_reference(buffer->bo);
            buffer->offset += (uintptr_t)glarray->Ptr;
@@ -527,11 +526,6 @@ static void brw_prepare_vertices(struct brw_context *brw)
         {
            interleaved = 0;
         }
-        else if ((uintptr_t)(glarray->Ptr - ptr) & (type_size -1))
-        {
-           /* enforce natural alignment (for doubles) */
-           interleaved = 0;
-        }
 
         upload[nr_uploads++] = input;
       }