[llvm-branch-commits] [llvm] [DirectX] Updating DXContainer documentation to add Root Descriptors (PR #129759)

Finn Plummer via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Mar 10 11:15:38 PDT 2025


================
@@ -497,3 +497,49 @@ signature and passed to the shader without requiring a constant buffer resource:
 #. **Num32BitValues**: The number of 32-bit values included in this constant buffer.
 
 Root constants provide a fast way to pass small amounts of data directly to the shader without the overhead of creating and binding a constant buffer resource.
+
+Root Descriptor
+~~~~~~~~~~~~~~~
+
+Root descriptors provide a direct mechanism for binding individual resources to shader stages in the Direct3D 12 
+rendering pipeline. They represent a critical interface for efficient resource management, allowing applications 
+to specify how shader stages access specific GPU resources.
+
+.. code-block:: cpp
+
+   enum RootDescriptorFlags {
+      None = 0,
+      DataVolatile = 0x2,
+      DataStaticWhileSetAtExecute = 0x4,
+      DataStatic = 0x8,
+   }
+
+   // Version 1.0 Root Descriptor
+   struct RootDescriptor_V1_0 {
+      uint32_t ShaderRegister;
+      uint32_t RegisterSpace;
+   };
+   
+   // Version 1.1 Root Descriptor
+   struct RootDescriptor_V1_1 {
+      uint32_t ShaderRegister;
+      uint32_t RegisterSpace;      
+      // Bitfield of flags from the Flags enum
+      uint32_t Flags;
+   };
+
+Version 1.1 of Root Descriptors has introduced some flags that can hint the drivers into
+performing further code optimizations. For details about it, check `Direct X documentation <https://learn.microsoft.com/en-us/windows/win32/direct3d12/root-signature-version-1-1#static-and-volatile-flags>`_.
----------------
inbelic wrote:

```suggestion
performing further code optimizations. For details, check
`Direct X documentation <https://learn.microsoft.com/en-us/windows/win32/direct3d12/root-signature-version-1-1#static-and-volatile-flags>`_.
```

https://github.com/llvm/llvm-project/pull/129759


More information about the llvm-branch-commits mailing list