mesa: Ignore blits to/from missing buffers
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 7 Jun 2011 19:38:39 +0000 (12:38 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 8 Jun 2011 01:29:52 +0000 (18:29 -0700)
commitbb4758669c82f8979a56524db1c04ce662c783d8
tree9589ca10c46017242a3d09428fb262cb006d00bd
parent7f9c17aaa82f5a8a1d5f077eba4d5889d3c3b298
mesa: Ignore blits to/from missing buffers

The EXT_framebuffer_object spec (and later specs) say:

     "If a buffer is specified in <mask> and does not exist in both
     the read and draw framebuffers, the corresponding bit is silently
     ignored."

Check for color, depth, and stencil that the source and destination
FBOs have the specified buffers.  If the buffer is missing, remove the
bit from the blit request mask and continue.

Fixes the crash in piglit test 'fbo-missing-attachment-blit from', and
fixes 'fbo-missing-attachment-blit es2 from'.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=37739
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
NOTE: This is a candidate for the stable branches.
src/mesa/main/fbobject.c