Mesa (master): pan/mdg: Set the z/s store intrinsic base correctly

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jul 13 14:04:07 UTC 2020


Module: Mesa
Branch: master
Commit: 18059f48f845c3f1358a36528b17bbe90bf140af
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=18059f48f845c3f1358a36528b17bbe90bf140af

Author: Icecream95 <ixn at keemail.me>
Date:   Wed Jul  8 16:00:51 2020 +1200

pan/mdg: Set the z/s store intrinsic base correctly

When EXT_shader_framebuffer_fetch is used and only depth and/or
stencil are written, we can't rely on the first output being to
depth/stencil.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5755>

---

 src/panfrost/midgard/midgard_compile.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c
index dc878c65f44..dec1f38e094 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -401,7 +401,12 @@ midgard_nir_lower_zs_store(nir_shader *nir)
 
                         combined_store->num_components = 4;
 
-                        nir_intrinsic_set_base(combined_store, 0);
+                        unsigned base;
+                        if (z_store)
+                                base = nir_intrinsic_base(z_store);
+                        else
+                                base = nir_intrinsic_base(s_store);
+                        nir_intrinsic_set_base(combined_store, base);
 
                         unsigned writeout = 0;
                         if (z_store)



More information about the mesa-commit mailing list