From 22b4120de4d0840adc66b07ff74f59d0fe6b6b69 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 31 Aug 2020 14:20:59 -0400 Subject: [PATCH] pan/mdg: Fix perspective combination It's not enough to multiply by a .w reciprocal, we have to be taking the reciprocal of the thing we're actually multiplying against. Fixes incorrect rendering in Manhattan. Signed-off-by: Alyssa Rosenzweig Cc: mesa-stable Part-of: (cherry picked from commit 41d0a81c2a3f09701e8c694b520c8d900f6ac2f1) --- .pick_status.json | 2 +- src/panfrost/midgard/midgard_opt_perspective.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 5fce8b99bb4..47e47c8bb61 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -616,7 +616,7 @@ "description": "pan/mdg: Fix perspective combination", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/panfrost/midgard/midgard_opt_perspective.c b/src/panfrost/midgard/midgard_opt_perspective.c index 34afcfa6c93..f2a83576bba 100644 --- a/src/panfrost/midgard/midgard_opt_perspective.c +++ b/src/panfrost/midgard/midgard_opt_perspective.c @@ -88,6 +88,7 @@ midgard_opt_combine_projection(compiler_context *ctx, midgard_block *block) } if (!frcp_found) continue; + if (frcp_from != ins->src[0]) continue; if (frcp_component != COMPONENT_W && frcp_component != COMPONENT_Z) continue; if (!mir_single_use(ctx, frcp)) continue;