/
TSC Meeting Notes 2022-03-24

TSC Meeting Notes 2022-03-24

Attendance:

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

Discussion:

  • Filmlight’s issue with files that can’t be read with new core library:
    • Kimball: I can validate the changes. I have fixes, need to split into separate PR’s. Need another test case: reconstruction of a 0-ed chunk table for tiled exr files. Just causing me headaches.
    • Looking at multi-part reconstruction code. Yet a 3rd way of doing things.
    • Scanlines go up or down, not in random order, although each scanline is tagged with the number. Nothing in the format says order, but C++ API doesn’t let you write random order.
  • #1230 Add maximumSampleCount limit to CompositeDeepScanLine’
    • looks good to go.
  • #1211 ImfErrorMessage C Api and multithreading
    • Kimball: Had started working on ImfHeader to use the C library under the covers. Is triggering me to expose some of the functions I’d hidden.  But maybe should do the C API first.
  • Should the next release by 3.2 or 4? 
    • Have to change the API?
    • If we did to a 4, what else would go in? Alternate compression types?
      • Ask for: on disk be the GPU format, so the read just lifts into GPU.
      • Makes sense for uncompressed data, but not otherwise.
      • Nvidia peeps were looking into GPU compression, but haven’t heard from them in a while.
      • Having a compression type that is interleaved and uncompressed may be enough.
      • We’ve had compression types without a major bump.
    • Does the major version describe major file format changes or software versions. 
    • Should 4 be software only?
    • How many hoops do you have to jump through to keep the API the same?
    • Kimball: we could keep a lot of the API the same, but should we?
    • Example: String attribute. The value is a std::string in C++, so there’s be a strcpy.
    • Is there a minimal file version in the file? 
      • There’s a feature indicator in the files that says what features you’re using. 
      • That’s one of the problems with Filmlight.
      • One of the issues: very old version attribute length.
    • Should we seek out old versions of OpenEXR and encourage them to upgrade?
      • FFmpeg, but I’m not sure if I’m willing.
      • RGB: we care that modern files are in use.
      • We should have some element of outreach.
      • Vcpkg is blocked on Field3d. 
      • Feels like a TAC level problem
      • https://github.com/microsoft/vcpkg/pull/22463
      • Most of the VFX industry have switched to OIIO.
      • https://github.com/microsoft/vcpkg/pull/20957
      • Nick: I added a note to 20957 to try to bump it along
      • Blocked because there are 3 failing triples. How do you find them?
      • Maybe forever stalled.
    • ABI will be different, so we have to bump the minor version. 
    • But we can make it so it’s relatively transparent to the end developers who use the API. But I don't know if there'll be a performance hit, such as strcpy. And yes, it is noticeable. 
      • Cryptomatte strings are huge, you can have 60Mb of strings in your header.
    • #61 CI on Mac & Windows are not building the python bindings
      • weren’t we having boost problems with MacOS and Windows.
    • C++23 has introduced multi-dimentional array references. 
    • #238 ImportError: DLL load failed while importing imath in Python 3.9
      • You do have to gather all the DLLs and put them in a quarantined place. He was expecting rpath’s in the DLL’s, but that’s not a thing. “Fact of life” And not an OpenEXR issue. We shouldn’t try to do anything different.
    • #212 imath_half_to_float_table not properly exported from DLL
      • Need a repo test. Nick: I’m close to be able to try this on windows. Peculiar that no one has ever reported this problem.
    • #1204 Runpath woes
      • An artifact, we’re not explicitly doing it. CMake computes things relative to the install prefix. Assumes each of those are in a different location. Build rpath “use origin” flag? Definitely better to have the ORIGIN in there. Kimball: I can take a look at some point. $ORIGIN is the location of where the .so is. A special variable in libc.