mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
st/mesa: fix GLSL mix(.., .., bvecN)
v2: use CMP on drivers without native integer support
This commit is contained in:
parent
a64d3dd135
commit
2bda5f3298
1 changed files with 8 additions and 1 deletions
|
|
@ -1944,6 +1944,14 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
|
|||
/* note: we have to reorder the three args here */
|
||||
emit(ir, TGSI_OPCODE_LRP, result_dst, op[2], op[1], op[0]);
|
||||
break;
|
||||
case ir_triop_csel:
|
||||
if (this->ctx->Const.NativeIntegers)
|
||||
emit(ir, TGSI_OPCODE_UCMP, result_dst, op[0], op[1], op[2]);
|
||||
else {
|
||||
op[0].negate = ~op[0].negate;
|
||||
emit(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]);
|
||||
}
|
||||
break;
|
||||
case ir_unop_pack_snorm_2x16:
|
||||
case ir_unop_pack_unorm_2x16:
|
||||
case ir_unop_pack_half_2x16:
|
||||
|
|
@ -1970,7 +1978,6 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
|
|||
case ir_binop_vector_extract:
|
||||
case ir_triop_vector_insert:
|
||||
case ir_binop_ldexp:
|
||||
case ir_triop_csel:
|
||||
/* This operation is not supported, or should have already been handled.
|
||||
*/
|
||||
assert(!"Invalid ir opcode in glsl_to_tgsi_visitor::visit()");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue