HLSL Shaders
This directory contains a fork of the shaders found in data/shaders/glsl, re-written in HLSL.
These can be compiled with DXC using the compile.py script.
Known issues
- specialization constants can't be used to specify array size.
gl_PointCoordnot supported. HLSL has no equivalent. We changed the shaders to calulate the PointCoord manually in the shader. (computenbody,computeparticles,particlesystemexamples).- HLSL doesn't have inverse operation (
deferred,hdr,instancing,skeletalanimation&texturecubemapexamples). modfcauses compilation to fail without errors or warnings. (modfnot used by any examples, easily confused with fmod)- In
specializationconstantsexample, shader compilation fails with error:
When multiple constant ids are defined and have different types. We work around this problem by making all constant ids the same type, then use--- Error msg: fatal error: failed to optimize SPIR-V: Id 10 is defined more than onceasfloat,asintorasuintto get the original value in the shader. gl_RayTmaxNVnot supported. (nv_ray_tracing_*examples)- HLSL interface for sparse residency textures is different from GLSL interface. After translating from HLSL to GLSL the shaders behave slightly different. Most important parts do behave identically though.