mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-20 05:50:27 +01:00
ac/llvm: remove the double frcp special handling
KHR-GL45.gpu_shader_fp64.builtin.mod_* relaxed precision requirement. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23012>
This commit is contained in:
parent
f094c8acfe
commit
8cc7ad48d5
2 changed files with 2 additions and 11 deletions
|
|
@ -711,10 +711,6 @@ LLVMValueRef ac_build_fdiv(struct ac_llvm_context *ctx, LLVMValueRef num, LLVMVa
|
|||
unsigned type_size = ac_get_type_size(LLVMTypeOf(den));
|
||||
const char *name;
|
||||
|
||||
/* For doubles, we need precise division to pass GLCTS. */
|
||||
if (ctx->float_mode == AC_FLOAT_MODE_DEFAULT_OPENGL && type_size == 8)
|
||||
return LLVMBuildFDiv(ctx->builder, num, den, "");
|
||||
|
||||
if (type_size == 2)
|
||||
name = "llvm.amdgcn.rcp.f16";
|
||||
else if (type_size == 4)
|
||||
|
|
|
|||
|
|
@ -671,13 +671,8 @@ static bool visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
|
|||
src, 2, 0);
|
||||
break;
|
||||
case nir_op_frcp:
|
||||
/* For doubles, we need precise division to pass GLCTS. */
|
||||
if (ctx->ac.float_mode == AC_FLOAT_MODE_DEFAULT_OPENGL && ac_get_type_size(def_type) == 8) {
|
||||
result = LLVMBuildFDiv(ctx->ac.builder, ctx->ac.f64_1, ac_to_float(&ctx->ac, src[0]), "");
|
||||
} else {
|
||||
result = emit_intrin_1f_param_scalar(&ctx->ac, "llvm.amdgcn.rcp",
|
||||
ac_to_float_type(&ctx->ac, def_type), src[0]);
|
||||
}
|
||||
result = emit_intrin_1f_param_scalar(&ctx->ac, "llvm.amdgcn.rcp",
|
||||
ac_to_float_type(&ctx->ac, def_type), src[0]);
|
||||
if (ctx->abi->clamp_div_by_zero)
|
||||
result = ac_build_fmin(&ctx->ac, result,
|
||||
LLVMConstReal(ac_to_float_type(&ctx->ac, def_type), FLT_MAX));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue