From 0b5281d087c4ed18462482b5831d15a03d2abf13 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Wed, 1 May 2024 18:33:27 +0200 Subject: [PATCH] Updated HLSL readme --- shaders/hlsl/README.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/shaders/hlsl/README.md b/shaders/hlsl/README.md index 8aec80f1..dd70e74a 100644 --- a/shaders/hlsl/README.md +++ b/shaders/hlsl/README.md @@ -1,18 +1,10 @@ ## HLSL Shaders -This directory contains a fork of the shaders found in [data/shaders/glsl](https://github.com/SaschaWillems/Vulkan/tree/master/data/shaders/glsl), re-written in HLSL. -These can be compiled with [DXC](https://github.com/microsoft/DirectXShaderCompiler) using the `compile.py` script. +This directory contains shaders using the [HLSL shading language](https://docs.vulkan.org/guide/latest/hlsl.html). These can be compiled with [DXC](https://github.com/microsoft/DirectXShaderCompiler) using e.g. the included `compile.py` script. ### Known issues -- specialization constants can't be used to specify array size. +- 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`, `particlesystem` 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 doesn't have inverse operation (`deferred`, `hdr`, `instancing`, `skeletalanimation` & `texturecubemap` examples), these should be done on the CPU - 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. \ No newline at end of file