Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.9.4] - 2024-02-02

Changed

  • Fix a deadlock that can occur during combined parallel-recursive on-demand execution that’s invoked via ExecutionController::executeDefinition.

  • Fixed some comment formatting.

[0.9.3] - 2024-01-31

Added

  • An IScheduleFunction interface implementation to the ScheduleFunction.h header to help reduce code duplication (the interface was being implemented in multiple different spots using the same code).

Changed

  • Inlined IExecutor method to use the new ScheduleFunction implementation.

[0.9.2] - 2024-01-17

Changed

  • Logging level for TestProfiling to reduce the amount of unnecessary console output when running the unit tests.

[0.9.1] - 2023-12-08

Added

  • Disambiguation logic for accessing the getUseCount method from objects that implement multiple different interfaces that derive from omni::graph::exec::unstable::IBase.

  • Unit test to validate that the method is now accessible for such objects.

[0.9.0] - 2023-11-30

Added

  • Extra code coverage for EF.

Changed

  • Miscellaneous refactorings and clean-up in the EF core.

[0.8.1] - 2023-11-15

Changed

  • ExecutionContext::applyOnEach can now be applied to the top-level execution graph’s NodeGraphDef.

[0.8.0] - 2023-11-09

Changed

  • ExecutionContext now returns an eSuccess status if executeNode is called on a node without an associated definition.

  • The templated Executor implementation of IExecutor that comes with EF will return early with an eSuccess status if the root task that’s being processed in the top-level/”main” execute() method has no children.

Added

  • A specialized ExecutorSingleNode that’s used exclusively by ExecutionContext::executeNode to ensure that the temporary executor doesn’t needlessly continue traversing the graph, scheduling work, etc. once the targeted node has been evaluated.

  • Unit tests to validate the aforementioned changes.

[0.7.1] - 2023-10-16

Changed

  • Updated documentation for ExecutionContext::isExecutingThread.

[0.7.0] - 2023-10-09

Changed

  • Modified ExecutionContext to store an unordered_map of context-kickstarting thread IDs rather than just a single thread ID. This helps allow for multiple threads to kickstart execution from a single context.

  • Added new unit tests for ExecutionContext.

[0.6.0] - 2023-09-27

Changed

  • Exposed the unique id for pass objects in the public, ABI-safe PassTypeRegistryEntry struct, which allows passes registered in one .dll to be de-registered from an entirely different .dll.

  • Small documentation updates (mostly grammatical).

  • Updates to the GraphUtils to better handle duplicate node names and to provide an option for creating simplified+deterministic versions of GraphViz files for use in automated unit tests.

[0.5.0] - 2023-08-17

Added

  • Added constructor for ExecutionPath taking a span of nodes.

[0.4.0] - 2023-07-21

Updated

  • Renamed Node::createForDef to Node::create.

Removed

  • Duplicate code patterns for Node::create methods; API refactoring.

[0.3.0] - 2023-07-17

Updated

  • Renamed IPassPipeline::execute_abi to IPassPipeline::run_abi.

[0.2.8] - 2023-07-17

Fixed

  • Replaced nonexistant FallbackExecutor documentation references to the correct ExecutorFallback.

[0.2.7] - 2023-04-17

Updated

  • Split graph traversal documentation into 2 separate sections; basic traversal code examples are now in the “Guides” section, while the more expansive background information, definitions, animations, advanced code examples, etc. remain in the original “Advanced” article.

[0.2.6] - 2023-04-11

Updated

  • Revisions for graph traversal documentation (with new images, animations, examples, edited sections, etc.).

[0.2.5] - 2023-04-03

Added

  • Graph traversal documentation (minus a couple WIP images).

[0.2.4] - 2023-03-26

Updated

  • A new disconnect method for removing edges between EF nodes.

Changed

  • remove method to not perform any automatic reconnections between nodes after removing the target node from the IR.

[0.2.3] - 2023-03-23

Added

  • Support for single-node cycles.

Updated

  • A couple unit tests to exercise single-node cyclical behavior.

[0.2.2] - 2023-03-22

Fixed

  • Small alterations to Tarjan’s algorithm implementation + VisitLast + VisitAll strategies to work correctly in cyclical graphs where the children of the root node(s) are members of siad cycles.

Added

  • A few new unit tests to exercise EF in situations where children nodes of roots are involved in cycles.

Changed

  • Some refactoring of a couple already-existing unit tests/unit test utilities.

[0.2.1] - 2023-02-22

Changed

  • Renamed omni.kit.exec references to omni.kit.exec.core

[0.2.0] - 2023-02-10

  • Breaking: Pass registration methods now use ConstName rather than a hash when specifying the name of nodes/defs to match.

[0.1.1] - 2023-01-30

  • Added link at the top of the changelog for docs

[0.1.0] - 2022-11-14

Initial version