TSC Meeting Notes 2022-01-27

Attendance:

Cary Phillips
Christina Tempelaar-Leitz
John Mertic
Joseph Goldstone
Kimball Thurston
Larry Gritz
Nick Porcino
Peter Hillman
Rod Bogart

Discussion:

  • V3.1.4 release is out

  •  

    • All quiet before and after. “A good thing.”

  • PR 1219 Make Local Build with Imath

  •  

    • Kimball: OK to merge.  I looked it over, but the checks hadn’t pass so I didn’t merge, then forgot about it.

  • Fuzz issues

  •  

    • One outstanding.

    • Why the emails? Cary: when a release comes out, we need to update each individual entry on the oss-fuzz site to reference the fixed version. THose were the notification emails, it was me adding the comment. 

  • Christina: I’ll work on the CI this weekend.

  • Larry: Struggling on building things that have different constraints, multiple VFX platform years in play, solved by embedding static builds of particular versions in the right place.

  •  

    • Now everything touches everything else, e.g. interactive rendering.

    • Been thwarted in upgrading the texture system to 3.1 to take advantage of new core API, speed benefits. Only use it for textures in a few places because of performance issues. 

    • Experimenting with: build static versions of the library, then embedding them into OSL and OpenImageIO. Carefully root out the instances in the public API where Imath has crept in. Made good progress.

    • But it’s hard

    • Choice at build time: either static or shared. Very little support for building both simultaneously.  Had to configure it so there are separate static projects. Build twice. But doesn’t work because the exported CMake files have only one set of configurations.

    • Kimball: We had simultaneous builds but removed it. 

    • Kimball: Should we define our own CMake configurations. Can set the suffix so the libraries add _static to the names.

    • Nick: could have multiple emits from CMake. It would be idiomatic. 

    • Nick: we removed simultaneous build before there were CMake aliases, but now there’s a coherent path through the systems, wasn’t there before.

    • Nick: Renderman and Presto don’t move in lock step.

    • Kimball: can redeclare symbols to hide them. 

    • Peter: two versions of openexr in the same binary would be an accomplishment. 

    • Kimball: You can do it with namespaces. They’re compiled in separate builds, which is how the different include files get in.

    • Larry: Imath symbols make their way to public API.

    • Nick: We wanted Imath to be foundational. But foundational as API?  Could be a C type for API.

    • Kimball: I’ve been working on redoing the C++ api to use Core. First thing is ImfHeader and attributes. Quickly ran into: what about String attributes. I have a length and a char*, sort of like std::string. Strings inside of Core are “pascal” like, with start/count, not necessarily null-terminated. 

    • Larry: We’ve used clang: compilation is faster, error messages are better, run speed is better. Kimball: we saw 10% faster.

    • Christana: Epic uses clang for Mac and Linux builds.

    • Kimball: We should lobby the VFX reference platform to specify the reference libgcc version. 

    • Larry: just specify the library version and API version, then it doesn’t matter what DCC version it is.

    • Larry: Hopeful there’s a future where we can make it less painful.

    • Kimball: Maybe we should make another attempt at simultaneous build.

    • Larry: If you  know of a project that gets this right, I’d love a pointer. 

  • Need to prepare for the ASWF Open Source Summit.