ppolesiuk / mlsl Goto Github PK
View Code? Open in Web Editor NEWML Shading Language
ML Shading Language
Integer lexer should recognize numbers in octal or hexadecimal systems.
MLSL lacks of constant array types.
AGAL doesn't have "load constant" instruction, all constant have to be stored in constant registers, so informations about placement of constants is to be generated in json file.
Despide of AGAL having only floating point instructions, integer and boolean expresions can be helpful in optimization in intermediate code.
Float lexer should accept more advenced expressions such as: 0. .0001 1.e-3 etc.
Complexity of the project and unfriendliness of program output makes testing difficult. A unit test framework could solve the problem.
Makefile have to take dependencies into account.
Matrix multiplication for AGAL target is still unimplemented.
AGAL doesn't allow to use two consts as source registers.
vertex and fragment program information should be placed in separate files.
Also, output source code / bytecode should be placed in a field.
Evaluation of comparison operators is unimplemented.
Compiler generates code that uses mask at first write to register. AGAL doesn't allow that.
Human readable output with intermediate code (midlang) which could be chosen by target architecutre option will be usefull for debuging and testing purposes.
Packing several parameters into one register can save the register space, but is more difficult to handle. The --allow-param-pack flag could enable this feature.
Semantics need to be removed from MLSL. Instead, we will specify attribute stream content just by name.
Constructors of vectors and matrices should provide a convenient way to create new values. For example constructor of vec3 should have type float -> float -> float -> vec3, but vec3 : float -> vec2 -> vec3 and vec3 : vec2 -> float -> vec3 also can be usefull.
Recursion and if-expressions are available only in evaluation stage. Unfolding of such expressions to intermediate code (midlang) is still unimplemented.
Samplers can have multiple settings in agal fragment program. That's quite weird, because in OpenGL sampler settings are specified by the API calls, not by the shader itself. I guess AGAL programmers are inspired by HLSL. Anyway, MLSL needs them too, especially DXT5.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.