Kit Update Ordering values#

Todo:

Although it is good that these values are together, this is not the correct place for them. Many of the values are specific to Omniverse applications that consume Carbonite but are not based in Carbonite. They should likely be in a data-driven format such as a configuration file and instead referred to as names (i.e. using carb::RString) that can be mapped to a value, and/or documented somewhere central.

Enumerations#

int32_t omni::kit::update::IUsdStageEventOrdering

Ordering of USD Stage Update events during USD Context Update.

int32_t omni::kit::update::KitUsdStageEventOrdering

Ordering of events within a omni::kit::RunLoop::postUpdate event loop.

int32_t omni::kit::update::PostUpdateOrdering

Ordering of events within a omni::kit::RunLoop::postUpdate event loop.

int32_t omni::kit::update::PreUpdateOrdering

Ordering of events within a omni::kit::RunLoop::preUpdate event loop.

int32_t omni::kit::update::UpdateOrdering

Ordering of events within a omni::kit::RunLoop::update event loop.

Enumerations#

enum omni::kit::update::IUsdStageEventOrdering#

Ordering of USD Stage Update events during USD Context Update.

Values:

enumerator eIUsdStageUpdateAnimationGraph#

Hard-coded in separate non kit-sdk repro (gitlab)

enumerator eIUsdStageUpdatePinocchioPrePhysics#

Hard-coded in separate non kit-sdk repro (gitlab)

enumerator eIUsdStageUpdateTensorPrePhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdateForceFieldsPrePhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdatePhysicsVehicle#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdatePhysicsCCT#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdatePhysicsCameraPrePhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdatePhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdateFabricPostPhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdateVehiclePostPhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdateForceFieldsPostPhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdatePhysicsCameraPostPhysics#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdatePhysicsUI#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdatePinocchioPostPhysics#

Hard-coded in separate non kit-sdk repro (gitlab)

enumerator eIUsdStageUpdateOmnigraph#

Defined inside kit-sdk.

enumerator eIUsdStageUpdatePhysxFC#

Hard-coded in separate non kit-sdk repro (perforce)

enumerator eIUsdStageUpdateDebugDraw#

Defined inside kit-sdk.

enumerator eIUsdStageUpdateLast#

Must always be last when all prior StageUpdate events have been handled.

enum omni::kit::update::KitUsdStageEventOrdering#

Ordering of events within a omni::kit::RunLoop::postUpdate event loop.

Values:

enumerator eKitUsdFileStageEvent#

USD File Operation Stage Event.

enumerator eKitUnspecifiedUsdStageEventOrder#

Default File Stage event order.

enum omni::kit::update::PostUpdateOrdering#

Ordering of events within a omni::kit::RunLoop::postUpdate event loop.

Values:

enumerator eReleasePrevFrameGpuResources#

Release GPU resources held by previous frame.

enumerator ePythonAsyncFuturePostUpdate#

asyncio.Future blocked awaiting (post update loop).

  1. IApp.post_update_async (deprecates IApp.next_update_async).

enumerator ePythonExecPostUpdate#

Enables execution of all python blocked by ePythonAsyncFuturePostUpdate.

enumerator eUnspecifiedPostUpdateOrder#

Default post-update order value.

enumerator eKitAppFactoryUpdate#

Kit App Factory Update.

enumerator eKitAppOSUpdate#

Kit App OS Update.

enumerator eKitInternalUpdate#

Kit Internal Update.

enum omni::kit::update::PreUpdateOrdering#

Ordering of events within a omni::kit::RunLoop::preUpdate event loop.

Values:

enumerator eTelmetryInitialize#

Initialize Telemetry profiling. Typically the first item in a frame.

enumerator eFabricBeginFrame#

Initiate a Fabric frame.

enumerator eUnspecifiedPreUpdateOrder#

Default pre-update order value.

enum omni::kit::update::UpdateOrdering#

Ordering of events within a omni::kit::RunLoop::update event loop.

Values:

enumerator eCheckForHydraRenderComplete#

Checks for HydraEngine::render completion on GPU.

  1. Pushes StageRenderingEvent::NewFrame

  2. Triggers renderingEventStream::pump

enumerator eUsdTimelineStateRefresh#

Applies pending Timeline state changes.

enumerator ePythonAsyncFutureBeginUpdate#

asyncio.Future blocked awaiting (update loop begin)

  1. IApp.next_pre_update_async

  2. UsdContext.next_frame_async / next_usd_async

enumerator ePythonExecBeginUpdate#

Enables execution of all python blocked by ePythonAsyncFutureBeginUpdate.

Enable python execution blocked awaiting UsdContext::RenderingEventStream::Pump()

enumerator eOmniClientUpdate#

Run OmniClient after python but before main simulation.

enumerator eUsdTimelineUpdate#

ITimeline wants to execute before eUsdContextUpdate.

enumerator eUsdContextUpdate#

Core UsdUpdate execution.

  1. Update liveModeUpdate listeners

  2. triggers stageEventStream::pump

  3. MaterialWatcher::update

  4. IHydraEngine::setTime

  5. triggers IUsdStageUpdate::pump (see IUsdStageEventOrdering below)

  6. AudioManager::update

enumerator eUnspecifiedUpdateOrder#

Default update order value.

Note

extras::SettingWrapper is hardcoded to carb::events::kDefaultOrder which means this is when during the main update cycle, event listeners for settings changes events will fire. There are a minimum of 60+ unique setting subscription listeners in a default kit session.

enumerator eUIRendering#

Trigger UI/ImGui Drawing.

enumerator eFabricFlush#

Fabric Flush after eUsdContextUpdate.

enumerator eHydraRendering#

Triggers HydraEngine::render.

enumerator ePythonAsyncFutureEndUpdate#

asyncio.Future blocked awaiting (update loop end)

  1. IApp.next_update_async (legacy)

enumerator ePythonExecEndUpdate#

Enables execution of all python blocked by ePythonAsyncFutureEndUpdate and awaiting UsdContext::StageEventStream::Pump.