From: Nicolai Hähnle <[email protected]>
---
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 7da08da..e84c61a 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -2360,20 +2360,29 @@ glsl_to_tgsi_visitor::visit_expression(ir_expression*
ir, st_src_reg *op)
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: {
st_src_reg temp = get_temp(glsl_type::uvec4_type);
st_dst_reg temp_dst = st_dst_reg(temp);
unsigned orig_swz = op[0].swizzle;
/*
* To convert unsigned to 64-bit:
* zero Y channel, copy X channel.
*/
--
2.9.3
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev