LibVega / VSL

Custom shader language for the Vega graphics library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vega Shader Langauge

Build Status

The Vega Shader Language (VSL) is a custom GPU shading language for the Vega library.

Because Vega utilizes a unique binding model and reduced subset of normal GLSL and SPIR-V features, we've implemented a custom language that matched this specific use case more directly. The resulting syntax should be easy to learn for those already familiar with GLSL or HLSL.

This repository contains the compiler library, which implements the parsing, compilation, and linking of the shaders, as well as the command line compiler tool. The VSL source is first cross-compiled into equivalent GLSL, and is then compiled with the ShaderC library.

A tutorial and spec guide is coming soon.

Acknowledgements

Many thanks to the authors of the following libraries and tools used in VSL:

Premake

  • Website: link
  • License: BSD 3-clause (original) (copy)
  • Description: Project generator allowing cross-platform and cross-compiler C++ projects.

ANTLR4

  • Website: link
  • License: BSD 3-clause (original) (copy)
  • Description: Lexer/Parser generator used to perform the parsing of shader files

shaderc

  • Website: link
  • License: Apache v2 (original) (copy)
  • Description: Compiles the generated GLSL code into SPIR-V modules

These third-party tools and libraries are rehosted under their original licenses. The authors of the Vega library and VSL make no authorship claims.

About

Custom shader language for the Vega graphics library

License:Other


Languages

Language:C++ 93.1%Language:ANTLR 3.3%Language:Lua 1.8%Language:Shell 1.2%Language:Batchfile 0.7%