Skip to content

Support compilation on Linux/MacOS with DirectXShaderCompiler for ID3D12ShaderReflection #156

@lukedan

Description

@lukedan

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions