Merge remote-tracking branch 'origin/master' into pipe-video
[mesa.git] / src / glsl / TODO
1 - Detect code paths in non-void functions that don't reach a return statement
2
3 - Improve handling of constants and their initializers. Constant initializers
4 should never generate any code. This is trival for scalar constants. It is
5 also trivial for arrays, matrices, and vectors that are accessed with
6 constant index values. For others it is more complicated. Perhaps these
7 cases should be silently converted to uniforms?
8
9 - Implement support for ir_binop_dot in ir_algebraic.cpp. Perform
10 transformations such as "dot(v, vec3(0.0, 1.0, 0.0))" -> v.y.
11
12 1.30 features:
13
14 - Implement AST-to-HIR conversion of bit-shift operators.
15
16 - Implement AST-to-HIR conversion of bit-wise {&,|,^,!} operators.
17
18 - Implement AST-to-HIR conversion of switch-statements
19 - switch
20 - case
21 - Update break to correcly handle mixed nexting of switch-statements
22 and loops.
23
24 - Handle currently unsupported constant expression types
25 - ir_unop_bit_not
26 - ir_binop_mod
27 - ir_binop_lshift
28 - ir_binop_rshift
29 - ir_binop_bit_and
30 - ir_binop_bit_xor
31 - ir_binop_bit_or
32
33 - Implement support for 1.30 style shadow compares which only return a float
34 instead of a vec4.
35
36 - Implement support for gl_ClipDistance. This is non-trivial because
37 gl_ClipDistance is exposed as a float[8], but all hardware actually
38 implements it as vec4[2].