LLVM 22.0.0git
llvm::hlsl::BindingInfo Class Reference

BindingInfo represents the ranges of bindings and free space for each dxil::ResourceClass. More...

#include "llvm/Frontend/HLSL/HLSLBinding.h"

Classes

struct  BindingRange
struct  BindingSpaces
struct  RegisterSpace

Public Member Functions

BindingSpacesgetBindingSpaces (dxil::ResourceClass RC)
const BindingSpacesgetBindingSpaces (dxil::ResourceClass RC) const
LLVM_ABI std::optional< uint32_tfindAvailableBinding (dxil::ResourceClass RC, uint32_t Space, int32_t Size)

Friends

class BindingInfoBuilder

Detailed Description

BindingInfo represents the ranges of bindings and free space for each dxil::ResourceClass.

This can represent HLSL-level bindings as well as bindings described in root signatures, and can be used for analysis of overlapping or missing bindings as well as for finding space for implicit bindings.

As an example, given these resource bindings:

RWBuffer<float> A[10] : register(u3); RWBuffer<float> B[] : register(u5, space2)

The binding info for UAV bindings should look like this:

UAVSpaces { ResClass = ResourceClass::UAV, Spaces = { { Space = 0u, FreeRanges = {{ 0u, 2u }, { 13u, ~0u }} }, { Space = 2u, FreeRanges = {{ 0u, 4u }} } } }

Definition at line 46 of file HLSLBinding.h.

Member Function Documentation

◆ findAvailableBinding()

std::optional< uint32_t > BindingInfo::findAvailableBinding ( dxil::ResourceClass RC,
uint32_t Space,
int32_t Size )

◆ getBindingSpaces() [1/2]

BindingSpaces & llvm::hlsl::BindingInfo::getBindingSpaces ( dxil::ResourceClass RC)
inline

◆ getBindingSpaces() [2/2]

const BindingSpaces & llvm::hlsl::BindingInfo::getBindingSpaces ( dxil::ResourceClass RC) const
inline

Definition at line 92 of file HLSLBinding.h.

References getBindingSpaces().

◆ BindingInfoBuilder

friend class BindingInfoBuilder
friend

Definition at line 100 of file HLSLBinding.h.

References BindingInfoBuilder.

Referenced by BindingInfoBuilder.


The documentation for this class was generated from the following files: