TSC Meeting Notes 2023-03-09

Attendance:

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

Guests:

  • Omprakash Dhyade

Discussion:

  • Rod: compression issues

    • Using GPUDirect from Microsoft and Nvidia to decompress w/gzip the data on the GPU, for the purposes of display. Could the EXR file have the data in that form? We don’t have this done. 

    • Kimball: But we want there to be tiles, and each tile needs to be compressed. 

    • Rod: We have uncompressed EXR that are tiled and mipped. Most is reading time. If you can reduce the reading time. 

    • Kimball: How much are you relying on reading subimages? 

    • Rod: We are. We have the entire 360 sphere, although we’re only looking where the camera is looking.

    • Larry: This is an approach we’re already taking with texture mapping. I’d be supportive of evolving EXR to support it. It’s not just the realtime case that would be improved. 

    • Kimball: Is the default tile size of 32x32 from 20 years ago still appropriate?

    • Rod: We do it by hand 256x256.

    • Larry: We do 64x64, did some benchmarking a few years back.

    • Rod: There’s still some overhead to go to the next tile.

    • Rod: We wanted to be able to play back 8K on the wall.

    • Kimball: Have you experimented with non-square tiles?

    • Rod: No. But we’ve tried virtual texturing. There’s a texture that’s loaded that tells you whether you can see the tiel, then you got get the tile from somewhere else

    • Kimball: We’ve done a bunch with virtual texture, in Gazebo. Took a few rewrites.

    • Rod: Latency, 

    • Rod: We’d talked about general mechanisms for compression. This is just one of them. 

    • Larry: Do we want to support hardware-supported compression? BZ7. 

    • Rod: We use those for our other textures. 

    • Rod: Specify a path to the true EXR sequence, press a button then it makes the fast files.

    • Nick: We’d like to make EXR part of canonical of USD. 

    • Larry: no dissenting opinions. It should happen. Just a question of who.

    • Kimball: We’d need a new version of the file format. We have BZ7 compressor code.  I could get that in. Do we need to do anything to the actual tile layout?

    • Kimball: I debated about allowing you to request multiple tiles. You’d say give me these 4 tiles, 

    • Rod: We added chunking. It’s faster than reading them all one at a time. 

    • Kimball: There’s a set of stages in reading, you can interject any code you want in that process.

    • Is there a way to do asynchronous reading? It ends up being 

    • Rod: Would be good to have Ruslin Idrisob who reports to me to do a presentation. 

    • Rod: What we’ve done is restricted to Windows. It’s not a library thing. 

    • Kimball: It might be not unreasonable to have a coding scheme, B44a, rather than scanline linear.

    • Rod: We (Epic) put our code out there, so it’s practically open source.

    • Nick: you can't copy and paste epic code into your own project, it's open but not shareable

    • Rod: We may be all doing this. Is there 

    • Invite Ruslin on March 23.

    • Kimball: I’ll message Mark Leoni at Nvidia. Steve Parker is doing his own thing. Will CC Enderton as TAC rep.

  • Website

    • Cary: The website is currently built off of the main branch so that it gets the latest news. Is that the best way? 

    • Larry: readthedocs can build on a specific branch.

    • Cary: Fine to have documentation pinned to a particular branch, but that branch will have all the website news there.

    • Kimball: Peter was trying to convince Joe to make a training video. Where would be put that?

    • Larry: Just put it on YouTube

    • Cary: I put a link to the YouTube video of the 2020 sizzle reel on the website.

  • Larry: Let’s be aware of the schedule. It’s March. If we want anyone to use what we're doing, we need to have a release by August-ish.

    • Kimball: Rod’s proposal, some would not be difficult. It’s not difficult to add compression types, just have to rev the file version. But how far do we want to go. 

    • Peter: The version is encoded in the version flags.

    • Cary: There’s removing the version from namespace

    • Larry: Changes to C++ API to get thread safety.

    • Kimball: I’ve been working on that. I’m going to start from the inside out. I’ll prioritize over the next few weeks. 

    • Kimball:  Simple struct changes, I’d be fine with that. I can simplify my earlier proposal.

    • Larry: We shouldn’t lose the simplicity and understandability of Imath. Look at the header and my question is answered. Shouldn’t do something that only the six of us understand. 

    • Larry: We’ve removed the last bit of boost.

    • Kimball: us, too.

    • Nick: USD is making a push, too.