Animal Logic

Back

Multithreading USD and Qt: Adding Concurrency to Filament

DigiPro 2024

Contributor:
Jonathan Penner
Jakub Jeziorski
Kevin Russel

Abstract:
As production scene complexity and CPU core count increase, the performance of software used to interact with the scenes may not scale accordingly. Filament is our in-house, USD-based, PyQt lighting DCC, and a key area for improving Filament was increasing performance and responsiveness when working with large production scenes. USD, Qt, and Python all have their own multithreading considerations, requiring coordination between all three to work well. Filament was updated to parallelize USD stage processing to reduce processing time, as well as adopt asynchrony to keep the main GUI thread unblocked, greatly improving artist experience. These updates demonstrate a model for multithreading USD stage access to improve other applications working with USD.

Read the full Multithreading USD and Qt: Adding Concurrency to Filament paper here!