[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