Kevin Wheatley: I have an update from the OCIO TSC. Nick has a minor Blink change.
Nick Shaw: It's been noticed that our Blink didn't work in Nuke v15.1. Foundry changed matrix handling so inversion happens in place. So now we copy the matrix before inverting. There is also a bug in 15.1 with float3 arrays, so they've been changed to float4, even though only three channels are used. Thanks to Mark Titchener at Foundry worked with me on these issues. Alex has merged my PR with the changes, so v60 is now compatible with Nuke 15.0, 15.1 and the 16.0 beta.
Alex Fry: Should we rename it from v60 to match the CTL.
Kevin Wheatley: Maybe when we make the next release candidate, as long as it's updated to match that. At the OCIO TSC meeting this week we felt getting substantial changes for the next point release was too tight, so we'll do another point release in January when we'll make more changes. The December release won't change appearance or include embedded configs, and will still be a preview. The configs will be available for download. OCIO would prefer if other implementers commented on changes and optimizations. We are only an architecture group, without implementer involvement, except OCIO. We would like a single optimal rendering.
Alex Fry: That's 2.4.1 in December?
Kevin Wheatley: Yes, and 2.4.2 in mid January.
Nick Shaw: Are OCIO wanting ACES to organize liaising between implementers. Are we talking about setting up an implementation group?
Kevin Wheatley: Carol expressed that desire in the past. OCIO felt uncomfortable being the only ones choosing the direction of travel.
Nick Shaw: It's hard to get the Resolve team involved due to time zones. But it would be good if they could join. Pomfort might join as they have an implementation.
Kevin Wheatley: We don't necessarily need a meeting. Just a forum of some kind.
Scott Dyer: We need to discuss how we roll out changes if they alter pixel values. Others have implemented ACES 2 without performance problems. We don't want them to have to redo things unless we can clearly communicate why it's necessary.
Nick Shaw: Are there real time implementations already? Pomfort bake LUTs so don't need real time video processing.
Scott Dyer: People we spoke to have made pre-baked tables for each target from the init(), and then the processing is GPU shaders.
Nick Shaw: That's what my DCTL does. The lookups are pre-baked in Python. Is it worth setting up a Slack channel for implementers? That avoids time zone issues.
Kevin Wheatley: Doug said some of OCIO's customers had said the GPU render was"over budget". We don't know exactly what that means. What hardware?
Nick Shaw: Would these people be prepared to talk about their issues publicly?
Kevin Wheatley: OCIO code is public, so we are happy to get involved.
Rémi Achard: The OCIO GPU code can play 4K or 8K without too many issues. It depends on the hardware and what other processing you need to do. Game engines may have tighter budgets.
Nick Shaw: As Doug said, game engines already take short cuts with ACES 1.
Kevin Wheatley: Not all game engines are used for games, so in some scenarios it may need to be more accurate. My changes you probably don't notice the difference in SDR, but in HDR you probably would. If VFX and DI don't match, it's a problem.
Alex Fry: That was the case with early OCIO ACES.
Kevin Wheatley: LUTs vs functional is one thing, but two functional implementations that differ is more of a problem.
Alex Fry: The other discussion was collapsing the tone scale into a 1D LUT.
Kevin Wheatley: That shouldn't affect the. look , but needs code to find a fit.
Nick Shaw: I was supposed to look into the domains for those, but didn't have time.
Kevin Wheatley: Maybe an AI could find optimizations there. It's odd a couple of power calls are causing such a problem.
Rémi Achard: That was mostly on the CPU. I upgraded my system and now it's 3x slower than ACES 1. Eric from Epic did some GPU profiling.
Nick Shaw: Simple refactoring of powers to exp and natural log, a compiler may do anyway.
Kevin Wheatley: Sort of. It's possible to do things a compiler won't because you know what the data it needs to handle is.
Rémi Achard: I also created a lookup to remove the binary search, with an inverse hue to index lookup. Worst case it's one off on the index. It's about 20% faster.
ACES Output Transforms VWG
Meeting #173, November 27th, 1pm PT
[Meeting Recording]
Attendees
Meeting Notes