Mesa (master): mesa: fix mismatch when returning 64-bit bindless uniform handles
Samuel Pitoiset
hakzsam at kemper.freedesktop.org
Fri Jul 28 09:28:46 UTC 2017
Module: Mesa
Branch: master
Commit: b38c9c57f272b54a190be4efd4297effa1a3deab
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b38c9c57f272b54a190be4efd4297effa1a3deab
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Tue Jul 25 21:39:20 2017 +0200
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 at gmail.com>
Cc: "17.2" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
---
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 928d3ce4fd..a48b6d2921 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 =
More information about the mesa-commit
mailing list