mesa: Make glGetInteger64v convert float/doubles to 32-bit integers.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 9 Mar 2016 04:45:26 +0000 (20:45 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 10 Mar 2016 03:44:18 +0000 (19:44 -0800)
commit3823b53ff88b36cfe0c46a2207abe8568237283d
tree3d42652b260d079690143462421c8d00ffc5f56f
parent3dc2630e457155a4e8c8613911fe178bc4adf743
mesa: Make glGetInteger64v convert float/doubles to 32-bit integers.

According to the GL 4.4 core specification, section 2.2.2 ("Data
Conversions For State Query Commands"):

"If a command returning integer data is called, such as GetIntegerv or
 GetInteger64v, a boolean value of TRUE or FALSE is interpreted as one
 or zero, respectively. A floating-point value is rounded to the nearest
 integer, unless the value is an RGBA color component, a DepthRange
 value, or a depth buffer clear value. In these cases, the query command
 converts the floating-point value to an integer according to the INT
 entry of table 18.2; a value not in [−1, 1] converts to an undefined
 value."

The INT entry of table 18.2 shows that b = 32, meaning the expectation
is to convert it to a 32-bit integer value.

Fixes:
dEQP-GLES3.functional.state_query.floats.blend_color_getinteger64
dEQP-GLES3.functional.state_query.floats.color_clear_value_getinteger64
dEQP-GLES3.functional.state_query.floats.depth_clear_value_getinteger64

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94456
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/mesa/main/get.c