-
Notifications
You must be signed in to change notification settings - Fork 187
Description
While the rest of DirectX 12 isn't particularly useful on Linux/MacOS, having the ability to retrieve reflection information from DXIL (either compiled in the same application or loaded from the filesystem) would be immensely helpful. In fact, DXC already supports this use case (as documented in this issue: microsoft/DirectXShaderCompiler#6057), where it makes use of a specific commit of DirectX-Headers (980971e835876dc0cde415e8f9bc646e64667bf7). I've been able to reproduce @dafedidi's results by modifying wsl/stubs/rpcndr.h and adding #define interface struct before including d3d12shader.h, and it seems to produce the correct reflection data, at least for descriptor bindings.
What is the reason that DXC uses the particular commit instead of supporting the behavior in DirectX-Headers? Does it have anything to do with the data type discrepancies between Linux/MacOS and Windows (e.g. ULONG)? Does anyone foresee any issues with the current approach that DXC is using, and does it make sense to implement it in this repo? Or are there any plans to separate ID3D12ShaderReflection out and potentially making it a part of DXC?