Skip to content

Releases: NazaraEngine/ShaderLang

v1.1.2

29 Oct 14:53

Choose a tag to compare

NZSL 1.1.2

This release is a patch fixing a few bugs from NZSL 1.1.1:

  • Fixed CNZSL version macro (305409d)
  • Fixed nzslc and nzsla version (4d26d8c)
  • Fixed external variables behind different conditions triggering a CExtAlreadyDeclaredError (a934fcf)
  • Fixed CIdentifierAlreadyUsedErrror triggered when shadowing an unresolved conditional variable (b9fba71)

Full Changelog: v1.1.1...v1.1.2

v1.1.1

13 Oct 14:55

Choose a tag to compare

NZSL 1.1.1

This release is a patch fixing a few bugs from NZSL 1.0:

  • Fixed generator number in SPIR-V code (82abebc)
  • nzslc: Tokenization is now profiled separately (df31319)
  • Compiler: Unresolved expression types (due to missing compilation steps) now trigger a AstUnresolvedExpressionTypeError instead of a AstMissingExpressionTypeError (9d1e85c)
  • Compiler: Disabled code and disabled struct members are no longer processed (32b891d)
  • Compiler: Parameter count is now checked before parameters semantics on function calls (627e28b)
  • Fixed whole module import partial compilation when no module resolver is present (d15d66e)

Full Changelog: v1.1.0...v1.1.1

v1.1.0

30 Sep 16:35

Choose a tag to compare

NZSL 1.1

This release comes with a language update, you can check the language changelog here

⚠️ This release breaks the compiler API as the compiler have been reworked.

  • nzsl::ShaderWriter::States has been renamed to nzsl::BackendParameters and has been changed
  • nzsl::Ast::Sanitize no longer exists and has been replaced by the nzsl::Ast::TransformerExecutor class
  • nzsl::Ast::Module is no longer cloned, it is instead transformed, if you need to keep it unchanged it's now up to you to clone it beforehand.

