From: Nicolai Hähnle Date: Wed, 19 Apr 2017 08:47:08 +0000 (+0200) Subject: glsl: remove the shader_group_vote and shader_ballot expression ops X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ce55afc4d6d3d97440856cad117d02c20fb952a9;p=mesa.git glsl: remove the shader_group_vote and shader_ballot expression ops They are now no longer used. --- diff --git a/src/compiler/glsl/ir.cpp b/src/compiler/glsl/ir.cpp index 3b0cbee3b85..356eb0fbcfd 100644 --- a/src/compiler/glsl/ir.cpp +++ b/src/compiler/glsl/ir.cpp @@ -381,20 +381,6 @@ ir_expression::ir_expression(int op, ir_rvalue *op0) this->type = glsl_type::int_type; break; - case ir_unop_ballot: - this->type = glsl_type::uint64_t_type; - break; - - case ir_unop_read_first_invocation: - this->type = op0->type; - break; - - case ir_unop_vote_any: - case ir_unop_vote_all: - case ir_unop_vote_eq: - this->type = glsl_type::bool_type; - break; - case ir_unop_bitcast_i642d: case ir_unop_bitcast_u642d: this->type = glsl_type::get_instance(GLSL_TYPE_DOUBLE, @@ -504,10 +490,6 @@ ir_expression::ir_expression(int op, ir_rvalue *op0, ir_rvalue *op1) this->type = op0->type->get_scalar_type(); break; - case ir_binop_read_invocation: - this->type = op0->type; - break; - default: assert(!"not reached: missing automatic type setup for ir_expression"); this->type = glsl_type::float_type; diff --git a/src/compiler/glsl/ir_expression_operation.py b/src/compiler/glsl/ir_expression_operation.py index fd9f103e96c..0518f9dfbc5 100644 --- a/src/compiler/glsl/ir_expression_operation.py +++ b/src/compiler/glsl/ir_expression_operation.py @@ -567,15 +567,6 @@ ir_expression_operation = [ # of its length. operation("ssbo_unsized_array_length", 1), - # ARB_shader_ballot operations - operation("ballot", 1, source_types=(bool_type,), dest_type=uint64_type), - operation("read_first_invocation", 1), - - # Vote among threads on the value of the boolean argument. - operation("vote_any", 1), - operation("vote_all", 1), - operation("vote_eq", 1), - # 64-bit integer packing ops. operation("pack_int_2x32", 1, printable_name="packInt2x32", source_types=(int_type,), dest_type=int64_type, c_expression="memcpy(&data.i64[0], &op[0]->value.i[0], sizeof(int64_t))", flags=frozenset((horizontal_operation, non_assign_operation))), operation("pack_uint_2x32", 1, printable_name="packUint2x32", source_types=(uint_type,), dest_type=uint64_type, c_expression="memcpy(&data.u64[0], &op[0]->value.u[0], sizeof(uint64_t))", flags=frozenset((horizontal_operation, non_assign_operation))), @@ -667,9 +658,6 @@ ir_expression_operation = [ # operand1 is the sample ID operation("interpolate_at_sample", 2), - # ARB_shader_ballot operation - operation("read_invocation", 2), - # Fused floating-point multiply-add, part of ARB_gpu_shader5. operation("fma", 3, source_types=real_types, c_expression="{src0} * {src1} + {src2}"), diff --git a/src/compiler/glsl/ir_validate.cpp b/src/compiler/glsl/ir_validate.cpp index df76a7cafd8..8f546372466 100644 --- a/src/compiler/glsl/ir_validate.cpp +++ b/src/compiler/glsl/ir_validate.cpp @@ -582,29 +582,6 @@ ir_validate::visit_leave(ir_expression *ir) assert(ir->type->base_type == GLSL_TYPE_INT); break; - case ir_unop_ballot: - assert(ir->type == glsl_type::uint64_t_type); - assert(ir->operands[0]->type == glsl_type::bool_type); - break; - - case ir_binop_read_invocation: - assert(ir->operands[1]->type == glsl_type::uint_type); - /* fall-through */ - case ir_unop_read_first_invocation: - assert(ir->type == ir->operands[0]->type); - assert(ir->type->is_scalar() || ir->type->is_vector()); - assert(ir->type->is_float() || - ir->type->base_type == GLSL_TYPE_INT || - ir->type->base_type == GLSL_TYPE_UINT); - break; - - case ir_unop_vote_any: - case ir_unop_vote_all: - case ir_unop_vote_eq: - assert(ir->type == glsl_type::bool_type); - assert(ir->operands[0]->type == glsl_type::bool_type); - break; - case ir_binop_add: case ir_binop_sub: case ir_binop_mul: diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 39cde15e507..be7901e7bca 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -1389,12 +1389,6 @@ ir_to_mesa_visitor::visit(ir_expression *ir) case ir_unop_dFdy_fine: case ir_unop_subroutine_to_int: case ir_unop_get_buffer_size: - case ir_unop_ballot: - case ir_binop_read_invocation: - case ir_unop_read_first_invocation: - case ir_unop_vote_any: - case ir_unop_vote_all: - case ir_unop_vote_eq: case ir_unop_bitcast_u642d: case ir_unop_bitcast_i642d: case ir_unop_bitcast_d2u64: diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 4d1338e418e..83dadabf65c 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -2361,24 +2361,6 @@ glsl_to_tgsi_visitor::visit_expression(ir_expression* ir, st_src_reg *op) break; } - case ir_unop_vote_any: - emit_asm(ir, TGSI_OPCODE_VOTE_ANY, result_dst, op[0]); - break; - case ir_unop_vote_all: - emit_asm(ir, TGSI_OPCODE_VOTE_ALL, result_dst, op[0]); - break; - case ir_unop_vote_eq: - emit_asm(ir, TGSI_OPCODE_VOTE_EQ, result_dst, op[0]); - break; - case ir_unop_ballot: - emit_asm(ir, TGSI_OPCODE_BALLOT, result_dst, op[0]); - break; - case ir_unop_read_first_invocation: - emit_asm(ir, TGSI_OPCODE_READ_FIRST, result_dst, op[0]); - break; - case ir_binop_read_invocation: - emit_asm(ir, TGSI_OPCODE_READ_INVOC, result_dst, op[0], op[1]); - break; case ir_unop_u2i64: case ir_unop_u2u64: case ir_unop_b2i64: {