agx: Set loads_varying accurately
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Tue, 7 Mar 2023 04:33:11 +0000 (23:33 -0500)
committerMarge Bot <emma+marge@anholt.net>
Fri, 7 Apr 2023 03:23:03 +0000 (03:23 +0000)
Instead of just always mashing to true. Should be better for depth-only passes.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22353>

src/gallium/drivers/asahi/agx_state.c

index 1ac5ac4..3d01e77 100644 (file)
@@ -1893,7 +1893,9 @@ agx_build_pipeline(struct agx_batch *batch, struct agx_compiled_shader *cs,
    }
 
    agx_usc_pack(&b, SHADER, cfg) {
-      cfg.loads_varyings = (stage == PIPE_SHADER_FRAGMENT);
+      if (stage == PIPE_SHADER_FRAGMENT)
+         cfg.loads_varyings = cs->info.varyings.fs.nr_bindings > 0;
+
       cfg.code = cs->bo->ptr.gpu + cs->info.main_offset;
       cfg.unk_2 = (stage == PIPE_SHADER_FRAGMENT) ? 2 : 3;
    }