intel: Return success when asked to allocate a 0-width/height renderbuffer.
authorEric Anholt <eric@anholt.net>
Mon, 23 Apr 2012 21:14:11 +0000 (14:14 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 4 May 2012 21:00:32 +0000 (14:00 -0700)
It seems silly that GL lets you allocate these given that they're
framebuffer attachment incomplete, but the webgl conformance tests
actually go looking to see if the getters on 0-width/height
depth/stencil renderbuffers return good values.  By failing out here,
they all got smashed to 0, which turned out to be correct for all the
getters they tested except for GL_RENDERBUFFER_INTERNAL_FORMAT.  Now,
by succeeding but not making a miptree, that one also returns the
expected value.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/intel/intel_fbo.c

index 2d1a79856024d75e2c1074b42c98c19b7340dcbf..5872ecec11ae4742f1668aa295363d365aab2f73 100644 (file)
@@ -237,6 +237,9 @@ intel_alloc_renderbuffer_storage(struct gl_context * ctx, struct gl_renderbuffer
        _mesa_lookup_enum_by_nr(internalFormat),
        _mesa_get_format_name(rb->Format), width, height);
 
+   if (width == 0 || height == 0)
+      return true;
+
    irb->mt = intel_miptree_create_for_renderbuffer(intel, rb->Format,
                                                   width, height);
    if (!irb->mt)