AcademySoftwareFoundation / AcademySoftwareFoundation/openexr
testDWAACompression and testDWABCompression fail on aarch64, i686
- Dominant language
- C
- Stars
- 1.8k
- Forks
- 700
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 29
Description
The aarch64 failure looks like this:
```
56/113 Test #50: OpenEXRCore.testDWAACompression ...........Subprocess aborted***Exception: 2.48 sec
tempDir = '/var/tmp/OpenEXR_1wG2Kb/': 24
=======
Running testDWAACompression
zeroes tiled: no sampling 1, 1 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp.exr' 3602 '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp_cpp.exr' 3707
zeroes tiled: yes sampling 1, 1 comp 8
Files '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp.exr' and '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp_cpp.exr' differ in chunk starting at 411
zeroes tiled: no sampling 1, 2 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp.exr' 4592 '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp_cpp.exr' 4692
zeroes tiled: no sampling 2, 1 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp.exr' 3602 '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp_cpp.exr' 3707
zeroes tiled: no sampling 2, 2 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp.exr' 4592 '/var/tmp/OpenEXR_1wG2Kb/zeroes_imf_test_comp_cpp.exr' 4692
pattern1 tiled: no sampling 1, 1 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp.exr' 7640 '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp_cpp.exr' 70350
pattern1 tiled: yes sampling 1, 1 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp.exr' 88311 '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp_cpp.exr' 88096
pattern1 tiled: no sampling 1, 2 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp.exr' 9690 '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp_cpp.exr' 73368
pattern1 tiled: no sampling 2, 1 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp.exr' 7640 '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp_cpp.exr' 70350
pattern1 tiled: no sampling 2, 2 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp.exr' 9690 '/var/tmp/OpenEXR_1wG2Kb/pattern1_imf_test_comp_cpp.exr' 73368
pattern2 tiled: no sampling 1, 1 comp 8
File sizes do not match: '/var/tmp/OpenEXR_1wG2Kb/pattern2_imf_test_comp.exr' 1890660 '/var/tmp/OpenEXR_1wG2Kb/pattern2_imf_test_comp_cpp.exr' 1745228
B half at 1001, 40 not equal: C loaded C++ 0x3195 (0.174438) vs C loaded C 0x3190 (0.173828)
Core Test failed: a == b
file:/builddir/build/BUILD/openexr-3.1.8/src/test/OpenEXRCoreTest/compression.cpp
line:475
function:static void pixels::compareExact(uint16_t, uint16_t, int, int, const char*, const char*, const char*)
Start 64: OpenEXR.testCopyDeepTiled
57/113 Test #51: OpenEXRCore.testDWABCompression ...........Subprocess aborted***Exception: 3.03 sec
tempDir = '/var/tmp/OpenEXR_RfGuk8/': 24
=======
Running testDWABCompression
zeroes tiled: no sampling 1, 1 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp.exr' 2791 '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp_cpp.exr' 2861
zeroes tiled: yes sampling 1, 1 comp 9
Files '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp.exr' and '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp_cpp.exr' differ in chunk starting at 411
zeroes tiled: no sampling 1, 2 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp.exr' 3001 '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp_cpp.exr' 3071
zeroes tiled: no sampling 2, 1 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp.exr' 2791 '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp_cpp.exr' 2861
zeroes tiled: no sampling 2, 2 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp.exr' 3001 '/var/tmp/OpenEXR_RfGuk8/zeroes_imf_test_comp_cpp.exr' 3071
pattern1 tiled: no sampling 1, 1 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp.exr' 68817 '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp_cpp.exr' 68889
pattern1 tiled: yes sampling 1, 1 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp.exr' 234006 '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp_cpp.exr' 233791
pattern1 tiled: no sampling 1, 2 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp.exr' 67973 '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp_cpp.exr' 68043
pattern1 tiled: no sampling 2, 1 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp.exr' 68817 '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp_cpp.exr' 68889
pattern1 tiled: no sampling 2, 2 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp.exr' 67973 '/var/tmp/OpenEXR_RfGuk8/pattern1_imf_test_comp_cpp.exr' 68043
pattern2 tiled: no sampling 1, 1 comp 9
File sizes do not match: '/var/tmp/OpenEXR_RfGuk8/pattern2_imf_test_comp.exr' 1707649 '/var/tmp/OpenEXR_RfGuk8/pattern2_imf_test_comp_cpp.exr' 1707912
B half at 1001, 40 not equal: C loaded C++ 0x3195 (0.174438) vs C loaded C 0x3190 (0.173828)
Core Test failed: a == b
file:/builddir/build/BUILD/openexr-3.1.8/src/test/OpenEXRCoreTest/compression.cpp
line:475
function:static void pixels::compareExact(uint16_t, uint16_t, int, int, const char*, const char*, const char*)
```
The i686 failure looks similar, the difference being:
```
-File sizes do not match: '/var/tmp/OpenEXR/pattern2_imf_test_comp.exr' 1707649 '/var/tmp/OpenEXR/pattern2_imf_test_comp_cpp.exr' 1707912
-B half at 1001, 40 not equal: C loaded C++ 0x3195 (0.174438) vs C loaded C 0x3190 (0.173828)
+File sizes do not match: '/var/tmp/OpenEXR/pattern2_imf_test_comp.exr' 1707645 '/var/tmp/OpenEXR/pattern2_imf_test_comp_cpp.exr' 1707909
+B half at 1276, 1 not equal: C++ loaded C 0x3c4b (1.07324) vs C loaded C 0x3c4e (1.07617)
```
Seen with 3.1.8.
Contributor guide
Research direction
Start by running OpenEXRCore.testDWAACompression and OpenEXRCore.testDWABCompression on aarch64 or i686 and read src/test/OpenEXRCoreTest/compression.cpp, especially the comparison at line 475. Compare the C and C++ outputs and half-float values for the reported cases. Done means both compression tests pass with matching files and exact pixel comparisons on the affected architectures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, cpp
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100