PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
6.18k stars 1.23k forks source link

Autodesk: Fix Loading Large Size Image Crash with hioOpenEXR #3332

Open erikaharrison-adsk opened 1 month ago

erikaharrison-adsk commented 1 month ago

Description of Change(s)

In USD 24.08, the crash when loading an extreme-sized texture returns. The root cause is that now USD uses Hio_OpenEXRImage instead of HioOiio to load the exr images, and there are issues in OpenEXRCore & HioOpenEXR.

This solution is to fix loading large-size image crashes mainly resulting from int overflows.

Related: https://github.com/PixarAnimationStudios/OpenUSD/pull/3119

Fixes Issue(s)

jesschimein commented 1 month ago

Filed as internal issue #USD-10227

jesschimein commented 1 month ago

/AzurePipelines run

azure-pipelines[bot] commented 1 month ago
Azure Pipelines successfully started running 1 pipeline(s).
meshula commented 1 month ago

Thank you for these fixes. The changes to OpenEXRCore do not exist upstream, but the fixes are important enough that they should be upstreamed ~ we don't want the interned copy of OpenEXRCore to get ahead of the originating code with substantial changes like this. Could I ask that you also upstream the OpenEXRCore fixes to OpenEXR in parallel please? The OpenEXR test suite is supposed to be robust enough to catch very large files and so on, so could you also post at OpenEXR how to repro the failure? This should have been caught OpenEXR side :)

Thanks!

adskWangl commented 1 month ago

Thank you for these fixes. The changes to OpenEXRCore do not exist upstream, but the fixes are important enough that they should be upstreamed ~ we don't want the interned copy of OpenEXRCore to get ahead of the originating code with substantial changes like this. Could I ask that you also upstream the OpenEXRCore fixes to OpenEXR in parallel please? The OpenEXR test suite is supposed to be robust enough to catch very large files and so on, so could you also post at OpenEXR how to repro the failure? This should have been caught OpenEXR side :)

Thanks!

Thank you for your response! I'll try to reproduce this failure with an independent OpenEXR case and upstream the OpenEXRCore fixes to OpenEXR as this fix is also important to us.