Skip to main content

Module disasm

Module disasm 

Source
Expand description

A disassembler of DXIL programs: the listing dxc -dumpbin (dxc 1.9.2609) prints of a container, byte for byte.

The listing is dxc’s comment header (dxcdisassembler.cpp: the feature flags, the signature parts, the debug name and hash, the pipeline state validation runtime info, and from the program’s metadata its signatures, buffer layouts, resource bindings, view-id state and a library’s subobjects), then the program’s module as LLVM 3.7 prints it, with dxc’s comment after each call of a DXIL operation. What the reader can’t read is an error, never a listing that differs from dxc’s.

let container = std::fs::read("shader.dxil").expect("a compiled shader");
print!("{}", dxil_reader::disasm::disassemble(&container)?);

Functions§

disassemble
The listing dxc -dumpbin prints of a DXBC container holding a DXIL program, to the newline it ends with.
module_text
The module part of the listing: from target datalayout on, the program’s IR as dxc prints it.