TSC Meeting Notes 2022-03-24
Attendance:
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
Most of the VFX industry have switched to OIIO.
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.