XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALBottomLevelAS Class Referenceabstract

Interface that defines methods to manipulate a bottom level acceleration structure (BLAS) object. More...

#include <BottomLevelAS.h>

Inheritance diagram for xiiGALBottomLevelAS:
[legend]

Public Member Functions

XII_ALWAYS_INLINE const xiiGALBottomLevelASCreationDescription & GetDescription () const
 This returns the creation description for this object.
XII_ALWAYS_INLINE bool IsBuilt () const
 Returns whether a build or copy command has initialized this acceleration structure.
XII_ALWAYS_INLINE xiiUInt32 GetLastBuildPrimitiveCount (xiiUInt32 uiGeometryIndex) const
 Returns the primitive count used by the most recent build for a geometry.
xiiUInt32 GetGeometryDescriptionIndex (xiiStringView sName) const
xiiUInt32 GetGeometryIndex (xiiStringView sName) const
xiiUInt32 GetActualGeometryCount () const
const xiiGALScratchBufferSizeDescription & GetScratchBufferSizeDescription () const
virtual xiiUInt64 GetDeviceAddress () const =0
 Returns the backend GPU virtual/device address used by TLAS instance records.
Public Member Functions inherited from xiiGALResource
virtual void SetResourceState (xiiBitflags< xiiGALResourceStateFlags > stateFlags)
virtual XII_ALWAYS_INLINE xiiBitflags< xiiGALResourceStateFlags > GetResourceState () const
 This returns the buffer state.
XII_ALWAYS_INLINE bool IsInKnownState () const
 This returns true if the resource is in known state by the engine.
XII_ALWAYS_INLINE bool CheckState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const
 This returns true if the given resource state is set.
XII_ALWAYS_INLINE bool CheckAnyState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const
 This returns true if any of the given resource state are set.
Public Member Functions inherited from xiiGALDeviceObject
XII_ALWAYS_INLINE xiiSharedPtr< xiiGALDevice > GetDevice () const
Public Member Functions inherited from xiiGALObject
XII_ALWAYS_INLINE xiiStringView GetDebugName () const
 Returns the debug name of this resource.
void SetDebugName (xiiStringView sDebugName) const
 Sets the debug name for this resource.
Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
Public Member Functions inherited from xiiRefCounted
virtual ~xiiRefCounted ()=default
 Adds a virtual destructor.
Public Member Functions inherited from xiiRefCountingImpl
 xiiRefCountingImpl ()=default
 Constructor.
 xiiRefCountingImpl (const xiiRefCountingImpl &rhs)
void operator= (const xiiRefCountingImpl &rhs)
xiiUInt32 AddRef () const
 Increments the reference counter. Returns the new reference count.
bool TryAddRef () const
xiiUInt32 ReleaseRef () const
 Decrements the reference counter. Returns the new reference count.ywat.
bool IsReferenced () const
 Returns true if the reference count is greater than 0, false otherwise.
xiiUInt32 GetRefCount () const
 Returns the current reference count.

Protected Member Functions

 xiiGALBottomLevelAS (xiiSharedPtr< xiiGALDevice > pDevice, const xiiGALBottomLevelASCreationDescription &creationDescription)
virtual xiiResult InitPlatform ()=0
void SetLastBuildPrimitiveCounts (xiiArrayPtr< const xiiUInt32 > primitiveCounts)
Protected Member Functions inherited from xiiGALResource
 xiiGALResource (xiiSharedPtr< xiiGALDevice > pDevice)
Protected Member Functions inherited from xiiGALDeviceObject
 xiiGALDeviceObject (xiiSharedPtr< xiiGALDevice > pDevice)
 Copyright (c) Theophilus Eriata. All Rights Reserved.
Protected Member Functions inherited from xiiGALObject
 xiiGALObject ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.
virtual XII_ALWAYS_INLINE void SetDebugNamePlatform (xiiStringView sName) const

Protected Attributes

xiiGALBottomLevelASCreationDescription m_Description
xiiGALScratchBufferSizeDescription m_ScratchBufferSizeDescription
xiiHashTable< xiiStringView, xiiUInt32 > m_NameToIndex
xiiDynamicArray< xiiUInt32 > m_LastBuildPrimitiveCounts
Protected Attributes inherited from xiiGALResource
xiiBitflags< xiiGALResourceStateFlags > m_ResourceState
Protected Attributes inherited from xiiGALDeviceObject
xiiSharedPtr< xiiGALDevice > m_pDevice

Friends

class xiiGALCommandList
class xiiGALDevice
class xiiMemoryUtils

Additional Inherited Members

Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

Detailed Description

Interface that defines methods to manipulate a bottom level acceleration structure (BLAS) object.

Member Function Documentation

◆ GetActualGeometryCount()

xiiUInt32 xiiGALBottomLevelAS::GetActualGeometryCount ( ) const
nodiscard

This returns the geometry count that was used to build the acceleration structure.

Returns
The number of geometries that was used to build the acceleration structure.
Note
Access to the BLAS must be externally synchronized.

◆ GetDeviceAddress()

virtual xiiUInt64 xiiGALBottomLevelAS::GetDeviceAddress ( ) const
nodiscardpure virtual

Returns the backend GPU virtual/device address used by TLAS instance records.

Implemented in xiiGALBottomLevelASD3D12, and xiiGALBottomLevelASVulkan.

◆ GetGeometryDescriptionIndex()

xiiUInt32 xiiGALBottomLevelAS::GetGeometryDescriptionIndex ( xiiStringView sName) const
nodiscard

This returns the geometry description index in the BLAS triangle or axis-aligned bounding box descriptions.

Parameters
sName- The geometry name that is specified in the BLAS triangle or axis-aligned bounding box descriptions.
Returns
The geometry the index or xiiInvalidIndex if the geometry does not exist.
Note
Access to the BLAS must be externally synchronized.

◆ GetGeometryIndex()

xiiUInt32 xiiGALBottomLevelAS::GetGeometryIndex ( xiiStringView sName) const
nodiscard

This returns the geometry index that can be used in a shader binding table.

Parameters
sName- The geometry name that is specified in the BLAS triangle or axis-aligned bounding box descriptions.
Returns
The geometry index or xiiInvalidIndex if the geometry does not exist.
Note
Access to the BLAS must be externally synchronized.

◆ GetScratchBufferSizeDescription()

const xiiGALScratchBufferSizeDescription & xiiGALBottomLevelAS::GetScratchBufferSizeDescription ( ) const
nodiscard

This returns the scratch buffer information for the current acceleration structure.

Returns
The scratch buffer size description, see xiiGALScratchBufferSizeDescription.

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