Skip to content

[Docs] Document DXIL Container and RDAT formats#8631

Open
llvm-beanz wants to merge 1 commit into
microsoft:mainfrom
llvm-beanz:container-docs
Open

[Docs] Document DXIL Container and RDAT formats#8631
llvm-beanz wants to merge 1 commit into
microsoft:mainfrom
llvm-beanz:container-docs

Conversation

@llvm-beanz

Copy link
Copy Markdown
Collaborator

I've had these docs locally for a while and have reviewed and used them to help reason about and understand aspects of the binary formats that DXC generates.

These docs are generated almost entirely by LLMs during iterative chat discussions where I asked repeated clarifying quesitons.

I have found them sufficiently useful to keep them around, but thought they're probably worth sharing.

Assisted-by: Claude Opus 4.6-4.8

I've had these docs locally for a while and have reviewed and used them
to help reason about and understand aspects of the binary formats that
DXC generates.

These docs are generated almost entirely by LLMs during iterative chat
discussions where I asked repeated clarifying quesitons.

I have found them sufficiently useful to keep them around, but thought
they're probably worth sharing.

Assisted-by: Claude Opus 4.6-4.8

@damyanp damyanp left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment on lines +79 to +96
```
+---------------------------------------------------------------+
| DxilContainerHeader |
| uint32_t HeaderFourCC = 'DXBC' |
| DxilContainerHash Hash (16 bytes) |
| DxilContainerVersion Version { uint16 Major, Minor } |
| uint32_t ContainerSizeInBytes |
| uint32_t PartCount |
+---------------------------------------------------------------+
| uint32_t PartOffset[PartCount] (absolute, from container start) |
+---------------------------------------------------------------+
| Part 0: DxilPartHeader { uint32 PartFourCC, uint32 PartSize }|
| uint8_t PartData[PartSize] |
+---------------------------------------------------------------+
| Part 1: DxilPartHeader ... |
| ... |
+---------------------------------------------------------------+
```

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'd be nice if these lined up.

Suggested change
```
+---------------------------------------------------------------+
| DxilContainerHeader |
| uint32_t HeaderFourCC = 'DXBC' |
| DxilContainerHash Hash (16 bytes) |
| DxilContainerVersion Version { uint16 Major, Minor } |
| uint32_t ContainerSizeInBytes |
| uint32_t PartCount |
+---------------------------------------------------------------+
| uint32_t PartOffset[PartCount] (absolute, from container start) |
+---------------------------------------------------------------+
| Part 0: DxilPartHeader { uint32 PartFourCC, uint32 PartSize }|
| uint8_t PartData[PartSize] |
+---------------------------------------------------------------+
| Part 1: DxilPartHeader ... |
| ... |
+---------------------------------------------------------------+
```

+-------------------------------------------------------------------+
| DxilContainerHeader |
| uint32_t HeaderFourCC = 'DXBC' |
| DxilContainerHash Hash (16 bytes) |
| DxilContainerVersion Version { uint16 Major, Minor } |
| uint32_t ContainerSizeInBytes |
| uint32_t PartCount |
+-------------------------------------------------------------------+
| uint32_t PartOffset[PartCount] (absolute, from container start) |
+-------------------------------------------------------------------+
| Part 0: DxilPartHeader { uint32 PartFourCC, uint32 PartSize } |
| uint8_t PartData[PartSize] |
+-------------------------------------------------------------------+
| Part 1: DxilPartHeader ... |
| ... |
+-------------------------------------------------------------------+

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

2 participants