diff options
author | Bas Nieuwenhuizen <[email protected]> | 2019-07-11 08:44:17 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2019-07-11 15:45:56 +0200 |
commit | 7515f41c78a05962e8e659d13437a2fd2dfe7636 (patch) | |
tree | 6cd5450e403546f597bef82b3a5da544e494595c /src/amd | |
parent | 5bbcb3f5bc665b99aadb0e289eee646310e307fd (diff) |
radv/gfx10: Do GS prologue outside of gs_threads if.
Mirror radeonsi.
Reviewed-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r-- | src/amd/vulkan/radv_nir_to_llvm.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index dc37c937155..490b16a1f25 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -4372,6 +4372,12 @@ LLVMModuleRef ac_translate_nir_to_llvm(struct ac_llvm_compiler *ac_llvm, LLVMBasicBlockRef merge_block; if (shader_count >= 2 || is_ngg) { + + if (shaders[i]->info.stage == MESA_SHADER_GEOMETRY && + ctx.options->key.vs_common_out.as_ngg) { + gfx10_ngg_gs_emit_prologue(&ctx); + } + LLVMValueRef fn = LLVMGetBasicBlockParent(LLVMGetInsertBlock(ctx.ac.builder)); LLVMBasicBlockRef then_block = LLVMAppendBasicBlockInContext(ctx.ac.context, fn, ""); merge_block = LLVMAppendBasicBlockInContext(ctx.ac.context, fn, ""); @@ -4383,11 +4389,6 @@ LLVMModuleRef ac_translate_nir_to_llvm(struct ac_llvm_compiler *ac_llvm, LLVMBuildCondBr(ctx.ac.builder, cond, then_block, merge_block); LLVMPositionBuilderAtEnd(ctx.ac.builder, then_block); - - if (shaders[i]->info.stage == MESA_SHADER_GEOMETRY && - ctx.options->key.vs_common_out.as_ngg) { - gfx10_ngg_gs_emit_prologue(&ctx); - } } if (shaders[i]->info.stage == MESA_SHADER_FRAGMENT) |