What's Changed

  • Added scalar layout by @exdal in #62
  • Split compiler into multiple passes in #64
  • Ast/Transformations: Rework context in #66
  • Added untyped literals in #65
  • Added type constants in #69
  • Added support for implicit arrays and implicit matrices in #70
  • Compiler: Unified all resolved identifier nodes in #72
  • [Tools] Implement --skip-unchanged in #75
  • Fixed generation of SPIR-V 1.4 (global interface were missing) in #77
  • Package has been renamed to include nzsl_ prefix and remove mode (debug/releasedbg) for releases (Github releases have releasedbg binaries).
  • Implemented vectors bitwise ops (#56).
  • Implemented implicit types (#70).
  • Implemented type constants (#69).
  • Implemented all, any, not, isinf, isnan, steps and smoothsteps intrinsics.
  • Improved compilation time.
  • Fixed ArraySize intrinsic (arr.Size()) on alias types.
  • NZSL is now built without imprecise floating-point optimizations.
  • Original const expression is preserved instead of replaced with its optimized value (when spitting out NZSL back).
  • Replaced multiple specific identifier value expression nodes (AliasValueExpression, ConstantExpression, FunctionExpression, etc.) with a single IdentifierValueExpression node. Also reworked IdentifierType and IdentifierCategory enums in #72.
  • Alias removal is now performed by the AliasTransformer (instead of the ResolveTransformer), this allows compiler errors to be more precise.
  • Reworked ExpressionCategory, mainly to improve textual generation (constants are no longer surrounded by parenthesis).
  • PFunctionParameterNonLValue error has been replaced by CFunctionCallSemanticRequiresVariable.

New Contributors

  • @exdal made their first contribution in #62

Full Changelog: v1.0.0...v1.1.0

v1.1.0 release candidate 3

04 Sep 22:35

Choose a tag to compare

Pre-release

NZSL 1.1

You can check the language changelog here

Differences with RC2

  • Fixed type constants not being usable in const (compile-time) contexts.
  • Original const expression is preserved instead of replaced with its optimized value (when spitting out NZSL back).
  • TransformerContext is no longer copyable.
  • Replaced multiple specific identifier value expression nodes (AliasValueExpression, ConstantExpression, FunctionExpression, etc.) with a single IdentifierValueExpression node. Also reworked IdentifierType and IdentifierCategory enums.
  • Loop unrolling is now performed by the LoopUnrollTransformer (instead of the ResolveTransformer).
  • Alias removal is now performed by the AliasTransformer (instead of the ResolveTransformer), this allows compiler errors to be more precise.
  • Reworked ExpressionCategory, mainly to improve textual generation (constants are no longer surrounded by parenthesis). PFunctionParameterNonLValue error has been replaced by CFunctionCallSemanticRequiresVariable.
  • Fixed version suffix version (was still "rc1" in rc2).

Changelog: v1.1.0-rc2...v1.1.0-rc3

Differences with RC1

  • Package has been renamed to include nzsl_ prefix and remove mode (debug/releasedbg) for releases (Github releases have releasedbg binaries).
  • Implemented vectors bitwise ops (#56).
  • Implemented implicit types (#70).
  • Implemented type constants (#69).
  • Implemented all, any, not, isinf, isnan, steps and smoothsteps intrinsics.
  • Improved compilation time.
  • Fixed ArraySize intrinsic (arr.Size()) on alias types.
  • Fixed LangWriter outputting invalid vec3[FloatLiteral] instead of implicit vec3 for vector of literals.
  • NZSL is now built without imprecise floating-point optimizations.

Changelog: v1.1.0-rc1...v1.1.0-rc2

⚠️ This release breaks the compiler API as the compiler have been reworked.

  • nzsl::ShaderWriter::States has been renamed to nzsl::BackendParameters and has been changed
  • nzsl::Ast::Sanitize no longer exists and has been replaced by the nzsl::Ast::TransformerExecutor class
  • nzsl::Ast::Module is no longer cloned, it is instead transformed, if you need to keep it unchanged it's now up to you to clone it beforehand.

What's Changed

New Contributors

  • @exdal made their first contribution in #62

Full Changelog: v1.0.0...v1.1.0-rc3

v1.1.0 release candidate 2

28 Aug 15:33
66e8a68

Choose a tag to compare

Pre-release

NZSL 1.1

You can check the language changelog here

Difference with RC1

  • Package has been renamed to include nzsl_ prefix and remove mode (debug/releasedbg) for releases (Github releases have releasedbg binaries).
  • Implemented vectors bitwise ops (#56).
  • Implemented implicit types (#70).
  • Implemented type constants (#69).
  • Implemented all, any, not, isinf, isnan, steps and smoothsteps intrinsics.
  • Improved compilation time.
  • Fixed ArraySize intrinsic (arr.Size()) on alias types.
  • Fixed LangWriter outputting invalid vec3[FloatLiteral] instead of implicit vec3 for vector of literals.
  • NZSL is now built without imprecise floating-point optimizations.

Changelog: v1.1.0-rc1...v1.1.0-rc2

⚠️ This release breaks the compiler API as the compiler have been reworked.

  • nzsl::ShaderWriter::States has been renamed to nzsl::BackendParameters and has been changed
  • nzsl::Ast::Sanitize no longer exists and has been replaced by the nzsl::Ast::TransformerExecutor class
  • nzsl::Ast::Module is no longer cloned, it is instead transformed, if you need to keep it unchanged it's now up to you to clone it beforehand.

What's Changed

New Contributors

  • @exdal made their first contribution in #62

Full Changelog: v1.0.0...v1.1.0-rc2

v1.1.0 release candidate 1

20 Aug 12:30

Choose a tag to compare

Pre-release

NZSL 1.1

You can check the language changelog here

⚠️ This release breaks the compiler API as the compiler have been reworked.

  • nzsl::ShaderWriter::States has been renamed to nzsl::BackendParameters and has been changed
  • nzsl::Ast::Sanitize no longer exists and has been replaced by the nzsl::Ast::TransformerExecutor class
  • nzsl::Ast::Module is no longer cloned, it is instead transformed, if you need to keep it unchanged it's now up to you to clone it beforehand.

What's Changed

New Contributors

  • @exdal made their first contribution in #62

Full Changelog: v1.0.0...v1.1.0-rc1

Nightly builds

28 Aug 10:15

Choose a tag to compare

Nightly builds Pre-release
Pre-release

You can find automated builds here for the last commit on the main branch.

v1.0.0 - First stable release

13 Apr 18:54

Choose a tag to compare

Initial first release

New Contributors

Full Changelog: https://github.com/NazaraEngine/ShaderLang/commits/v1.0.0