mesa/main: Fix GetTransformFeedbacki64 for glTransformFeedbackBufferBase
authorIago Toral Quiroga <itoral@igalia.com>
Tue, 5 Sep 2017 11:54:31 +0000 (13:54 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Thu, 7 Sep 2017 12:01:15 +0000 (14:01 +0200)
commit580fc06c612873a6bd87b12b471529b4a7412747
tree1c1c79e239fb8ad06a1c7792f68a23327ef81aae
parent7ec64bd88cc6f3b5977e3526c5ecff1e07847e8c
mesa/main: Fix GetTransformFeedbacki64 for glTransformFeedbackBufferBase

The spec has special rules for querying buffer offsets and sizes
when BindBufferBase is used, described  in the OpenGL 4.6 spec,
section 6.8 Buffer Object State:

   "To query the starting offset or size of the range of a buffer
    object binding in an indexed array, call GetInteger64i_v with
    target set to respectively the starting offset or binding size
    name from table 6.5 for that array. Index must be in the range
    zero to the number of bind points supported minus one. If the
    starting offset or size was not specified when the buffer object
    was bound (e.g. if it was bound with BindBufferBase), or if no
    buffer object is bound to the target array at index, zero is
    returned."

Transform feedback buffer queries should follow the same rules, since
it is the same case for them. There is a CTS test for this.

Fixes:
KHR-GL45.direct_state_access.xfb_buffers

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
src/mesa/main/transformfeedback.c