targets/xvmc: use GALLIUM_COMMON_LIB_DEPS
[mesa.git] / src / glsl / TODO
index 193cfc767d87b7d03361fcc7011eecae5a340cea..bd077a85678ba75fbe37c927b49875980abc9ab5 100644 (file)
@@ -1,60 +1,4 @@
-- Implement AST-to-HIR conversion of discard instructions.
-
-- Handle constant expressions of (matrix {+,-,*,/} scalar)
-
-- Handle constant expressions of (vector {+,-,*,/} scalar)
-
-- Handle constant expressions of (matrix * vector)
-
-- Handle constant expressions of (matrix * matrix)
-
-- Handle currently unsupported constant expression types
-  - ir_unop_sign
-  - ir_unop_exp2
-  - ir_unop_log2
-  - ir_unop_u2f
-  - ir_unop_trunc
-  - ir_unop_ceil
-  - ir_unop_floor
-  - ir_unop_sin
-  - ir_unop_cos
-  - ir_binop_dot
-  - ir_binop_min
-  - ir_binop_max
-  - ir_binop_pow
-
-- Handle constant expressions of (struct == struct)
-
-- Handle constant expressions of (struct != struct)
-
-- Add support to ir_constant for array constants Arrays can only be
-  - declared 'const' in GLSL 1.20+.  This is because there are no
-    array constructors in GLSL 1.10, and any variable declared as
-    'const' must have an initializer.
-
-- Handle constant expressions of (array == array)
-
-- Handle constant expressions of (array != array)
-
-- Treat built-in functions with constant parameters as constant expressions.
-  - Rewrite all built-in functions return a single expression.
-  - Modify the HIR generator for functions to automatically inline built-in
-    functions durning translation.
-  - Care must be taken to handle both the 1.10 rules and the 1.20+ rules.  In
-    1.10, built-in functions cannot be constant expressions.
-
-- Detect non-void functions that lack a return statement
-
-- Detect return statements with a type not matching the funciton's
-  return type.
-
-- Handle over-riding built-in functions
-  - Is the overload per-compilation unit or per-linked shader?
-
-- Handle redeclaration of built-in variables
-  - Handle addition of qualifiers such as 'invariant' or 'centroid'.
-  - Handle resizing of arrays.
-  - Other?  We'll have to look at the spec.
+- Detect code paths in non-void functions that don't reach a return statement
 
 - Improve handling of constants and their initializers.  Constant initializers
   should never generate any code.  This is trival for scalar constants.  It is
@@ -62,23 +6,7 @@
   constant index values.  For others it is more complicated.  Perhaps these
   cases should be silently converted to uniforms?
 
-1.30 features:
-
-- Implement AST-to-HIR conversion of bit-shift operators.
-
-- Implement AST-to-HIR conversion of bit-wise {&,|,^,!} operators.
-
-- Implement AST-to-HIR conversion of switch-statements
-  - switch
-  - case
-  - Update break to correcly handle mixed nexting of switch-statements
-    and loops.
-
-- Handle currently unsupported constant expression types
-  - ir_unop_bit_not
-  - ir_binop_mod
-  - ir_binop_lshift
-  - ir_binop_rshift
-  - ir_binop_bit_and
-  - ir_binop_bit_xor
-  - ir_binop_bit_or
+- Track source locations throughout the IR.  There are currently several
+  places where we cannot emit line numbers for errors (and currently emit 0:0)
+  because we've "lost" the line number information.  This is particularly
+  noticeable at link time.