HLSL to GLSL language translator based on ATI's HLSL2GLSL. Used in Unity and bitsquid.
C++ C Ruby
Pull request Compare This branch is 5 commits ahead, 456 commits behind aras-p:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
OGLCompilersDLL
hlslang.xcodeproj
hlslang
include
tests
tools
.gitignore
CMakeLists.txt
LICENSE.txt
README.md
hlslang.sln
hlslang.vcproj
hlslang.vcxproj
hlslang_vc11.vcxproj
hlslang_vs2008.sln
hlslang_vs2010.sln
hlslang_vs2012.sln
rakefile.rb

README.md

HLSL to GLSL shader language translator

This is a fork of Aras Pranckevičius's fork of ATI's HLSL2GLSL for use in the bitsquid engine.

Changes from Unity's hlsl2glsl

  • Added support for emission of const initializers (including struct and array initializers using GLSL 1.20 array syntax).
  • Removed all constant folding functionality as it was completely broken.
  • A myriad of smaller bug fixes.
  • Support DX10 SV_VertexID, SV_PrimitiveID and SV_InstanceID semantics.
  • Support for shadow sampler types (samplerRECTShadow/sampler2DShadow etc.) which generate appropriate shadow2DRect/shadow2D etc. calls.
  • Fixed unaligned swizzled matrix access & assignments (view._m01_m02_m33 = value)

Status

The library is used in the bitsquid engine and seems to work well for our current purposes. Support for DX11 feautres will probably not be added due to the bad condition the original code is in (very obscure and inefficient), instead we will publish our own cross compiler when it's ready.