From b38c9c57f272b54a190be4efd4297effa1a3deab Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 25 Jul 2017 21:39:20 +0200 Subject: [PATCH] mesa: fix mismatch when returning 64-bit bindless uniform handles MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/mesa/main/uniform_query.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 = -- 2.30.2