XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALBindlessResourceTable Class Reference

#include <BindlessResourceTable.h>

Static Public Member Functions

static xiiResult Configure (const xiiGALBindlessResourceTableDescription &description)
static const xiiGALBindlessResourceTableDescription & GetConfiguration ()
static bool IsInitialized ()
static void Clear ()
static xiiGALBindlessResourceHandle RegisterBufferSRV (xiiSharedPtr< xiiGALBufferView > pView)
static xiiGALBindlessResourceHandle RegisterBufferUAV (xiiSharedPtr< xiiGALBufferView > pView)
static xiiGALBindlessResourceHandle RegisterTextureSRV (xiiSharedPtr< xiiGALTextureView > pView)
static xiiGALBindlessResourceHandle RegisterTextureUAV (xiiSharedPtr< xiiGALTextureView > pView)
static xiiGALBindlessResourceHandle RegisterSampler (xiiSharedPtr< xiiGALSampler > pSampler)
static bool UpdateBufferSRV (xiiGALBindlessResourceHandle handle, xiiSharedPtr< xiiGALBufferView > pView)
static bool UpdateBufferUAV (xiiGALBindlessResourceHandle handle, xiiSharedPtr< xiiGALBufferView > pView)
static bool UpdateTextureSRV (xiiGALBindlessResourceHandle handle, xiiSharedPtr< xiiGALTextureView > pView)
static bool UpdateTextureUAV (xiiGALBindlessResourceHandle handle, xiiSharedPtr< xiiGALTextureView > pView)
static bool UpdateSampler (xiiGALBindlessResourceHandle handle, xiiSharedPtr< xiiGALSampler > pSampler)
static bool RetireBufferSRV (xiiGALBindlessResourceHandle handle, xiiUInt64 uiLastUseFenceValue)
static bool RetireBufferUAV (xiiGALBindlessResourceHandle handle, xiiUInt64 uiLastUseFenceValue)
static bool RetireTextureSRV (xiiGALBindlessResourceHandle handle, xiiUInt64 uiLastUseFenceValue)
static bool RetireTextureUAV (xiiGALBindlessResourceHandle handle, xiiUInt64 uiLastUseFenceValue)
static bool RetireSampler (xiiGALBindlessResourceHandle handle, xiiUInt64 uiLastUseFenceValue)
static void Collect (xiiUInt64 uiCompletedFenceValue)
static void BindBufferSRVs (xiiGALCommandList &commandList, const xiiTempHashedString &sResourceName, xiiBitflags< xiiGALShaderType > stages=xiiGALShaderType::Unknown)
static void BindBufferUAVs (xiiGALCommandList &commandList, const xiiTempHashedString &sResourceName, xiiBitflags< xiiGALShaderType > stages=xiiGALShaderType::Unknown)
static void BindTextureSRVs (xiiGALCommandList &commandList, const xiiTempHashedString &sResourceName, xiiBitflags< xiiGALShaderType > stages=xiiGALShaderType::Unknown)
static void BindTextureUAVs (xiiGALCommandList &commandList, const xiiTempHashedString &sResourceName, xiiBitflags< xiiGALShaderType > stages=xiiGALShaderType::Unknown)
static void BindSamplers (xiiGALCommandList &commandList, const xiiTempHashedString &sResourceName, xiiBitflags< xiiGALShaderType > stages=xiiGALShaderType::Unknown)
static xiiGALBindlessResourceTableStats GetStats ()

Detailed Description

Backend-independent owner for sparse bindless descriptor tables.

Resources remain strongly referenced after Retire() until Collect() observes the last-use fence. The descriptor and its stable index therefore cannot alias while an older command list is still executing. A table can be rebound to every command list because only occupied slots are emitted by descriptor-indexing backends.

Member Function Documentation

◆ Configure()

xiiResult xiiGALBindlessResourceTable::Configure ( const xiiGALBindlessResourceTableDescription & description)
staticnodiscard

Rebuilds empty descriptor tables with a new capacity policy. Reconfiguration is rejected while live or retired handles still occupy slots.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsFoundation/Resources/BindlessResourceTable.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsFoundation/Resources/Implementation/BindlessResourceTable.cpp