HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VdfSMBLData Class Reference

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. More...

#include <smblData.h>

Public Member Functions

 VdfSMBLData (const VdfSMBLData &)=delete
 
VdfSMBLDataoperator= (const VdfSMBLData &)=delete
 
 VdfSMBLData ()
 
VDF_API ~VdfSMBLData ()
 
Memoized mask computations
VdfMask InvalidateCacheMask (const VdfMask &cacheMask, const VdfMask &invalidationMask)
 
void ExtendLockedCacheMask (VdfMask *lockedCacheMask, const VdfMask &cacheMask)
 
void RemoveUncachedMask (VdfMask *lockedCacheMask, const VdfMask &cacheMask, const VdfMask &keepMask)
 
bool ComputeAffectiveness (const VdfMask &lockedCacheMask, const VdfMask &affectsMask)
 
Local Cache
VdfVectorRetain (const VdfOutputSpec &spec, VdfVector *cache, const VdfMask &cacheMask)
 
void Release ()
 
VDF_API void Clear ()
 
VdfVectorGetCache () const
 
const VdfMaskGetCacheMask () const
 
bool HasCache () const
 

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::VdfSMBLData ( const VdfSMBLData )
delete

Noncopyable.

VdfSMBLData::VdfSMBLData ( )
inline

Constructs an SMBL data object.

Definition at line 40 of file smblData.h.

VDF_API VdfSMBLData::~VdfSMBLData ( )

Member Function Documentation

VDF_API void VdfSMBLData::Clear ( )

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

bool VdfSMBLData::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.

void VdfSMBLData::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.

VdfVector* VdfSMBLData::GetCache ( ) const
inline

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

Definition at line 130 of file smblData.h.

const VdfMask& VdfSMBLData::GetCacheMask ( ) const
inline

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

Definition at line 136 of file smblData.h.

bool VdfSMBLData::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.

VdfMask VdfSMBLData::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.

VdfSMBLData& VdfSMBLData::operator= ( const VdfSMBLData )
delete
void VdfSMBLData::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.

void VdfSMBLData::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.

VdfVector * VdfSMBLData::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: