Giter Club home page Giter Club logo

mlsl's People

Watchers

 avatar  avatar

Forkers

cpwfx

mlsl's Issues

Int lexer

Integer lexer should recognize numbers in octal or hexadecimal systems.

Arrays

MLSL lacks of constant array types.

AGAL - constant values

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.

Float lexer

Float lexer should accept more advenced expressions such as: 0. .0001 1.e-3 etc.

Unit testing

Complexity of the project and unfriendliness of program output makes testing difficult. A unit test framework could solve the problem.

JSON - format

vertex and fragment program information should be placed in separate files.
Also, output source code / bytecode should be placed in a field.

AGAL - masks on write

Compiler generates code that uses mask at first write to register. AGAL doesn't allow that.

Midlang target

Human readable output with intermediate code (midlang) which could be chosen by target architecutre option will be usefull for debuging and testing purposes.

--allow-param-pack command line flag.

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 not needed

Semantics need to be removed from MLSL. Instead, we will specify attribute stream content just by name.

Overloaded vector and matrix constructors

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.

Unfolding of recursion and if-branches

Recursion and if-expressions are available only in evaluation stage. Unfolding of such expressions to intermediate code (midlang) is still unimplemented.

Sampler state

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.