[Mesa-dev] [PATCH 17/17] glsl: add double support

Topi Pohjolainen topi.pohjolainen at intel.com
Thu Feb 5 03:05:41 PST 2015


From: Dave Airlie <airlied at gmail.com>

This adds the guts of the fp64 implementation to the GLSL compiler.

- builtin double types
- double constant support
- lexer parsing for double types (lf, LF)
- enforcing flat on double fs inputs
- double operations (d2f,f2d, pack/unpack, frexp - in 2 parts)
- ir builder bits.
- double constant expression handling

v2:
add has_double check (Ian)
add d2i, i2d, d2u, u2d (Tapani + Ian)
remove extra ->type setting (Ian)

v3: include fixes from Tapani and Topi

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 src/glsl/lower_mat_op_to_vec.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/glsl/lower_mat_op_to_vec.cpp b/src/glsl/lower_mat_op_to_vec.cpp
index 105ee0d..dda754f 100644
--- a/src/glsl/lower_mat_op_to_vec.cpp
+++ b/src/glsl/lower_mat_op_to_vec.cpp
@@ -354,6 +354,8 @@ ir_mat_op_to_vec_visitor::visit_leave(ir_assignment *orig_assign)
 
    /* OK, time to break down this matrix operation. */
    switch (orig_expr->operation) {
+   case ir_unop_d2f:
+   case ir_unop_f2d:
    case ir_unop_neg: {
       /* Apply the operation to each column.*/
       for (i = 0; i < matrix_columns; i++) {
-- 
1.9.3



More information about the mesa-dev mailing list