summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2018-01-20 10:19:20 -0800
committerEric Anholt <eric@anholt.net>2018-02-01 11:02:29 -0800
commiteb765394c2fd8232158fe02c8644309657dc1fe3 (patch)
treee88d1797072c9f7815f3800bdc9eb9249b7e8421
parentaec066c7aa35084ccf6391bdf96028ef6056af1e (diff)
broadcom/vc5: Skip over missing color buffers for a couple of checks.
Fixes crashes in piglit alpha-to-coverage-no-draw-buffer-zero 2
-rw-r--r--src/gallium/drivers/vc5/vc5_program.c3
-rw-r--r--src/gallium/drivers/vc5/vc5_state.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc5/vc5_program.c b/src/gallium/drivers/vc5/vc5_program.c
index ddb51b7f02..881bd4501d 100644
--- a/src/gallium/drivers/vc5/vc5_program.c
+++ b/src/gallium/drivers/vc5/vc5_program.c
@@ -378,6 +378,9 @@ vc5_update_compiled_fs(struct vc5_context *vc5, uint8_t prim_mode)
for (int i = 0; i < key->nr_cbufs; i++) {
struct pipe_surface *cbuf = vc5->framebuffer.cbufs[i];
+ if (!cbuf)
+ continue;
+
const struct util_format_description *desc =
util_format_description(cbuf->format);
diff --git a/src/gallium/drivers/vc5/vc5_state.c b/src/gallium/drivers/vc5/vc5_state.c
index 81ae33d717..ea867279a0 100644
--- a/src/gallium/drivers/vc5/vc5_state.c
+++ b/src/gallium/drivers/vc5/vc5_state.c
@@ -443,6 +443,9 @@ vc5_set_framebuffer_state(struct pipe_context *pctx,
vc5->blend_dst_alpha_one = 0;
for (int i = 0; i < vc5->framebuffer.nr_cbufs; i++) {
struct pipe_surface *cbuf = vc5->framebuffer.cbufs[i];
+ if (!cbuf)
+ continue;
+
const struct util_format_description *desc =
util_format_description(cbuf->format);