-
Notifications
You must be signed in to change notification settings - Fork 787
Roadmap
The current status of this project is at v0.7 (pre-release). The project will transition to 1.0 (official release) shortly. The branch for v1.0 is created but is not master yet:
The shader language supported in this project HLSL 2016 (ie shader model 6.0) is intended to match the existing HLSL shader model 5.1 to simplify initial adoption and testing. Support for advanced language features such as those supported by clang would appear in a future shader model.
The long term plan for this project was originally announced last March at GDC 2016. The presentation video is here. A PDF of the slides is also available on that page.
Here is a summary of the key points:
The following language features could be added to the front-end with no impact on core functionality, drivers, or hardware:
- Enums
- Bit-fields
- Language Standard Annotations
- References
- Unions
- Function Templates
- Visbility:
public, private, protected, friend
- Generic resource addressing
These features are under consideration for longer timeframes depending on user requests.
constexpr
- Assertions
- Function pointers (limited)
- Lambdas (limited)
- Virtuals
- Constructors, destructors, etc.
- Extern functions (linking)
There are currently no plans to implement these features in the language.
- Exceptions
- A stack
- Recursion
- STL Containers
- C99/stdlib compatibility
- Garbage collection
These are examples of changes to the language that require to changes in the hardware, and so will require updates to the underlying implementation.
- Explicit float16/
half
type - Blender intrinsics
- More atomic operations
- Stereo system values (SV_XXXX)
- Programmable blending (aka RT Read)
- Input of arbitrary structures
- More control over IEEE behavior
- Future GPU features