From: Samuel Pitoiset Date: Tue, 9 Jan 2018 15:01:08 +0000 (+0100) Subject: amd/common: determine the ES type (VS or TES) for the GS on GFX9 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9e2395faf5470bf6b613ca9a8f04a470c92bbfde;p=mesa.git amd/common: determine the ES type (VS or TES) for the GS on GFX9 Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 70876cfc69a..34ab0a4a36e 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -6984,6 +6984,14 @@ void ac_compile_nir_shader(LLVMTargetMachineRef tm, ac_compile_llvm_module(tm, llvm_module, binary, config, shader_info, nir[0]->info.stage, dump_shader, options->supports_spill); for (int i = 0; i < nir_count; ++i) ac_fill_shader_info(shader_info, nir[i], options); + + /* Determine the ES type (VS or TES) for the GS on GFX9. */ + if (options->chip_class == GFX9) { + if (nir_count == 2 && + nir[1]->info.stage == MESA_SHADER_GEOMETRY) { + shader_info->gs.es_type = nir[0]->info.stage; + } + } } static void diff --git a/src/amd/common/ac_nir_to_llvm.h b/src/amd/common/ac_nir_to_llvm.h index 6c59ab916ce..b3ad0a09857 100644 --- a/src/amd/common/ac_nir_to_llvm.h +++ b/src/amd/common/ac_nir_to_llvm.h @@ -191,6 +191,7 @@ struct ac_shader_variant_info { unsigned invocations; unsigned gsvs_vertex_size; unsigned max_gsvs_emit_size; + unsigned es_type; /* GFX9: VS or TES */ } gs; struct { unsigned tcs_vertices_out;