class Enlighten MultithreadCpuWorker

This is the documentation for Enlighten.

class Enlighten MultithreadCpuWorker

class Enlighten::MultithreadCpuWorker

    └>Enlighten::MultithreadCpuWorkerCommon
        └>Enlighten::CpuWorker
            └>Enlighten::BaseWorker
                └>Enlighten::IUpdateManagerWorker

Worker for the mulithreaded CPU update manager.

Functions

Name

Description

Name

Description

AddCubeMap(BaseCubeMap *const &)

Add a cube map to the worker.

AddCubeMap(BaseCubeMap *const &)

Add a cube map to the worker.

AddCubeMap(BaseCubeMap *const &)

Add a cube map to the worker.

AddDynamicObject(BaseDynamicObject *const &)

Add a dynamic object to the worker.

AddDynamicObject(BaseDynamicObject *const &)

Add a dynamic object to the worker.

AddProbeSet(BaseProbeSet *const &)

Add a probe set to the worker.

AddProbeSet(BaseProbeSet *const &)

Add a probe set to the worker.

AddProbeSet(BaseProbeSet *const &)

Add a probe set to the worker.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AllocateVisibilityData(Geo::s32, Enlighten::eLightType)

Allocates/Frees memory for visibility data.

AllocateVisibilityData(Geo::s32, Enlighten::eLightType)

Allocates/Frees memory for visibility data.

BaseWorker(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, PrecisionHint::Value, bool, bool, EnlightenProfile *)

Base class constructor.

Clear()

Remove all objects from the worker, and free memory allocated by the worker.

Clear()

Remove all objects from the worker, and free memory allocated by the worker.

Clear()

Remove all objects from the worker, and free memory allocated by the worker.

ClearCubeMapVolumeTransparency(Geo::GeoGuid const &)

Clears the cube map volume transparency.

ClearCubeMapVolumeTransparency(Geo::GeoGuid const &)

Clears the cube map volume transparency.

ClearSystemVolumeTransparency(Geo::GeoGuid const &)

Clears the system volume transparency.

ClearSystemVolumeTransparency(Geo::GeoGuid const &)

Clears the system volume transparency.

ClearSystemVolumeTransparency(Geo::GeoGuid const &)

Clears the system volume transparency.

ComputeDirectionalVisibility(CpuSystem *)

Compute directional light visibility for the given system.

CopyAlbedoBuffer(CopyAlbedoBufferInfo const &)

Allocate and make a copy of an albedo buffer.

CopyAlbedoBuffer(CopyAlbedoBufferInfo const &)

Allocate and make a copy of an albedo buffer.

