diff options
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.c | 8 | ||||
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.h | 1 |
2 files changed, 9 insertions, 0 deletions
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; |