glsl2: Update TODO.
[mesa.git] / src / glsl / TODO
1 - Handle currently unsupported constant expression types
2 - ir_unop_sign
3 - ir_unop_exp2
4 - ir_unop_log2
5 - ir_unop_u2f
6 - ir_unop_trunc
7 - ir_unop_ceil
8 - ir_unop_floor
9 - ir_unop_sin
10 - ir_unop_cos
11 - ir_binop_min
12 - ir_binop_max
13 - ir_binop_pow
14
15 - Handle constant expressions of (struct == struct)
16
17 - Handle constant expressions of (struct != struct)
18
19 - Add support to ir_constant for array constants Arrays can only be
20 - declared 'const' in GLSL 1.20+. This is because there are no
21 array constructors in GLSL 1.10, and any variable declared as
22 'const' must have an initializer.
23
24 - Handle constant expressions of (array == array)
25
26 - Handle constant expressions of (array != array)
27
28 - Treat built-in functions with constant parameters as constant expressions.
29 - Rewrite all built-in functions return a single expression.
30 - Modify the HIR generator for functions to automatically inline built-in
31 functions durning translation.
32 - Care must be taken to handle both the 1.10 rules and the 1.20+ rules. In
33 1.10, built-in functions cannot be constant expressions.
34
35 - Detect code paths in non-void functions that don't reach a return statement
36
37 - Handle over-riding built-in functions
38 - Is the overload per-compilation unit or per-linked shader?
39
40 - Handle redeclaration of built-in variables
41 - Handle addition of qualifiers such as 'invariant' or 'centroid'.
42 - Handle resizing of arrays.
43 - Other? We'll have to look at the spec.
44
45 - Improve handling of constants and their initializers. Constant initializers
46 should never generate any code. This is trival for scalar constants. It is
47 also trivial for arrays, matrices, and vectors that are accessed with
48 constant index values. For others it is more complicated. Perhaps these
49 cases should be silently converted to uniforms?
50
51 1.30 features:
52
53 - Implement AST-to-HIR conversion of bit-shift operators.
54
55 - Implement AST-to-HIR conversion of bit-wise {&,|,^,!} operators.
56
57 - Implement AST-to-HIR conversion of switch-statements
58 - switch
59 - case
60 - Update break to correcly handle mixed nexting of switch-statements
61 and loops.
62
63 - Handle currently unsupported constant expression types
64 - ir_unop_bit_not
65 - ir_binop_mod
66 - ir_binop_lshift
67 - ir_binop_rshift
68 - ir_binop_bit_and
69 - ir_binop_bit_xor
70 - ir_binop_bit_or
71
72 - Implement support for 1.30 style shadow compares which only return a float
73 instead of a vec4.