radeonsi: fix a front face regression (crash)
Since the switch to ACO for gfx8-9, LLVM is no longer covered by the CI.
Fixes: aee0c7274c - amd: switch to FRONT_FACE_ALL_BITS(0)
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32811>
This commit is contained in:
@@ -636,7 +636,7 @@ static void si_init_shader_args(struct si_shader *shader, struct si_shader_args
|
||||
SI_PARAM_POS_Z_FLOAT);
|
||||
si_add_arg_checked(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[3],
|
||||
SI_PARAM_POS_W_FLOAT);
|
||||
si_add_arg_checked(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.front_face,
|
||||
si_add_arg_checked(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.front_face,
|
||||
SI_PARAM_FRONT_FACE);
|
||||
si_add_arg_checked(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.ancillary,
|
||||
SI_PARAM_ANCILLARY);
|
||||
|
||||
@@ -73,7 +73,7 @@ static void interp_fs_color(struct si_shader_context *ctx, unsigned input_index,
|
||||
if (semantic_index == 1 && colors_read_mask & 0xf)
|
||||
back_attr_offset += 1;
|
||||
|
||||
is_face_positive = LLVMBuildICmp(ctx->ac.builder, LLVMRealOLT, ctx->ac.f32_0, face, "");
|
||||
is_face_positive = LLVMBuildFCmp(ctx->ac.builder, LLVMRealOLT, ctx->ac.f32_0, face, "");
|
||||
|
||||
for (chan = 0; chan < 4; chan++) {
|
||||
LLVMValueRef front, back;
|
||||
@@ -600,10 +600,8 @@ void si_llvm_build_ps_prolog(struct si_shader_context *ctx, union si_shader_part
|
||||
LLVMValueRef prim_mask = ac_get_arg(&ctx->ac, args->ac.prim_mask);
|
||||
|
||||
LLVMValueRef face = NULL;
|
||||
if (key->ps_prolog.states.color_two_side) {
|
||||
if (key->ps_prolog.states.color_two_side)
|
||||
face = ac_get_arg(&ctx->ac, args->ac.front_face);
|
||||
face = ac_to_float(&ctx->ac, face);
|
||||
}
|
||||
|
||||
LLVMValueRef color[4];
|
||||
interp_fs_color(ctx, key->ps_prolog.color_attr_index[i], i, key->ps_prolog.num_interp_inputs,
|
||||
|
||||
Reference in New Issue
Block a user