[PATCH] D130794: [Docs] Add HLSL ResourceType documentation
Chris Bieneman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 8 07:06:48 PDT 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rGfc470013d13f: [Docs] Add HLSL ResourceType documentation (authored by beanz).
Changed prior to commit:
https://reviews.llvm.org/D130794?vs=448699&id=450795#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D130794/new/
https://reviews.llvm.org/D130794
Files:
clang/docs/HLSL/HLSLDocs.rst
clang/docs/HLSL/HLSLSupport.rst
clang/docs/HLSL/ResourceTypes.rst
clang/docs/HLSLSupport.rst
clang/docs/index.rst
Index: clang/docs/index.rst
===================================================================
--- clang/docs/index.rst
+++ clang/docs/index.rst
@@ -46,7 +46,7 @@
OpenCLSupport
OpenMPSupport
SYCLSupport
- HLSLSupport
+ HLSL/HLSLDocs
ThinLTO
APINotes
DebuggingCoroutines
Index: clang/docs/HLSL/ResourceTypes.rst
===================================================================
--- /dev/null
+++ clang/docs/HLSL/ResourceTypes.rst
@@ -0,0 +1,34 @@
+============
+HLSL Support
+============
+
+.. contents::
+ :local:
+
+Introduction
+============
+
+HLSL Resources are runtime-bound data that is provided as input, output or both
+to shader programs written in HLSL. Resource Types in HLSL provide key user
+abstractions for reading and writing resource data.
+
+Implementation Details
+======================
+
+In Clang resource types are forward declared by the ``HLSLExternalSemaSource``
+on initialization. They are then lazily completed when ``requiresCompleteType``
+is called later in Sema.
+
+Resource types are templated class declarations. The template parameter
+specifies the expected return type of resource loads, and the expected parameter
+type for stores.
+
+In Clang's AST and code generation, resource types are classes that store a
+pointer of the template parameter type. The pointer is populated from a call to
+``__builtin_hlsl_create_handle``, and treated as a pointer to an array of typed
+data through until lowering in the backend.
+
+Resource types are annotated with the ``HLSLResource`` attribute, which drives
+code generation for resource binding metadata. The ``hlsl`` metadata nodes are
+transformed in the backend to the binding information expected by the target
+runtime.
Index: clang/docs/HLSL/HLSLDocs.rst
===================================================================
--- /dev/null
+++ clang/docs/HLSL/HLSLDocs.rst
@@ -0,0 +1,14 @@
+.. title:: Clang HLSL Documentation
+
+.. toctree::
+ :maxdepth: 1
+
+ HLSLSupport
+
+HLSL Design and Implementation
+==============================
+
+.. toctree::
+ :maxdepth: 1
+
+ ResourceTypes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D130794.450795.patch
Type: text/x-patch
Size: 2116 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220808/34e6149c/attachment.bin>
More information about the cfe-commits
mailing list