Discussion:
[Openexr-user] Optimisation code path for reading images
Piotr Stanczyk
2013-06-18 01:35:45 UTC
Permalink
Hi,

There have been a few usage cases reported that exercised parts of the optimised reading code path which unfortunately revealed erroneous assumptions in the source.

We have a fix for handling these, which also extents to handling more general cases, in a separate branch and will be releasing that once we have built up more usage cycles.

In the meantime, however, a v2.0.1 release will be available shortly, which disables the optimisation.



- Piotr
Piotr Stanczyk
2013-06-18 16:13:03 UTC
Permalink
Hmm - that is interesting, thanks.

We typically work with 4.1.2, 4.6.1 and 4.7.1 so it looks like I missed the versions in between.

- Piotr
________________________________
From: Halfdan Ingvarsson [***@sidefx.com]
Sent: 18 June 2013 09:06
To: Piotr Stanczyk
Cc: openexr-***@nongnu.org; openexr-***@nongnu.org
Subject: Re: [Openexr-devel] Optimisation code path for reading images

Also, compiling the EXR2.0 library using gcc 4.2/4.3/4.4 with -O3 results in the PIZ compression code producing occasional garbage data (-O3 is the default for cmake release builds). The workaround was to build with -O2. gcc 4.6 and up seem ok. I didn't test with gcc 4.5.

Unfortunately, I didn't have time to dig any deeper as to whether this was an actual optimizer bug, or whether there are some spurious assumptions in the code leading to it.

Just something to keep in mind.

- œ

On 13-06-17 09:35 PM, Piotr Stanczyk wrote:

Hi,

There have been a few usage cases reported that exercised parts of the optimised reading code path which unfortunately revealed erroneous assumptions in the source.

We have a fix for handling these, which also extents to handling more general cases, in a separate branch and will be releasing that once we have built up more usage cycles.

In the meantime, however, a v2.0.1 release will be available shortly, which disables the optimisation.



- Piotr
Piotr Stanczyk
2013-06-18 16:15:52 UTC
Permalink
Is this something that was quite deterministic in behaviour?
(Does anyone have an example of a corrupted image?)

- Piotr
________________________________
From: Juri Abramov [***@nvidia.com]
Sent: 18 June 2013 09:13
To: Halfdan Ingvarsson; Piotr Stanczyk
Cc: openexr-***@nongnu.org; openexr-***@nongnu.org
Subject: RE: [Openexr-devel] Optimisation code path for reading images

Hi Halfdan,

Yep, we ran into this one too. Was already the case for OpenEXR 1.6/1.7.
Would be good to know if it is fixed in 4.5.

Juri

From: openexr-devel-bounces+gabramov=***@nongnu.org [mailto:openexr-devel-bounces+gabramov=***@nongnu.org] On Behalf Of Halfdan Ingvarsson
Sent: 18 June, 2013 18:06
To: Piotr Stanczyk
Cc: openexr-***@nongnu.org; openexr-***@nongnu.org
Subject: Re: [Openexr-devel] Optimisation code path for reading images

Also, compiling the EXR2.0 library using gcc 4.2/4.3/4.4 with -O3 results in the PIZ compression code producing occasional garbage data (-O3 is the default for cmake release builds). The workaround was to build with -O2. gcc 4.6 and up seem ok. I didn't test with gcc 4.5.

Unfortunately, I didn't have time to dig any deeper as to whether this was an actual optimizer bug, or whether there are some spurious assumptions in the code leading to it.

Just something to keep in mind.

- œ

On 13-06-17 09:35 PM, Piotr Stanczyk wrote:

Hi,

There have been a few usage cases reported that exercised parts of the optimised reading code path which unfortunately revealed erroneous assumptions in the source.

We have a fix for handling these, which also extents to handling more general cases, in a separate branch and will be releasing that once we have built up more usage cycles.

In the meantime, however, a v2.0.1 release will be available shortly, which disables the optimisation.

- Piotr




_______________________________________________

Openexr-devel mailing list

Openexr-***@nongnu.org<mailto:Openexr-***@nongnu.org>

https://lists.nongnu.org/mailman/listinfo/openexr-devel

________________________________
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
________________________________
Piotr Stanczyk
2013-06-18 16:44:25 UTC
Permalink
Thanks.

Let me see if I can repro this. I presume that simply writing out PIZ files should flare up.

Were you also seeing test failures?

- Piotr
________________________________
From: Juri Abramov [***@nvidia.com]
Sent: 18 June 2013 09:26
To: Piotr Stanczyk; Halfdan Ingvarsson
Cc: openexr-***@nongnu.org; openexr-***@nongnu.org
Subject: RE: [Openexr-devel] Optimisation code path for reading images

I’m afraid mine are under customer’s NDA.
It is rather common though, the corruption was reported for alpha.

Juri

From: Piotr Stanczyk [mailto:***@ilm.com]
Sent: 18 June, 2013 18:16
To: Juri Abramov; Halfdan Ingvarsson
Cc: openexr-***@nongnu.org; openexr-***@nongnu.org
Subject: RE: [Openexr-devel] Optimisation code path for reading images

Is this something that was quite deterministic in behaviour?
(Does anyone have an example of a corrupted image?)

- Piotr
________________________________
From: Juri Abramov [***@nvidia.com]
Sent: 18 June 2013 09:13
To: Halfdan Ingvarsson; Piotr Stanczyk
Cc: openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>; openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>
Subject: RE: [Openexr-devel] Optimisation code path for reading images
Hi Halfdan,

