mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 23:20:08 +01:00
ac/nir: init full exec mask for merged shaders.
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
14978a1c3b
commit
1dda214d9c
3 changed files with 12 additions and 0 deletions
|
|
@ -1734,3 +1734,11 @@ void ac_optimize_vs_outputs(struct ac_llvm_context *ctx,
|
|||
*num_param_exports = exports.num;
|
||||
}
|
||||
}
|
||||
|
||||
void ac_init_exec_full_mask(struct ac_llvm_context *ctx)
|
||||
{
|
||||
LLVMValueRef full_mask = LLVMConstInt(ctx->i64, ~0ull, 0);
|
||||
ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.init.exec", ctx->voidt,
|
||||
&full_mask, 1, AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -281,6 +281,7 @@ void ac_optimize_vs_outputs(struct ac_llvm_context *ac,
|
|||
uint8_t *vs_output_param_offset,
|
||||
uint32_t num_outputs,
|
||||
uint8_t *num_param_exports);
|
||||
void ac_init_exec_full_mask(struct ac_llvm_context *ctx);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -6488,6 +6488,9 @@ LLVMModuleRef ac_translate_nir_to_llvm(LLVMTargetMachineRef tm,
|
|||
ctx.abi.load_ssbo = radv_load_ssbo;
|
||||
ctx.abi.load_sampler_desc = radv_get_sampler_desc;
|
||||
|
||||
if (shader_count >= 2)
|
||||
ac_init_exec_full_mask(&ctx.ac);
|
||||
|
||||
if (ctx.ac.chip_class == GFX9 &&
|
||||
shaders[shader_count - 1]->stage == MESA_SHADER_TESS_CTRL)
|
||||
ac_nir_fixup_ls_hs_input_vgprs(&ctx);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue