aboutsummaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-11-04 10:40:37 -0500
committerAlyssa Rosenzweig <[email protected]>2019-11-04 15:36:08 -0500
commit9eac9389fbb7cf4aa6838dfc23da4d7e100b84fb (patch)
treec39caa333c1da124286a78af83e963ad10475a42 /src/panfrost
parent4ae4d82e21d54ae9e8c075cb9ad5161f699023d5 (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.c9
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]);
}
}