procedural-3d-engine/data/shaders/hlsl
Sascha Willems ee946e2abf
Update ray tracing samples to use VK_KHR_ray_tracing (#753)
* Started updating ray tracing samples to KHR extension

* Updated GLSL shaders to use GL_EXT_ray_tracing

* Code cleanup, naming

* Fix include directories to use Vulkan headers from repository instead of NDK for the Android build

* Added new Android function pointers

* Renamed basic ray tracing sample

Added android build files

* Remove unused batch file

* Replaced remaining NV identifiers

* Updating ray tracing shadow sample to KHR extension

* Updated shaders to use KHR instead of NV extension

Fixed shader bindings

* Updating ray tracing reflections sample to KHR extension

* Renamed ray tracing reflections sample

* Renamed ray tracing shadows sample

Added android build files

* Removed no-longer used batch files for shader generation

* Proper alignment for the shader binding table

* Updated readme

* Reworked shader group setup

* Cleanup

* Reworked shader group setup

* Reworked shader group setup

* Code cleanup
2020-08-15 17:59:02 +02:00
..
base Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
bloom Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computecloth Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computecullandlod Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeheadless Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computenbody Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeparticles Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeraytracing Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
computeshader Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
conditionalrender Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
conservativeraster Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
debugmarker Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
deferred Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
deferredmultisampling Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
deferredshadows Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
descriptorsets Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
displacement Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
distancefieldfonts Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
dynamicuniformbuffer Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
gears Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
geometryshader Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
gltfloading Merge glTF scene rendering sample (#744) 2020-07-04 14:20:45 +02:00
gltfscenerendering Merge glTF scene rendering sample (#744) 2020-07-04 14:20:45 +02:00
hdr Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
imgui Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
indirectdraw Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
inlineuniformblocks Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
inputattachments Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
instancing Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
mesh Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
multisampling Rename multisampling shaders: scene -> mesh 2020-06-01 12:22:28 +01:00
multithreading Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
multiview Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
negativeviewportheight Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
occlusionquery Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
offscreen Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
parallaxmapping Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
particlefire Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pbrbasic Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
pbribl Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
pbrtexture Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pipelines Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pipelinestatistics Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
pushconstants Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
pushdescriptors Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
radialblur Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
raytracingbasic Update ray tracing samples to use VK_KHR_ray_tracing (#753) 2020-08-15 17:59:02 +02:00
raytracingreflections Update ray tracing samples to use VK_KHR_ray_tracing (#753) 2020-08-15 17:59:02 +02:00
raytracingshadows Update ray tracing samples to use VK_KHR_ray_tracing (#753) 2020-08-15 17:59:02 +02:00
renderheadless Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
screenshot Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
shadowmapping Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
shadowmappingcascade Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
shadowmappingomni Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
specializationconstants Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
sphericalenvmapping Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
ssao Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
stencilbuffer Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
subpasses Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
terraintessellation Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
tessellation Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
textoverlay Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texture Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texture3d Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texturearray Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texturecubemap Merge glTF branch (#747) 2020-07-28 20:20:38 +02:00
texturecubemaparray Added cube map array sample 2020-07-19 07:07:54 +02:00
texturemipmapgen Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
texturesparseresidency Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
triangle Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
viewportarray Add pre-built HLSL shaders 2020-06-01 12:22:28 +01:00
vulkanscene Add pre-built HLSL shaders 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

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.