mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-01 23:18:20 +02:00
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>
This commit is contained in:
parent
3dc2630e45
commit
3823b53ff8
1 changed files with 6 additions and 6 deletions
|
|
@ -1717,19 +1717,19 @@ _mesa_GetInteger64v(GLenum pname, GLint64 *params)
|
|||
break;
|
||||
|
||||
case TYPE_FLOATN_4:
|
||||
params[3] = FLOAT_TO_INT64(((GLfloat *) p)[3]);
|
||||
params[3] = FLOAT_TO_INT(((GLfloat *) p)[3]);
|
||||
case TYPE_FLOATN_3:
|
||||
params[2] = FLOAT_TO_INT64(((GLfloat *) p)[2]);
|
||||
params[2] = FLOAT_TO_INT(((GLfloat *) p)[2]);
|
||||
case TYPE_FLOATN_2:
|
||||
params[1] = FLOAT_TO_INT64(((GLfloat *) p)[1]);
|
||||
params[1] = FLOAT_TO_INT(((GLfloat *) p)[1]);
|
||||
case TYPE_FLOATN:
|
||||
params[0] = FLOAT_TO_INT64(((GLfloat *) p)[0]);
|
||||
params[0] = FLOAT_TO_INT(((GLfloat *) p)[0]);
|
||||
break;
|
||||
|
||||
case TYPE_DOUBLEN_2:
|
||||
params[1] = FLOAT_TO_INT64(((GLdouble *) p)[1]);
|
||||
params[1] = FLOAT_TO_INT(((GLdouble *) p)[1]);
|
||||
case TYPE_DOUBLEN:
|
||||
params[0] = FLOAT_TO_INT64(((GLdouble *) p)[0]);
|
||||
params[0] = FLOAT_TO_INT(((GLdouble *) p)[0]);
|
||||
break;
|
||||
|
||||
case TYPE_INT_4:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue