st/mesa: fix assertion failures with 2101010 vertex formats
authorMarek Olšák <maraeo@gmail.com>
Thu, 20 Dec 2012 16:00:06 +0000 (17:00 +0100)
committerMarek Olšák <maraeo@gmail.com>
Fri, 4 Jan 2013 13:06:39 +0000 (14:06 +0100)
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_atom_array.c

index 15f5d1c..2437245 100644 (file)
@@ -403,9 +403,9 @@ setup_interleaved_attribs(const struct st_vertex_program *vp,
       const GLuint mesaAttr = vp->index_to_input[attr];
       const struct gl_client_array *array = arrays[mesaAttr];
       unsigned src_offset = (unsigned) (array->Ptr - low_addr);
-      GLuint element_size = array->_ElementSize;
 
-      assert(element_size == array->Size * _mesa_sizeof_type(array->Type));
+      assert(array->_ElementSize ==
+             _mesa_bytes_per_vertex_attrib(array->Size, array->Type));
 
       velements[attr].src_offset = src_offset;
       velements[attr].instance_divisor = array->InstanceDivisor;
@@ -474,7 +474,8 @@ setup_non_interleaved_attribs(struct st_context *st,
       struct gl_buffer_object *bufobj = array->BufferObj;
       GLsizei stride = array->StrideB;
 
-      assert(array->_ElementSize == array->Size * _mesa_sizeof_type(array->Type));
+      assert(array->_ElementSize ==
+             _mesa_bytes_per_vertex_attrib(array->Size, array->Type));
 
       if (_mesa_is_bufferobj(bufobj)) {
          /* Attribute data is in a VBO.