radv: gather layer in the shader info pass
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -574,6 +574,9 @@ gather_info_output_decl(const nir_shader *nir, const nir_variable *var,
|
||||
case VARYING_SLOT_VIEWPORT:
|
||||
vs_info->writes_viewport_index = true;
|
||||
break;
|
||||
case VARYING_SLOT_LAYER:
|
||||
vs_info->writes_layer = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -667,6 +670,23 @@ radv_nir_shader_info_pass(const struct nir_shader *nir,
|
||||
}
|
||||
}
|
||||
|
||||
/* Make sure to export the LayerID if the subpass has multiviews. */
|
||||
if (options->key.has_multiview_view_index) {
|
||||
switch (nir->info.stage) {
|
||||
case MESA_SHADER_VERTEX:
|
||||
info->vs.outinfo.writes_layer = true;
|
||||
break;
|
||||
case MESA_SHADER_TESS_EVAL:
|
||||
info->tes.outinfo.writes_layer = true;
|
||||
break;
|
||||
case MESA_SHADER_GEOMETRY:
|
||||
info->vs.outinfo.writes_layer = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (nir->info.stage == MESA_SHADER_FRAGMENT)
|
||||
info->ps.num_interp = nir->num_inputs;
|
||||
|
||||
|
Reference in New Issue
Block a user