Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions docs/DXIL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,10 @@ DXIL uses 32-bit pointers in its representation.
Out-of-bounds behavior
----------------------

Indexable thread-local accesses are done via LLVM pointer and have C-like OOB semantics.
Groupshared accesses are done via LLVM pointer too. The origin of a groupshared pointer must be a single TGSM allocation.
If a groupshared pointer uses in-bound GEP instruction, it should not OOB. The behavior for an OOB access for in-bound pointer is undefined.
For groupshared pointer from regular GEP, OOB will has same behavior as DXBC. Loads return 0 for OOB accesses; OOB stores are silently dropped.
Indexable thread-local accesses are done via LLVM pointers and have C-like OOB semantics.
Groupshared accesses are done via LLVM pointers too. The origin of a groupshared pointer must be a single TGSM allocation.
If a groupshared pointer uses an in-bound GEP instruction, it should not OOB. The behavior for an OOB access for in-bound pointer is undefined.
For a groupshared pointer from regular GEP, OOB will have the same behavior as DXBC. Loads return 0 for OOB accesses; OOB stores are silently dropped.

Resource accesses keeps the same out-of-bounds behavior as DXBC. Loads return 0 for OOB accesses; OOB stores are silently dropped.

Expand Down Expand Up @@ -3294,9 +3294,12 @@ Modules and Linking
===================

HLSL has linking capabilities to enable third-party libraries. The linking step happens before shader DXIL is given to the driver compilers.
Experimental library generation is added in DXIL1.1. A library could be created by compile with lib_6_1 profile.
A library is a dxil container like the compile result of other shader profiles. The difference is library will keep information for linking like resource link info and entry function signatures.
Library support is not part of DXIL spec. Only requirement is linked shader must be valid DXIL.
Experimental library generation is added in DXIL1.1. A library could be created
by compiling with the lib_6_1 profile.
A library is a dxil container like the compile result of other shader profiles.
The difference is a library will keep information for linking like resource link
info and entry function signatures.
Library support is not part of the DXIL spec. The only requirement is linked shader must be valid DXIL.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is this reflow intentional/helpful? I approve of 80-column but the rest of the doc doesn't do that (not even the first sentence of this paragraph...) and it seems odd to wrap at periods.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Do you mean wrap outside of periods? I don't mind sentences having their own lines to limit the sidescroll where relevant, but I think that since this is mostly consumed in plain text, it's better to not break up sentences.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Bah, that's from my editor config. I have it set to show me everything as 80 columns now, but I also hit the hotkey to format this after I edited it. Will restore the original formatting.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Hold on, I take that back. I edited this through the browser. I don't know how I goofed up that formatting. Will fix either way.



Additional Notes
Expand Down