Yep, we ran into this one too. Was already the case for OpenEXR 1.6/1.7.
Would be good to know if it is fixed in 4.5.

Juri

From: openexr-devel-bounces+gabramov=***@nongnu.org<mailto:openexr-devel-bounces+gabramov=***@nongnu.org> [mailto:openexr-devel-bounces+gabramov=***@nongnu.org] On Behalf Of Halfdan Ingvarsson
Sent: 18 June, 2013 18:06
To: Piotr Stanczyk
Cc: openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>; openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>
Subject: Re: [Openexr-devel] Optimisation code path for reading images

Also, compiling the EXR2.0 library using gcc 4.2/4.3/4.4 with -O3 results in the PIZ compression code producing occasional garbage data (-O3 is the default for cmake release builds). The workaround was to build with -O2. gcc 4.6 and up seem ok. I didn't test with gcc 4.5.

Unfortunately, I didn't have time to dig any deeper as to whether this was an actual optimizer bug, or whether there are some spurious assumptions in the code leading to it.

Just something to keep in mind.

- œ

On 13-06-17 09:35 PM, Piotr Stanczyk wrote:

Hi,

There have been a few usage cases reported that exercised parts of the optimised reading code path which unfortunately revealed erroneous assumptions in the source.

We have a fix for handling these, which also extents to handling more general cases, in a separate branch and will be releasing that once we have built up more usage cycles.

In the meantime, however, a v2.0.1 release will be available shortly, which disables the optimisation.

- Piotr



_______________________________________________

Openexr-devel mailing list

Openexr-***@nongnu.org<mailto:Openexr-***@nongnu.org>

https://lists.nongnu.org/mailman/listinfo/openexr-devel

________________________________
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
________________________________
Piotr Stanczyk
2013-06-18 16:51:03 UTC
Permalink
aha - ok.

Thanks

- Piotr
________________________________
From: Halfdan Ingvarsson [***@sidefx.com]
Sent: 18 June 2013 09:49
To: Piotr Stanczyk
Cc: Juri Abramov; openexr-***@nongnu.org; openexr-***@nongnu.org
Subject: Re: [Openexr-devel] Optimisation code path for reading images

Actually, I should clarify. The corruption occurs on *read*, not *write*. Attached is a tiff file converted from a PIZ compressed exr, also attached.

It's most noticeable in the alpha channel, although there's a definite glitch in the red channel just above the plane.

- œ

On 13-06-18 12:44 PM, Piotr Stanczyk wrote:
Thanks.

Let me see if I can repro this. I presume that simply writing out PIZ files should flare up.

Were you also seeing test failures?

- Piotr
________________________________
From: Juri Abramov [***@nvidia.com<mailto:***@nvidia.com>]
Sent: 18 June 2013 09:26
To: Piotr Stanczyk; Halfdan Ingvarsson
Cc: openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>; openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>
Subject: RE: [Openexr-devel] Optimisation code path for reading images

I’m afraid mine are under customer’s NDA.
It is rather common though, the corruption was reported for alpha.

Juri

From: Piotr Stanczyk [mailto:***@ilm.com]
Sent: 18 June, 2013 18:16
To: Juri Abramov; Halfdan Ingvarsson
Cc: openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>; openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>
Subject: RE: [Openexr-devel] Optimisation code path for reading images

Is this something that was quite deterministic in behaviour?
(Does anyone have an example of a corrupted image?)

- Piotr
________________________________
From: Juri Abramov [***@nvidia.com<mailto:***@nvidia.com>]
Sent: 18 June 2013 09:13
To: Halfdan Ingvarsson; Piotr Stanczyk
Cc: openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>; openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>
Subject: RE: [Openexr-devel] Optimisation code path for reading images
Hi Halfdan,

Yep, we ran into this one too. Was already the case for OpenEXR 1.6/1.7.
Would be good to know if it is fixed in 4.5.

Juri

From: openexr-devel-bounces+gabramov=***@nongnu.org<mailto:openexr-devel-bounces+gabramov=***@nongnu.org> [mailto:openexr-devel-bounces+gabramov=***@nongnu.org] On Behalf Of Halfdan Ingvarsson
Sent: 18 June, 2013 18:06
To: Piotr Stanczyk
Cc: openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>; openexr-***@nongnu.org<mailto:openexr-***@nongnu.org>
Subject: Re: [Openexr-devel] Optimisation code path for reading images

Also, compiling the EXR2.0 library using gcc 4.2/4.3/4.4 with -O3 results in the PIZ compression code producing occasional garbage data (-O3 is the default for cmake release builds). The workaround was to build with -O2. gcc 4.6 and up seem ok. I didn't test with gcc 4.5.

Unfortunately, I didn't have time to dig any deeper as to whether this was an actual optimizer bug, or whether there are some spurious assumptions in the code leading to it.

Just something to keep in mind.

- œ

On 13-06-17 09:35 PM, Piotr Stanczyk wrote:

Hi,

There have been a few usage cases reported that exercised parts of the optimised reading code path which unfortunately revealed erroneous assumptions in the source.

We have a fix for handling these, which also extents to handling more general cases, in a separate branch and will be releasing that once we have built up more usage cycles.

In the meantime, however, a v2.0.1 release will be available shortly, which disables the optimisation.

- Piotr



_______________________________________________

Openexr-devel mailing list

Openexr-***@nongnu.org<mailto:Openexr-***@nongnu.org>

https://lists.nongnu.org/mailman/listinfo/openexr-devel

________________________________
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
________________________________
Loading...