OSDN Git Service

i965: Avoid segfault in gen6_upload_state
authorCarl Worth <cworth@cworth.org>
Wed, 20 Feb 2013 00:27:16 +0000 (16:27 -0800)
committerCarl Worth <cworth@cworth.org>
Thu, 21 Feb 2013 20:09:24 +0000 (12:09 -0800)
This fixes a bug introduced in commit 258453716f001eab1288d99765213 and
triggered whenever "rb" is NULL.

Fixes at least one cause bug #59445:

[SNB/IVB/HSW Bisected]Oglc draw-buffers2(advanced.blending.none) segfault
https://bugs.freedesktop.org/show_bug.cgi?id=59445

(Though segfaults are still possible in that test case, but they have been
present since before commit 258453716f which is what's being fixed here.)

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/gen6_cc.c

index d32f636..7ac5d5f 100644 (file)
@@ -126,7 +126,7 @@ gen6_upload_blend_state(struct brw_context *brw)
           * not read the alpha channel, but will instead use the correct
           * implicit value for alpha.
           */
-         if (!_mesa_base_format_has_channel(rb->_BaseFormat, GL_TEXTURE_ALPHA_TYPE))
+         if (rb && !_mesa_base_format_has_channel(rb->_BaseFormat, GL_TEXTURE_ALPHA_TYPE))
          {
             srcRGB = brw_fix_xRGB_alpha(srcRGB);
             srcA = brw_fix_xRGB_alpha(srcA);