================ @@ -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 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits