Loading...
Searching...
No Matches
VdfSMBLData Class Reference

VdfSMBLData holds per-output data that is meant to be consumed by the executor. More...

#include <smblData.h>

Public Member Functions

 VdfSMBLData (const VdfSMBLData &)=delete
 Noncopyable.
 
VdfSMBLDataoperator= (const VdfSMBLData &)=delete
 
 VdfSMBLData ()
 Constructs an SMBL data object.
 
Memoized mask computations
VdfMask InvalidateCacheMask (const VdfMask &cacheMask, const VdfMask &invalidationMask)
 Invalidates the executor cacheMask given an invalidationMask.
 
void ExtendLockedCacheMask (VdfMask *lockedCacheMask, const VdfMask &cacheMask)
 Extends the lockedCacheMask by appending the bits stored in the executor cacheMask.
 
void RemoveUncachedMask (VdfMask *lockedCacheMask, const VdfMask &cacheMask, const VdfMask &keepMask)
 Make sure that all the bits in the keepMask are provided by the cacheMask.
 
bool ComputeAffectiveness (const VdfMask &lockedCacheMask, const VdfMask &affectsMask)
 Computes the affectiveness of the corresponding output given the accumulated lockedCacheMask and the scheduled affectsMask of the output.
 
Local Cache
VdfVectorRetain (const VdfOutputSpec &spec, VdfVector *cache, const VdfMask &cacheMask)
 Locally retains the passed in cache with the given cacheMask.
 
void Release ()
 Releases the cache, which has been retained by this object, if any.
 
VDF_API void Clear ()
 Clear any of the data this object is holding on to.
 
VdfVectorGetCache () const
 Returns a pointer to the locally retained cache, if any.
 
const VdfMaskGetCacheMask () const
 Returns a mask indicating data available in the locally retained cache.
 
bool HasCache () const
 Returns true, if a cache has been retained locally, and false if there is no such cache.
 

Detailed Description

VdfSMBLData holds per-output data that is meant to be consumed by the executor.

This data is an optional part of VdfExecutorData and it is specific to sparse mung buffer locking.

Definition at line 30 of file smblData.h.

Constructor & Destructor Documentation

◆ VdfSMBLData() [1/2]

VdfSMBLData ( const VdfSMBLData )
delete

Noncopyable.

◆ VdfSMBLData() [2/2]

VdfSMBLData ( )
inline

Constructs an SMBL data object.

Definition at line 40 of file smblData.h.

Member Function Documentation

◆ Clear()

VDF_API void Clear ( )

Clear any of the data this object is holding on to.

◆ ComputeAffectiveness()

bool ComputeAffectiveness ( const VdfMask lockedCacheMask,
const VdfMask affectsMask 
)
inline

Computes the affectiveness of the corresponding output given the accumulated lockedCacheMask and the scheduled affectsMask of the output.

This is a memoized computation.

Definition at line 87 of file smblData.h.

◆ ExtendLockedCacheMask()

void ExtendLockedCacheMask ( VdfMask lockedCacheMask,
const VdfMask cacheMask 
)
inline

Extends the lockedCacheMask by appending the bits stored in the executor cacheMask.

This is a memoized computation.

Definition at line 65 of file smblData.h.

◆ GetCache()

VdfVector * GetCache ( ) const
inline

Returns a pointer to the locally retained cache, if any.

Definition at line 130 of file smblData.h.

◆ GetCacheMask()

const VdfMask & GetCacheMask ( ) const
inline

Returns a mask indicating data available in the locally retained cache.

Definition at line 136 of file smblData.h.

◆ HasCache()

bool HasCache ( ) const
inline

Returns true, if a cache has been retained locally, and false if there is no such cache.

Definition at line 143 of file smblData.h.

◆ InvalidateCacheMask()

VdfMask InvalidateCacheMask ( const VdfMask cacheMask,
const VdfMask invalidationMask 
)
inline

Invalidates the executor cacheMask given an invalidationMask.

Returns the cacheMask with the bits in the invalidationMask removed. This is a memoized computation.

Definition at line 240 of file smblData.h.

◆ Release()

void Release ( )
inline

Releases the cache, which has been retained by this object, if any.

Note, that this method does NOT release ownership of any of its heap allocated data! It merely demotes the retained cache to a free cache for future use.

Definition at line 117 of file smblData.h.

◆ RemoveUncachedMask()

void RemoveUncachedMask ( VdfMask lockedCacheMask,
const VdfMask cacheMask,
const VdfMask keepMask 
)
inline

Make sure that all the bits in the keepMask are provided by the cacheMask.

Any data bits that are not provided by the cacheMask should not be contained in the lockedCacheMask, so remove them from the lockedCacheMask. This makes it so that nodes, which must provide data to be kept at the output, do not become un-affective.

Definition at line 250 of file smblData.h.

◆ Retain()

VdfVector * Retain ( const VdfOutputSpec spec,
VdfVector cache,
const VdfMask cacheMask 
)
inline

Locally retains the passed in cache with the given cacheMask.

This method returns a pointer to a (new) cache, which the client is now free to use. Consequently, this method passes the ownership of the cache pointer to this object, while giving up the ownership of the returned vector. This is to avoid a copy of the underlying data.

Definition at line 268 of file smblData.h.


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