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:

committed by
Marge Bot

parent
c53a1dff32
commit
89f1117c62
@@ -1032,7 +1032,9 @@ setup_isel_context(Program* program, unsigned shader_count, struct nir_shader* c
|
|||||||
unsigned scratch_size = 0;
|
unsigned scratch_size = 0;
|
||||||
if (program->stage == gs_copy_vs) {
|
if (program->stage == gs_copy_vs) {
|
||||||
assert(shader_count == 1);
|
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 {
|
} else {
|
||||||
for (unsigned i = 0; i < shader_count; i++) {
|
for (unsigned i = 0; i < shader_count; i++) {
|
||||||
nir_shader* nir = shaders[i];
|
nir_shader* nir = shaders[i];
|
||||||
|
@@ -2786,7 +2786,8 @@ ac_gs_copy_shader_emit(struct radv_shader_context *ctx)
|
|||||||
radv_emit_streamout(ctx, stream);
|
radv_emit_streamout(ctx, stream);
|
||||||
|
|
||||||
if (stream == 0) {
|
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);
|
LLVMBuildBr(ctx->ac.builder, end_bb);
|
||||||
|
@@ -3565,6 +3565,9 @@ radv_create_shaders(struct radv_pipeline *pipeline, struct radv_device *device,
|
|||||||
if (!pipeline_has_ngg) {
|
if (!pipeline_has_ngg) {
|
||||||
struct radv_shader_info info = {0};
|
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,
|
radv_nir_shader_info_pass(device, nir[MESA_SHADER_GEOMETRY], pipeline->layout, pipeline_key,
|
||||||
&info);
|
&info);
|
||||||
info.wave_size = 64; /* Wave32 not supported. */
|
info.wave_size = 64; /* Wave32 not supported. */
|
||||||
|
Reference in New Issue
Block a user