Mesa (master): mesa: Call _mesa_test_texobj_completeness() before using _MaxLevel in image validation.

Francisco Jerez currojerez at kemper.freedesktop.org
Mon May 4 15:40:22 UTC 2015


Module: Mesa
Branch: master
Commit: 4e4855f1dec566c8af825101445f13b1f824a309
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e4855f1dec566c8af825101445f13b1f824a309

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Tue Jan 20 14:42:48 2015 +0200

mesa: Call _mesa_test_texobj_completeness() before using _MaxLevel in image validation.

gl_texture_object::_MaxLevel doesn't have any meaningful value until
_mesa_test_texobj_completeness() has been run.  Fixes the "level"
ARB_shader_image_load_store piglit test.

Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 src/mesa/main/shaderimage.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/shaderimage.c b/src/mesa/main/shaderimage.c
index 005698c..cb88d9c 100644
--- a/src/mesa/main/shaderimage.c
+++ b/src/mesa/main/shaderimage.c
@@ -337,13 +337,14 @@ validate_image_unit(struct gl_context *ctx, struct gl_image_unit *u)
    struct gl_texture_object *t = u->TexObj;
    mesa_format tex_format;
 
-   if (!t || u->Level < t->BaseLevel ||
-       u->Level > t->_MaxLevel)
+   if (!t)
       return GL_FALSE;
 
    _mesa_test_texobj_completeness(ctx, t);
 
-   if ((u->Level == t->BaseLevel && !t->_BaseComplete) ||
+   if (u->Level < t->BaseLevel ||
+       u->Level > t->_MaxLevel ||
+       (u->Level == t->BaseLevel && !t->_BaseComplete) ||
        (u->Level != t->BaseLevel && !t->_MipmapComplete))
       return GL_FALSE;
 




More information about the mesa-commit mailing list