mesa: fix mismatch when returning 64-bit bindless uniform handles
The slower convert-and-copy process performs a bad conversion because it converts the value to signed 64-bit integer, but bindless uniform handles are considered unsigned 64-bit. This fixes "Check glUniform*() with mixed texture units/handles" from arb_bindless_texture-uniform piglit. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Cc: "17.2" <mesa-stable@lists.freedesktop.org> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
e0e79f0b08
commit
b38c9c57f2
|
@ -358,7 +358,8 @@ _mesa_get_uniform(struct gl_context *ctx, GLuint program, GLint location,
|
|||
*/
|
||||
if (returnType == uni->type->base_type ||
|
||||
((returnType == GLSL_TYPE_INT || returnType == GLSL_TYPE_UINT) &&
|
||||
(uni->type->is_sampler() || uni->type->is_image()))) {
|
||||
(uni->type->is_sampler() || uni->type->is_image())) ||
|
||||
(returnType == GLSL_TYPE_UINT64 && uni->is_bindless)) {
|
||||
memcpy(paramsOut, src, bytes);
|
||||
} else {
|
||||
union gl_constant_value *const dst =
|
||||
|
|
Loading…
Reference in New Issue