procedural-3d-engine/data/shaders/hlsl
Ben Clayton a4bbe18399 Have dxc generate hlsl shaders into hlsl directory
Instead of overwriting the glsl binaries.

Issue: #723
2020-06-01 12:22:28 +01:00
..
base Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
bloom Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
computecloth Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
computecullandlod Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
computeheadless Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
computenbody Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
computeparticles Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
computeraytracing Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
computeshader Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
conditionalrender Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
conservativeraster Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
debugmarker Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
deferred Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
deferredmultisampling Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
deferredshadows Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
descriptorsets Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
displacement Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
distancefieldfonts Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
dynamicuniformbuffer Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
gears Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
geometryshader Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
gltfscene Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
hdr Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
imgui Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
indirectdraw Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
inlineuniformblocks Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
inputattachments Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
instancing Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
mesh Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
multisampling Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
multithreading Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
multiview Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
negativeviewportheight Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
nv_ray_tracing_basic Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
nv_ray_tracing_reflections Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
nv_ray_tracing_shadows Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
occlusionquery Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
offscreen Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
parallaxmapping Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
particlefire Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
pbrbasic Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
pbribl Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
pbrtexture Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
pipelines Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
pipelinestatistics Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
pushconstants Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
pushdescriptors Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
radialblur Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
renderheadless Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
scenerendering Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
screenshot Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
shadowmapomni Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
shadowmapping Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
shadowmappingcascade Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
skeletalanimation Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
specializationconstants Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
sphericalenvmapping Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
ssao Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
stencilbuffer Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
subpasses Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
terraintessellation Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
tessellation Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
textoverlay Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
texture Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
texture3d Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
texturearray Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
texturecubemap Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
texturemipmapgen Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
texturesparseresidency Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
triangle Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
viewportarray Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
vulkanscene Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00
compile.py Have dxc generate hlsl shaders into hlsl directory 2020-06-01 12:22:28 +01:00
README.md Move shaders into glsl and hlsl directories 2020-06-01 12:22:28 +01:00

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_PointCoord not supported. HLSL has no equivalent. We changed the shaders to calulate the PointCoord manually in the shader. (computenbody, computeparticles, particlefire examples).
  • HLSL doesn't have inverse operation (deferred, hdr, instancing, skeletalanimation & texturecubemap examples).
  • modf causes compilation to fail without errors or warnings. (modf not used by any examples, easily confused with fmod)
  • In specializationconstants example, shader compilation fails with error:
    --- Error msg: fatal error: failed to optimize SPIR-V: Id 10 is defined more than once
    
    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 asfloat, asint or asuint to get the original value in the shader.
  • gl_RayTmaxNV not 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.