Expand description
The runtime data (RDAT) part of a library container: its subobjects (state object and pipeline configurations,
root signatures and their associations, hit groups), which a ray tracing pipeline is built from.
Layout (little-endian): a version (0x10) and a part count, then the offset of each part; a part is its type and byte
size, then its bytes. The parts read here are the string buffer (1; strings null-terminated, referenced by offset),
the index arrays (2; u32 words, an array being its count then its items, referenced by word index), the raw bytes
(5) and the subobject table (6: a record count, a record stride, then the records). A subobject record is its kind
and name (a string reference) then, by kind, its data:
| kind | data |
|---|---|
| 0 state object config | flags |
| 1, 2 global and local root signature | offset and size in the raw bytes |
| 8 association | subobject name (string), exports (index array of strings) |
| 9 shader config | max payload bytes, max attribute bytes |
| 10 pipeline config | max recursion depth |
| 11 hit group | type (0 triangles, 1 procedural), any-hit, closest-hit, intersection (strings) |
| 12 pipeline config 1 | max recursion depth, flags |
These are DXC’s definitions (DxilRuntimeReflection.h, RDAT_SubobjectTypes.inl, DXIL::SubobjectKind in
DxilConstants.h, DirectXShaderCompiler main as of 2026-10): kinds 3 to 7 are reserved there and refused here. A
record is the kind, the name and the data (a union: its fields start at the third word); the table’s stride is the
largest record’s.
A string reference of all ones, or to an empty string, is none. A library without a subobject table has no subobjects. Anything outside this (another version, a kind not listed, a reference outside its part) is refused.
Enums§
- Subobject
- A subobject record of the table, by its kind, with its stored numbers. A string reference that is none (all ones,
or an empty string) is
None.
Functions§
- export_
name - A function’s export name from its name in the module:
\u{1}?closest_hit@@YAXXZisclosest_hit. - subobjects
- The subobjects of the library
rdat(anRDATpart’s bytes).