diff options
author | Matt Turner <[email protected]> | 2013-08-22 13:31:18 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2013-09-17 16:59:05 -0700 |
commit | b2ab840130677bbe7b67de4727fcd91ee6506bb8 (patch) | |
tree | 5160561da43809a9c7df2b2c40c6e6cb73d6fa93 /src/mesa | |
parent | 4b0488ef4e3e4562c8e383282e0d2db183dfc5c1 (diff) |
glsl: Add support for ldexp.
v2: Drop frexp. Rebase on builtins rewrite.
Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 3 | ||||
-rw-r--r-- | src/mesa/program/ir_to_mesa.cpp | 1 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 1 |
5 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp index b4c33e636a9..fb932d8c217 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp @@ -404,6 +404,7 @@ ir_channel_expressions_visitor::visit_leave(ir_assignment *ir) case ir_unop_unpack_unorm_2x16: case ir_unop_unpack_unorm_4x8: case ir_unop_unpack_half_2x16: + case ir_binop_ldexp: case ir_binop_vector_extract: case ir_triop_vector_insert: case ir_quadop_bitfield_insert: diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 8b505a07cad..3d25fe3eca5 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -501,6 +501,10 @@ fs_visitor::visit(ir_expression *ir) assert(!"not reached: should be handled by lower_vector_insert()"); break; + case ir_binop_ldexp: + assert(!"not reached: should be handled by ldexp_to_arith()"); + break; + case ir_unop_sqrt: emit_math(SHADER_OPCODE_SQRT, this->result, op[0]); break; diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index 874e6e3f385..3ff6a610359 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -1651,6 +1651,9 @@ vec4_visitor::visit(ir_expression *ir) case ir_binop_pack_half_2x16_split: assert(!"not reached: should not occur in vertex shader"); break; + case ir_binop_ldexp: + assert(!"not reached: should be handled by ldexp_to_arith()"); + break; } } diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 510235caeed..cef32dc0712 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -1497,6 +1497,7 @@ ir_to_mesa_visitor::visit(ir_expression *ir) case ir_triop_bitfield_extract: case ir_triop_vector_insert: case ir_quadop_bitfield_insert: + case ir_binop_ldexp: case ir_triop_csel: assert(!"not supported"); break; diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 1c9174c91d0..0a1837f69b3 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -1979,6 +1979,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir) case ir_quadop_vector: 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. */ |