mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 00:00:11 +01:00
ir_to_mesa: Add support for trunc/ceil/floor.
This commit is contained in:
parent
c45b615a37
commit
c2014f03e8
2 changed files with 22 additions and 3 deletions
|
|
@ -520,6 +520,15 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
|
|||
this->result = this->create_tree(MB_TERM_sne_vec4_vec4, ir,
|
||||
op[0], this->result);
|
||||
break;
|
||||
case ir_unop_trunc:
|
||||
this->result = this->create_tree(MB_TERM_trunc_vec4, ir, op[0], NULL);
|
||||
break;
|
||||
case ir_unop_ceil:
|
||||
this->result = this->create_tree(MB_TERM_ceil_vec4, ir, op[0], NULL);
|
||||
break;
|
||||
case ir_unop_floor:
|
||||
this->result = this->create_tree(MB_TERM_floor_vec4, ir, op[0], NULL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@
|
|||
%term exp2_vec4
|
||||
%term log_vec4
|
||||
%term log2_vec4
|
||||
%term trunc_vec4
|
||||
%term ceil_vec4
|
||||
%term floor_vec4
|
||||
%term sin_vec4
|
||||
%term cos_vec4
|
||||
%term add_vec4_vec4
|
||||
|
|
@ -71,7 +74,6 @@
|
|||
%term sqrt_vec4
|
||||
%term rsq_vec4
|
||||
%term swizzle_vec4
|
||||
%term trunc_vec4
|
||||
|
||||
# Each tree will produce stmt. Currently, the only production for
|
||||
# stmt is from an assign rule -- every statement tree from
|
||||
|
|
@ -159,6 +161,16 @@ vec4: swizzle_vec4(vec4) 1
|
|||
reg);
|
||||
}
|
||||
|
||||
vec4: trunc_vec4(vec4) 1 { ir_to_mesa_emit_op1(tree, OPCODE_TRUNC); }
|
||||
|
||||
vec4: ceil_vec4(vec4) 1 {
|
||||
tree->left->src_reg.negate = ~tree->left->src_reg.negate;
|
||||
ir_to_mesa_emit_op1(tree, OPCODE_FLR);
|
||||
tree->src_reg.negate = ~tree->left->src_reg.negate;
|
||||
}
|
||||
|
||||
vec4: floor_vec4(vec4) 1 { ir_to_mesa_emit_op1(tree, OPCODE_FLR); }
|
||||
|
||||
vec4: sin_vec4(vec4) 1
|
||||
{
|
||||
ir_to_mesa_emit_scalar_op1(tree, OPCODE_SIN,
|
||||
|
|
@ -261,6 +273,4 @@ vec4: log2_vec4(vec4) 1
|
|||
tree->left->src_reg);
|
||||
}
|
||||
|
||||
vec4: trunc_vec4(vec4) 1 { ir_to_mesa_emit_op1(tree, OPCODE_TRUNC); }
|
||||
|
||||
%%
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue