From: Samuel Pitoiset Date: Tue, 25 Jul 2017 19:39:20 +0000 (+0200) Subject: mesa: fix mismatch when returning 64-bit bindless uniform handles X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b38c9c57f272b54a190be4efd4297effa1a3deab;p=mesa.git 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 Cc: "17.2" Reviewed-by: Marek Olšák --- diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp index 928d3ce4fd6..a48b6d29218 100644 --- a/src/mesa/main/uniform_query.cpp +++ b/src/mesa/main/uniform_query.cpp @@ -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 =