mesa: skip level checking for FramebufferTexture*D if texture is zero
authorMarek Olšák <marek.olsak@amd.com>
Fri, 27 May 2016 19:40:19 +0000 (21:40 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Sun, 29 May 2016 12:24:23 +0000 (14:24 +0200)
From the OpenGL 4.5 core spec:
  "An INVALID_VALUE error is generated if texture is not zero and level is
  not a supported texture level for textarget, as described above."

Other FramebufferTexture functions already do the right thing.

This fixes the main menu in F1 2015.

Cc: 11.1 11.2 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/mesa/main/fbobject.c

index 44696c0..fa5baa3 100644 (file)
@@ -3240,10 +3240,10 @@ framebuffer_texture_with_dims(int dims, GLenum target,
 
       if ((dims == 3) && !check_layer(ctx, texObj->Target, layer, caller))
          return;
-   }
 
-   if (!check_level(ctx, textarget, level, caller))
-      return;
+      if (!check_level(ctx, textarget, level, caller))
+         return;
+   }
 
    _mesa_framebuffer_texture(ctx, fb, attachment, texObj, textarget, level,
                              layer, GL_FALSE, caller);