radv: set export_clip_dists for the GS copy shader

This is needed for the next change to correctly compute the VS
output parameters from the shader info pass.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13119>
This commit is contained in:
Samuel Pitoiset 2021-09-30 14:50:31 +02:00 committed by Marge Bot
parent c53a1dff32
commit 89f1117c62
3 changed files with 8 additions and 2 deletions

View File

@ -1032,7 +1032,9 @@ setup_isel_context(Program* program, unsigned shader_count, struct nir_shader* c
unsigned scratch_size = 0;
if (program->stage == gs_copy_vs) {
assert(shader_count == 1);
setup_vs_output_info(&ctx, shaders[0], false, true, &args->shader_info->vs.outinfo);
setup_vs_output_info(&ctx, shaders[0], false,
args->shader_info->vs.outinfo.export_clip_dists,
&args->shader_info->vs.outinfo);
} else {
for (unsigned i = 0; i < shader_count; i++) {
nir_shader* nir = shaders[i];

View File

@ -2786,7 +2786,8 @@ ac_gs_copy_shader_emit(struct radv_shader_context *ctx)
radv_emit_streamout(ctx, stream);
if (stream == 0) {
handle_vs_outputs_post(ctx, false, true, &ctx->args->shader_info->vs.outinfo);
handle_vs_outputs_post(ctx, false, ctx->args->shader_info->vs.outinfo.export_clip_dists,
&ctx->args->shader_info->vs.outinfo);
}
LLVMBuildBr(ctx->ac.builder, end_bb);

View File

@ -3565,6 +3565,9 @@ radv_create_shaders(struct radv_pipeline *pipeline, struct radv_device *device,
if (!pipeline_has_ngg) {
struct radv_shader_info info = {0};
if (infos[MESA_SHADER_GEOMETRY].vs.outinfo.export_clip_dists)
info.vs.outinfo.export_clip_dists = true;
radv_nir_shader_info_pass(device, nir[MESA_SHADER_GEOMETRY], pipeline->layout, pipeline_key,
&info);
info.wave_size = 64; /* Wave32 not supported. */