| Feature | Priority | Remarks |
|---|---|---|
| Output semantic from casted return value in entry point | Very high | Is currently ignored in GLSL output. in progress |
| Braced initializer | High | Translation of braced initializers are incomplete. in progress |
| Tessellation shader support | High | Tessellation shader attributes are done, but in/out semantics are incomplete. |
| Type denoter analysis clean-up | Medium | Few more things should be moved from AST nodes into TypeDenoter classes (e.g. constness). in progress |
| GLSL Frontend | Medium | GLSL can currently only be pre-processed. |
| 'interface' and 'class' declarations | Low | Interfaces and classes can currently not even be parsed. |
| Issue | Remarks |
|---|---|
| Implicit type conversion | in progress |
| Intrinsic argument type matching | Type matching is incomplete for intrinsic function calls. in progress |
| Struct used as input and ouput | Structures can currently not be used for shader input and output semantics simultaneously. |
| Unicode | The compiler uses the C++ ASCII file streams, that are not aware of unicode characters, neither in the file contents, nor in their filenames. |
Texture Operator[] |
The bracket operator is currently not translated for Texture objects, neither Operator[] nor mips.Operator[][]. |
GetDimensions(...) |
Cannot be translated propery (for all texture types) -> use cbuffer to pass dimension data. |
atan2(x, y) |
Must be translated to atan(y, x). |
Boolean in lerp/mix |
Third argument in lerp/mix intrinsic must not be casted to floating-points. |
- Warnings for required GLSL extensions (implemented with
-Wextension; also-Walladded like in GCC). - Shader Reflection: texture type, constant buffer members