CopyBounceBuffer(CopyBounceBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyBounceBuffer(CopyBounceBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveBuffer(CopyEmissiveBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveBuffer(CopyEmissiveBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveEnvironment(CopyEmissiveEnvironmentInfo const &)

Allocate and make a copy of an emissive environment.

CopyEmissiveEnvironment(CopyEmissiveEnvironmentInfo const &)

Allocate and make a copy of an emissive environment.

CopyGeometryTransparencyBuffer(CopyTransparencyBufferInfo const &)

Copies the geometry transparency buffer.

CopyGeometryTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a geoemtry transparency buffer.

CopyGeometryTransparencyBuffer(CopyTransparencyBufferInfo const &)

Copies the geometry transparency buffer.

CopyInputLightingBuffer(CopyInputLightingBufferInfo const &)

Allocate and make a copy of an input lighting buffer.

CopyInputLightingBuffer(CopyInputLightingBufferInfo const &)

Allocate and make a copy of an input lighting buffer.

CopyLightsToSolverArray()

Convert UpdateManagerLights to Enlighten::InputLights in preparation for Enlighten work.

CopyLightsToSolverArray()

Convert UpdateManagerLights to Enlighten::InputLights in preparation for Enlighten work.

CopyMaterialTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a material transparency buffer.

CopyMaterialTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a material transparency buffer.

CopyProbeOutput(CopyProbeOutputInfo const &)

Allocate and make a copy of Enlighten probe set output.

CopyProbeOutput(CopyProbeOutputInfo const &)

Allocate and make a copy of Enlighten probe set output.

CopyRawOutput(CopyRawOutputInfo const &)

Allocate and make a copy of raw Enlighten texture output.

CopyRawOutput(CopyRawOutputInfo const &)

Allocate and make a copy of raw Enlighten texture output.

CopyVisibilityBuffer(CopyVisibilityBufferInfo const &)

Allocate and make a copy of a visibility data block.

CopyVisibilityBuffer(CopyVisibilityBufferInfo const &)

Allocate and make a copy of a visibility data block.

CpuWorker(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, PrecisionHint::Value, bool, bool, EnlightenProfile *, Command *)

Constructor, taking properties which are fixed at creation time.

DecrementUpdateCounters()

Decrements the update counters for all systems, probe sets, cube maps and light banks.

DestroyAllWorkerObjects()

Release all the objects this worker constructed.

DoBounceSolverTask(Enlighten::SolveBounceTask, void *, Geo::u32 &, Geo::u32 &, CpuSystem *)

Call the bounce solver and trigger feedback updates if required.

DoCubeMapSolve(BaseCubeMap *, WorkerThreadData *)

Do the solve task for a cube map using the working memory of the given thread index.

DoCubeMapSolve(BaseCubeMap *, WorkerThreadData *)

Do the solve task for a cube map using the working memory of the given thread index.

DoDynamicObjectInterpolation(BaseDynamicObject *)

Do the interpolation for a single dynamic object, to allow multithreading.

DoDynamicObjectUpdate()

Runs the probe interpolation tasks for all dynamic objects, non-multithreaded.

DoEnvironmentUpdate()

Copies the environment values from the application-settable copy to the internal copy.

DoNextTask(Geo::s32)

Do the next task on the queue using the working memory of the given thread index.

DoSystemInputLighting(BaseSystem *, WorkerThreadData *)

Do the input lighting task for a system using the working memory of the given thread index.

DoSystemInputLighting(BaseSystem *, WorkerThreadData *)

Do the input lighting task for a system using the working memory of the given thread index.

DoSystemSolutionSpaceFreeze(CpuSystemSolutionSpace *, Enlighten::InputLightingBuffer *, CpuSystem *, WorkerThreadData *, Geo::u32 &, bool)

Do a freeze of the solution space data.

DoSystemSolutionSpaceSolve(CpuSystem *, CpuSystemSolutionSpace *, void *, const Enlighten::InputLightingBuffer *, float, bool, bool, Geo::u32 &, Geo::u32 &)

Do a solve of a particular system solution space for a given system and update bounce buffers.

EnqueueCommand(CommandType &&)

Enqueues a command for later execution by the worker thread, if it is running.

EnqueueQuitCommand()

Tell the update thread to quit.

EnqueueRadiosityUpdate()

Enqueue a radiosity update on the worker thread.

EnsureSolverLightBufferSize()

Ensure the solver light buffer is large enough to store all the lights.

EnsureSolverLightBufferSize()

Ensure the solver light buffer is large enough to store all the lights.

ExcludesEnvironmentInPrimaryBounce()

Have we requested to solve the environment in secondary bounce only. (ie skip primary bounce)

ExcludesEnvironmentInPrimaryBounce()

Returns the value of the worker property m_ExcludeEnvrionmentInPrimaryBounce.

ExecuteCommands()

Executes and destroys commands in the command ring buffer until the buffer is empty.

FindObject(const Geo::GeoGuid &, ObjectType *&)

Finds the object with the given GUID.

FindObject(ObjectType *, ObjectType *&)

Finds the object with the given address.

FindObject(const Geo::GeoGuid &, BaseSystem *&)

Finds the object with the given GUID.

FindObject(const Geo::GeoGuid &, BaseProbeSet *&)

Finds the object with the given GUID.

FindObject(const Geo::GeoGuid &, CpuSystem *&)

Specialise the BaseWorker::FindObject to deal with a concrete type here.

FindObject(const Geo::GeoGuid &, BaseDynamicObject *&)

Finds the object with the given GUID.

FindObject(const Geo::GeoGuid &, BaseCubeMap *&)

Finds the object with the given GUID.

FreeVisibilityData(Geo::s32, bool)

Allocates/Frees memory for visibility data.

GetInputLightingPrecisionHint()

Gets the precision hint for the input lighting buffer,.

GetLightMethodSelector()

Gets the light method selector.

GetLightMethodSelector()

Gets the light method selector.

GetSizeOfProbeInputWorkspaceMemory()

Get the total size of probe set output workspaces.

GetSizeOfProbeInputWorkspaceMemory()

Get the total size of probe set output workspaces.

GetSizeOfProbeOutputWorkspaceMemory()

Get the total size of probe set input workspaces.

GetSizeOfProbeOutputWorkspaceMemory()

Get the total size of probe set input workspaces.

GetSizeOfWorkingMemory()

Get the size of the working memory required for solving.

GetSizeOfWorkingMemory()

Get the size of the working memory required for solving.

GetSizeOfWorkingMemory()

Get the size of the working memory required for solving.

GetSystemArray()

Returns the array of systems. Used by the GeoMaya plug in to work out when to trigger refreshes.

InitThreadGroup()

One-time thread group initialisation.

IsCommandThreadSafe()

Returns true if called on the worker thread, or if no worker thread is running.

IsCommandThreadSafe()

Returns true if called on the worker thread, or if no worker thread is running.

IsEnvOnlyUpdateRequired(CpuSystemSolutionSpace *, bool, const Enlighten::InputLightingBuffer *)

Returns true if the EnvOnly feature is enabled and an update is required.

IsUpdateLimited()

Are we at the limit of the number of allowed enqueued updates, and therefore the update rate is throttled?

IsUpdateLimited()

Are we at the limit of the number of allowed enqueued updates, and therefore the update rate is throttled?

IsWorkerThreadRunning()

Whether the worker thread is currently running.

IsWorkerThreadRunning()

Returns true if a separate worker thread is currently running, false if not.

LogProfiling(const ObjectType *, F)

Log stats with the profiler using an enclosure.

MultithreadCpuWorker(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, PrecisionHint::Value, bool, bool, EnlightenProfile *, Command *, IThreadGroup *, ILimiter *, Geo::u64)

Constructor.

MultithreadCpuWorkerCommon(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, PrecisionHint::Value, bool, bool, EnlightenProfile *, Command *, IThreadGroup *, ILimiter *, Geo::u64)

Constructor.

ProbeSetManagerSetMaxWeightForProbeSet(Geo::GeoGuid const &, float)

Set max interpolation weight for a given probe set.

ProbeSetManagerSetMaxWeightForProbeSet(Geo::GeoGuid const &, float)

Set max interpolation weight for a given probe set.

PushMultipleObjectsToDestroy(Geo::IGeoReleasable *const *, Geo::s32)

Push a list of objects which has been removed from the worker on to a list to be destroyed by the rendering thread.

PushObjectToDestroy(Geo::IGeoReleasable *)

Push an object which has been removed from the worker on to a list to be destroyed by the rendering thread.

ReadInputLightingBuffer(ReadInputLightingBufferInfo const &)

These functions are provided for debugging/visualisation purposes.

ReadInputLightingBuffer(ReadInputLightingBufferInfo const &)

These functions are provided for debugging/visualisation purposes.

RecreateInterpolationInputList()

Updates the probe interpolation inputs, if required.

ReleaseSystemSolutionSpaces(ReleaseSystemSolutionSpacesInfo const &)

Release system solution spaces.

ReleaseSystemSolutionSpaces(ReleaseSystemSolutionSpacesInfo const &)

Release the solution spaces.

RemoveAllLights()

Remove all lights.

RemoveAllLights()

Remove all lights.

RemoveCubeMap(RemoveInfo const &)

Remove a cube map from the worker (either completely or partially)

RemoveCubeMap(RemoveInfo const &)

Remove a cube map from the worker (either completely or partially)

RemoveCubeMap(RemoveInfo const &)

Remove a cube map from the worker (either completely or partially)

RemoveDirectionalLight(Geo::GeoGuid)

Removes a light with the given GUID from the list of directional lights (if one is found), and frees the associated memory.

RemoveDynamicObject(RemoveInfo const &)

Remove a dynamic object from the worker.

RemoveDynamicObject(RemoveInfo const &)

Remove a dynamic object from the worker.

RemoveDynamicObject(RemoveInfo const &)

Remove a dynamic object from the worker.

RemoveEmissiveEnvironment(Geo::GeoGuid const &)

Remove the environment with the given id.

RemoveEmissiveEnvironment(Geo::GeoGuid const &)

Remove the environment with the given id.

RemoveLight(Geo::GeoGuid const &)

Remove the light with the given id.

RemoveLight(Geo::GeoGuid const &)

Remove the light with the given id.

RemoveLightBank(Geo::s32 const &)

Remove a light bank.

RemoveLightBank(Geo::s32 const &)

Remove a light bank.

RemoveLightWithoutVisibility(Geo::GeoGuid)

Removes a light with the given GUID from the list of lights without visibility (if one is found), and frees the associated memory.

RemoveLightWithVisibility(Geo::GeoGuid)

Removes a light with the given GUID from the list of lights with visibility (if one is found), and frees the associated memory.

RemoveProbeSet(RemoveInfo const &)

Remove a probe set from the worker (either completely or partially)

RemoveProbeSet(RemoveInfo const &)

Remove a probe set from the worker (either completely or partially)

RemoveProbeSet(RemoveInfo const &)

Remove a probe set from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystemFromDependencyLists(BaseSystem *)

Removes the given system from all cached dependency lists.

RemoveSystemSolutionSpaces(Geo::GeoGuid const &)

Removes the solution spaces from the system. This function will not release the solution spaces.

RemoveSystemSolutionSpaces(Geo::GeoGuid const &)

Removes the solution spaces from the system. This function will not release the solution spaces.

ReRegisterObjectsWithProfiler()

Re-register all objects with the profiler.

RunWorkerThread()

Start the worker thread if it is not already running.

RunWorkerThread()