Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>
On 08/05/2015 11:30 AM, Iago Toral Quiroga wrote:
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."
BTW it seems that this was changed from OpenGL 4.1 to 4.2 (?) for
UNIFORM_BUFFER_SIZE 4.1 core spec still says
"If the parameter (starting offset or size) was not specified when the
buffer object was bound, zero is returned. If no buffer object is bound
to index, -1 is returned"
while 4.2 changed "If not buffer object is bound to index" value to 0,
GLES 3.1 also says 0.
Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.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 e2bfb5f..b89c49f 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1925,7 +1925,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:
@@ -1933,7 +1934,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 */
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev