Mesa (master): aco/isel: Always export position data from VS/NGG

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Oct 14 16:34:11 UTC 2020


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

Author: Tony Wasserka <tony.wasserka at gmx.de>
Date:   Mon Oct 12 19:05:14 2020 +0200

aco/isel: Always export position data from VS/NGG

AMD ISA docs explicitly require this for VS, and this likely extends to
NGG too.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3615
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7102>

---

 src/amd/compiler/aco_instruction_selection.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index 0ebb7531e32..54bf8b48252 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -10203,6 +10203,11 @@ static void create_vs_exports(isel_context *ctx)
       ctx->outputs.temps[VARYING_SLOT_LAYER * 4u] = as_vgpr(ctx, get_arg(ctx, ctx->args->ac.view_index));
    }
 
+   /* Hardware requires position data to always be exported, even if the
+    * application did not write gl_Position.
+    */
+   ctx->outputs.mask[VARYING_SLOT_POS] = 0xf;
+
    /* the order these position exports are created is important */
    int next_pos = 0;
    bool exported_pos = export_vs_varying(ctx, VARYING_SLOT_POS, true, &next_pos);



More information about the mesa-commit mailing list