From: Samuel Iglesias Gonsalvez <sigles...@igalia.com> According to ARB_uniform_buffer_object spec:
"If the parameter (starting offset or size) was not specified when the buffer object was bound (e.g. if bound with BindBufferBase), or if no buffer object is bound to <index>, zero is returned." Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com> Reviewed-by: Tapani Pälli <tapani.pa...@intel.com> --- src/mesa/main/get.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 24442f3..f40c98b 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -1928,7 +1928,8 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v) goto invalid_value; if (!ctx->Extensions.ARB_uniform_buffer_object) goto invalid_enum; - v->value_int = ctx->UniformBufferBindings[index].Offset; + v->value_int = ctx->UniformBufferBindings[index].Offset < 0 ? 0 : + ctx->UniformBufferBindings[index].Offset; return TYPE_INT; case GL_UNIFORM_BUFFER_SIZE: @@ -1936,7 +1937,8 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v) goto invalid_value; if (!ctx->Extensions.ARB_uniform_buffer_object) goto invalid_enum; - v->value_int = ctx->UniformBufferBindings[index].Size; + v->value_int = ctx->UniformBufferBindings[index].Size < 0 ? 0 : + ctx->UniformBufferBindings[index].Size; return TYPE_INT; /* ARB_shader_storage_buffer_object */ -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev