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 bf51b11c04)
This commit is contained in:
Tony Wasserka 2020-10-12 19:05:14 +02:00 committed by Eric Engestrom
parent 8e6aa247c1
commit 830dc7c722
2 changed files with 6 additions and 1 deletions

View file

@ -67,7 +67,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
},

View file

@ -9764,6 +9764,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);