broadcom/vc4: Fix crashes since the gallium blitter reworks.
authorEric Anholt <eric@anholt.net>
Mon, 18 Sep 2017 19:58:05 +0000 (12:58 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 18 Sep 2017 23:16:00 +0000 (16:16 -0700)
Even if we're not clearing color, the blitter has started dereferencing
the color value.

src/gallium/drivers/vc4/vc4_draw.c

index fdf983dae7f37d4fd5ebee07c43a61d9d4bb13cf..da748cdc14d5eeb6c159aee8af47534f0470b7f6 100644 (file)
@@ -517,6 +517,8 @@ vc4_clear(struct pipe_context *pctx, unsigned buffers,
                      zsclear == PIPE_CLEAR_STENCIL) &&
                     (rsc->initialized_buffers & ~(zsclear | job->cleared)) &&
                     util_format_is_depth_and_stencil(vc4->framebuffer.zsbuf->format)) {
+                        static const union pipe_color_union dummy_color = {};
+
                         perf_debug("Partial clear of Z+stencil buffer, "
                                    "drawing a quad instead of fast clearing\n");
                         vc4_blitter_save(vc4);
@@ -525,7 +527,7 @@ vc4_clear(struct pipe_context *pctx, unsigned buffers,
                                            vc4->framebuffer.height,
                                            1,
                                            zsclear,
-                                           NULL, depth, stencil);
+                                           &dummy_color, depth, stencil);
                         buffers &= ~zsclear;
                         if (!buffers)
                                 return;