amd: lower load_pixel_coord in NIR
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32782>
This commit is contained in:
@@ -170,7 +170,9 @@ lower_intrinsic_to_arg(nir_builder *b, nir_instr *instr, void *state)
|
|||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case nir_intrinsic_load_pixel_coord:
|
||||||
|
replacement = nir_unpack_32_2x16(b, ac_nir_load_arg(b, s->args, s->args->pos_fixed_pt));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
@@ -8158,12 +8158,6 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr)
|
|||||||
emit_load_frag_coord(ctx, get_ssa_temp(ctx, &instr->def), 4);
|
emit_load_frag_coord(ctx, get_ssa_temp(ctx, &instr->def), 4);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case nir_intrinsic_load_pixel_coord: {
|
|
||||||
Temp dst = get_ssa_temp(ctx, &instr->def);
|
|
||||||
bld.copy(Definition(dst), get_arg(ctx, ctx->args->pos_fixed_pt));
|
|
||||||
emit_split_vector(ctx, dst, 2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case nir_intrinsic_load_frag_shading_rate:
|
case nir_intrinsic_load_frag_shading_rate:
|
||||||
emit_load_frag_shading_rate(ctx, get_ssa_temp(ctx, &instr->def));
|
emit_load_frag_shading_rate(ctx, get_ssa_temp(ctx, &instr->def));
|
||||||
break;
|
break;
|
||||||
|
@@ -561,7 +561,6 @@ init_context(isel_context* ctx, nir_shader* shader)
|
|||||||
case nir_intrinsic_load_interpolated_input:
|
case nir_intrinsic_load_interpolated_input:
|
||||||
case nir_intrinsic_load_front_face_fsign:
|
case nir_intrinsic_load_front_face_fsign:
|
||||||
case nir_intrinsic_load_frag_coord:
|
case nir_intrinsic_load_frag_coord:
|
||||||
case nir_intrinsic_load_pixel_coord:
|
|
||||||
case nir_intrinsic_load_frag_shading_rate:
|
case nir_intrinsic_load_frag_shading_rate:
|
||||||
case nir_intrinsic_load_sample_pos:
|
case nir_intrinsic_load_sample_pos:
|
||||||
case nir_intrinsic_load_local_invocation_id:
|
case nir_intrinsic_load_local_invocation_id:
|
||||||
|
@@ -2883,14 +2883,6 @@ emit_load_frag_coord(struct ac_nir_context *ctx)
|
|||||||
return ac_to_integer(&ctx->ac, ac_build_gather_values(&ctx->ac, values, 4));
|
return ac_to_integer(&ctx->ac, ac_build_gather_values(&ctx->ac, values, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
static LLVMValueRef
|
|
||||||
emit_load_pixel_coord(struct ac_nir_context *ctx)
|
|
||||||
{
|
|
||||||
LLVMValueRef value = ac_get_arg(&ctx->ac, ctx->args->pos_fixed_pt);
|
|
||||||
|
|
||||||
return LLVMBuildBitCast(ctx->ac.builder, value, ctx->ac.v2i16, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *instr)
|
static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *instr)
|
||||||
{
|
{
|
||||||
LLVMValueRef result = NULL;
|
LLVMValueRef result = NULL;
|
||||||
@@ -3035,9 +3027,6 @@ static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins
|
|||||||
case nir_intrinsic_load_frag_coord:
|
case nir_intrinsic_load_frag_coord:
|
||||||
result = emit_load_frag_coord(ctx);
|
result = emit_load_frag_coord(ctx);
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_pixel_coord:
|
|
||||||
result = emit_load_pixel_coord(ctx);
|
|
||||||
break;
|
|
||||||
case nir_intrinsic_load_frag_shading_rate:
|
case nir_intrinsic_load_frag_shading_rate:
|
||||||
result = emit_load_frag_shading_rate(ctx);
|
result = emit_load_frag_shading_rate(ctx);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user