diff options
author | Tony Wasserka <tony.wasserka@gmx.de> | 2020-10-12 19:05:14 +0200 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2020-10-15 17:17:54 -0700 |
commit | ca34f519ec877905f8a4344997e5ec401406a049 (patch) | |
tree | 6795d2ae15c5705e196b8c1a834d3760a8291f5a | |
parent | fa22dff663dee6751d441bad68162c1c14f1b86b (diff) |
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@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7102>
(cherry picked from commit bf51b11c04fcf9c5f2f86c74ca53ec2ae3fcf4d6)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/amd/compiler/aco_instruction_selection.cpp | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json index 9a63525de0e..069247859b1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -769,7 +769,7 @@ "description": "aco/isel: Always export position data from VS/NGG", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index f98499fcc3b..cfb5a7b1502 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -10083,6 +10083,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); |