mesa/st: Fix user buffer size computation when stride is zero.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 7 Apr 2011 11:19:14 +0000 (12:19 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 7 Apr 2011 11:20:06 +0000 (12:20 +0100)
commit0c501bacef3738b55986292abca149dcfe76d72d
tree520e16b5c73e0179dc1d270cd7e255594cdfb0ca
parent204991bf5d29caa3fa54df9e4f6898faa73752cf
mesa/st: Fix user buffer size computation when stride is zero.

Although for GL a zero stride means tightly packed elements, Mesa
internally uses zero strides for constant arrays.

Therefore user buffers need to be defined from

  buffer_offset + src_offset + min_index*stride

to

  buffer_offset + src_offset + max_index*stride + elem_size

Simplifying the later with (max_index + 1)*stride will give zero
sized buffers.

This change also aggregates the st_context's info about user buffers
into a single array.
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_draw.c