November 29, 2021
Host: Michael Dolan
Attendees:
- Rémi Achard (TSC) - DNEG
Mark Boorer (TSC) - Industrial Light & Magic
Mei Chu (TSC) - Sony Pictures Imageworks
Sean Cooper (TSC ACES TAC Rep) - ARRI
Michael Dolan (TSC Chair) - Epic Games
Patrick Hodoul (TSC) - Autodesk
John Mertic - Academy Software Foundation / Linux Foundation
Carol Payne (TSC) - Netflix
Mark Titchener (TSC) - Foundry
Carl Rand (TSC) - Weta Digital
Doug Walker (TSC Chief Architect) - Autodesk
Kevin Wheatley (TSC) - Framestore
- Thomas Mansencal - Weta Digital
- Sergio Rojas
OCIO TSC Meeting Notes
- Review of PRs in progress:
- fast-float (#1496):
- Patrick: Reviewed this morning. Ready but want to do another performance test prior to approving.
- Doug: Do we default to C++14 now?
- Patrick: We impose C++11 features, but compile C++14 by default. Some libraries in our ecosystem have minimum C++14, no longer supporting 11, so becomes problematic to not default to the same. Can build with either though.
- Kevin: Does fast-float leak symbols?
- Patrick: Have not tested this. Will add comment in PR to check.
- Optional fast-float discussion:
- Patrick: Flag was added to allow user to use it or not.
- Mark B: Problem if DCC ships with build with flag, but another doesn't. Two different behaviors for tools to conflict. Better to be always on or always off.
- Patrick: Behavior is the same between the two.
- Doug: One of the reasons was, you may not need fast-float, depending on compiler being used.
- Patrick: Do we always want to have it?
- Mark B: Should choose one or another. Bigger matrix to be built and tested, and more variants in the wild, making it harder to swap OCIO builds.
- Patrick: Valid point.
- Doug: Once we update the minimum C++ version to 17, will remove the dependency, but for now would keep it.
- Patrick: Removing the flag would simplify everything. No objection if group agrees on that.
- Michael: No objection.
- Patrick: fast-float provides localization fix and improved performance.
- Mark B: Even if we don't have fast-float, the new implementation will solve the problem other than performance?
- Kevin: Yes, since this update, but not before it.
- Michael: Speed benefit was particularly useful for shot-based grades, when loading LUTs frequently.
- Rémi: I think the fallback implementation is already providing good improvement. fast-float not a huge gain.
- Kevin: fast-float is 10-30% faster than re-implementation, which is ~3x faster than previous implementation.
- Patrick: Interesting to test on Linux. Good point. For 10%, maybe not worth having the dependency. on mac test, we can challenge dependency. Less obvious on Windows.
- Mark B: Are the numbers based on running unit tests?
- Patrick: No, creating transforms. Used ocioperf.
- Mark B: Seeing unit tests run completely will give better idea for overall performance improvement. More useful metric.
- Patrick: I can do more tests, but best tests would be real life. That could be useful.
- Doug: Sounds like we're coming to conclusion to get rid of fast-float and just use the new parser. Benefit without added dependency and no switch.
- Patrick: Could put flag off by default.
- Kevin: On Windows numbers, some are faster or slower, but not radically different. ~6-14%. Would be good to have linux numbers, to make sure there isn't a big difference. If numbers are similar to mac, could not use fast-float.
- TODO: Remi will generate Linux numbers for relative comparison. Kevin will test if time.
- TSC agreement: If numbers are similar enough to mac, don't use fast-float.
- Patrick: Reviewed this morning. Ready but want to do another performance test prior to approving.
- Analysis workflow (#1515):
- Rémi: Goal to change the way we use nightly build for testing latest dependencies. Now testing for Linux, macOS, and Windows, and uses fixed version for non-ASWF/VFX dependencies. Changes mostly restricted to GitHub actions and CMake.
- Patrick: Important for tracking changes with dependent libraries.
- Bug fix (#1535):
- Patrick: Fixed problem with search paths, where we would incorrectly fail on first unset context variable.
- fast-float (#1496):
- Release status:
- Doug: One more PR in a day or so, fixing ACES implementation issue. Use b-spline in grading transform, same as CTL code. When extrapolating those splines, slopes are not zero, but with ACES output transforms, slopes are zero, which need to be clamped to b-spline domain when inverting.
- Rémi: In Nuke if you use OCIO display with ACES output transform, and then invert, can produce NaNs
- Doug: Could be related.
- PR (#1538) with Metal test framework submitted today.
- Michael: Can target release December 14th, final call on 13th.
- Doug: One more PR in a day or so, fixing ACES implementation issue. Use b-spline in grading transform, same as CTL code. When extrapolating those splines, slopes are not zero, but with ACES output transforms, slopes are zero, which need to be clamped to b-spline domain when inverting.
- Items for next meeting agenda:
- Make final call on features for 2.1.1 and 2.0.2 releases.
Overview
Content Tools