Skip to main content

Module rdat

Module rdat 

Source
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:

kinddata
0 state object configflags
1, 2 global and local root signatureoffset and size in the raw bytes
8 associationsubobject name (string), exports (index array of strings)
9 shader configmax payload bytes, max attribute bytes
10 pipeline configmax recursion depth
11 hit grouptype (0 triangles, 1 procedural), any-hit, closest-hit, intersection (strings)
12 pipeline config 1max 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@@YAXXZ is closest_hit.
subobjects
The subobjects of the library rdat (an RDAT part’s bytes).