X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fglsl%2Fir_builder.cpp;h=e44b05c991c30753fda5f8046622c4ada4a3c43a;hb=1286bd3160bc1e70fa3bba2ec12999b2a02ffad9;hp=31ed1916cc962a58d9d33e0d85f26d02471a4c57;hpb=61c450fc81900131621e57fdd78a40e82239daf3;p=mesa.git diff --git a/src/glsl/ir_builder.cpp b/src/glsl/ir_builder.cpp index 31ed1916cc9..e44b05c991c 100644 --- a/src/glsl/ir_builder.cpp +++ b/src/glsl/ir_builder.cpp @@ -211,12 +211,12 @@ ir_expression *sub(operand a, operand b) return expr(ir_binop_sub, a, b); } -ir_expression *min(operand a, operand b) +ir_expression *min2(operand a, operand b) { return expr(ir_binop_min, a, b); } -ir_expression *max(operand a, operand b) +ir_expression *max2(operand a, operand b) { return expr(ir_binop_max, a, b); } @@ -246,18 +246,23 @@ ir_expression *borrow(operand a, operand b) return expr(ir_binop_borrow, a, b); } +ir_expression *trunc(operand a) +{ + return expr(ir_unop_trunc, a); +} + ir_expression *round_even(operand a) { return expr(ir_unop_round_even, a); } -ir_expression *dot(operand a, operand b) +ir_expression *fract(operand a) { - return expr(ir_binop_dot, a, b); + return expr(ir_unop_fract, a); } /* dot for vectors, mul for scalars */ -ir_expression *dotlike(operand a, operand b) +ir_expression *dot(operand a, operand b) { assert(a.val->type == b.val->type); @@ -276,11 +281,7 @@ clamp(operand a, operand b, operand c) ir_expression * saturate(operand a) { - void *mem_ctx = ralloc_parent(a.val); - - return expr(ir_binop_max, - expr(ir_binop_min, a, new(mem_ctx) ir_constant(1.0f)), - new(mem_ctx) ir_constant(0.0f)); + return expr(ir_unop_saturate, a); } ir_expression * @@ -505,6 +506,42 @@ b2f(operand a) return expr(ir_unop_b2f, a); } +ir_expression * +interpolate_at_centroid(operand a) +{ + return expr(ir_unop_interpolate_at_centroid, a); +} + +ir_expression * +interpolate_at_offset(operand a, operand b) +{ + return expr(ir_binop_interpolate_at_offset, a, b); +} + +ir_expression * +interpolate_at_sample(operand a, operand b) +{ + return expr(ir_binop_interpolate_at_sample, a, b); +} + +ir_expression * +f2d(operand a) +{ + return expr(ir_unop_f2d, a); +} + +ir_expression * +i2d(operand a) +{ + return expr(ir_unop_i2d, a); +} + +ir_expression * +u2d(operand a) +{ + return expr(ir_unop_u2d, a); +} + ir_expression * fma(operand a, operand b, operand c) {