diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-11-04 10:40:37 -0500 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-11-04 15:36:08 -0500 |
commit | 9eac9389fbb7cf4aa6838dfc23da4d7e100b84fb (patch) | |
tree | c39caa333c1da124286a78af83e963ad10475a42 /src/panfrost | |
parent | 4ae4d82e21d54ae9e8c075cb9ad5161f699023d5 (diff) |
pan/midgard: Add bizarre corner case
Someone really needs to look into this.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/panfrost')
-rw-r--r-- | src/panfrost/midgard/midgard_ra.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/panfrost/midgard/midgard_ra.c b/src/panfrost/midgard/midgard_ra.c index 3060dd7c59f..534d095eac1 100644 --- a/src/panfrost/midgard/midgard_ra.c +++ b/src/panfrost/midgard/midgard_ra.c @@ -534,10 +534,17 @@ mir_compute_segment_interference( if (bun->instructions[j]->src[s] >= ctx->temp_count) continue; - for (unsigned q = pivot; q < j; ++q) { + for (unsigned q = pivot; q < i; ++q) { if (bun->instructions[q]->dest >= ctx->temp_count) continue; + /* See dEQP-GLES2.functional.shaders.return.output_write_in_func_dynamic_fragment */ + + if (q >= j) { + if (!(bun->instructions[j]->unit == UNIT_SMUL && bun->instructions[q]->unit == UNIT_VLUT)) + continue; + } + ra_add_node_interference(l, bun->instructions[q]->dest, bun->instructions[j]->src[s]); } } |