openjpeg
openjpeg copied to clipboard
decode-md5 is failing on mingw32 / Visual Studio 2010 (32bits)
Originally reported on Google Code with ID 292
As seen here:
http://my.cdash.org/testDetails.php?test=14151717&build=581070
CMake Error at /home/voxxl/Dashboards/MyTests/openjpeg-experimental/tests/nonregression/checkmd5refs.cmake:64
(message):
not equal: [8afcac9a696cc8d753b0eb9f4ae692ff
CT_Phillips_JPEG2K_Decompr_Problem.j2k_0.pgx] vs
[91bcc4158e0c6af59950b6290d1abdea
CT_Phillips_JPEG2K_Decompr_Problem.j2k_0.pgx]
Reported by malaterre on 2014-03-14 08:51:46
Really the issue is that the computation is not exact and result differ sometimes from
1 byte (in value) compared to the generated one.
Question: should openjpeg produce the *exact* same result on all OS/arch ?
Reported by malaterre on 2014-03-14 08:52:38
This can also be seen here:
Start 26: NR-C1P0-p0_04.j2k-compare2base
26: Test command: /home/voxxl/Dashboards/MyTests/openjpeg-experimental-linux_mingw32-trunk-debug/bin/compare_images.exe
"-b" "/home/voxxl/Dashboards/MyTests/data/baseline/nonregression/opj_c1p0_04.pgx" "-t"
"/home/voxxl/Dashboards/MyTests/openjpeg-experimental-linux_mingw32-trunk-debug/tests/conformance/Temporary/c1p0_04.j2k.pgx"
"-n" "3" "-d" "-s" "b_t_"
26: Test timeout computed to be: 240
26: Application tried to create a window, but no driver could be loaded.
26: Make sure that your X server is running and that $DISPLAY is set correctly.
26: err:systray:initialize_systray Could not create tray window
26: ******Parameters*********
26: base_filename = /home/voxxl/Dashboards/MyTests/data/baseline/nonregression/opj_c1p0_04.pgx
26: test_filename = /home/voxxl/Dashboards/MyTests/openjpeg-experimental-linux_mingw32-trunk-debug/tests/conformance/Temporary/c1p0_04.j2k.pgx
26: nb of Components = 3
26: Non regression test = 1
26: separator Base = _
26: separator Test = _
26: NbFilename to generate from base filename = 3
26: NbFilename to generate from test filename = 3
26: *************************
26: Step 1 -> Header comparison
26: Step 2 -> measurement comparison
26: <DartMeasurement name="NumberOfPixelsWithDifferences_0" type="numeric/int"> 13
</DartMeasurement>
26: <DartMeasurement name="ComponentError_0" type="numeric/double"> -1.000000 </DartMeasurement>
1/1 Test #26: NR-C1P0-p0_04.j2k-compare2base ...***Failed 5.12 sec
0% tests passed, 1 tests failed out of 1
Total Test time (real) = 5.16 sec
The following tests FAILED:
26 - NR-C1P0-p0_04.j2k-compare2base (Failed)
Errors while running CTest
Reported by malaterre on 2014-03-14 08:59:18
For reference, using r2375, here is what I get (gcc -m32):
Start 26: NR-C1P0-p0_04.j2k-compare2base
26: Test command: /home/mathieu/Projects/IntoPIX/openjpeg.svn/trunk/bin2/bin/comparePGXimages
"-b" "/home/mathieu/Projects/IntoPIX/openjpeg.svn/data/baseline/nonregression/opj_c1p0_04.pgx"
"-t" "/home/mathieu/Projects/IntoPIX/openjpeg.svn/trunk/bin2/tests/conformance/Temporary/c1p0_04.j2k.pgx"
"-n" "3" "-d" "-s" "b_t_"
26: Test timeout computed to be: 1500
26: ******Parameters*********
26: base_filename = /home/mathieu/Projects/IntoPIX/openjpeg.svn/data/baseline/nonregression/opj_c1p0_04.pgx
26: test_filename = /home/mathieu/Projects/IntoPIX/openjpeg.svn/trunk/bin2/tests/conformance/Temporary/c1p0_04.j2k.pgx
26: nb of Components = 3
26: Non regression test = 1
26: separator Base = _
26: separator Test = _
26: NbFilename to generate from base filename = 3
26: NbFilename to generate from test filename = 3
26: *************************
26: Step 1 -> Header comparison
26: Step 2 -> measurement comparison
26: <DartMeasurement name="NumberOfPixelsWithDifferences_0" type="numeric/int"> 13
</DartMeasurement>
26: <DartMeasurement name="ComponentError_0" type="numeric/double"> -1.000000 </DartMeasurement>
26: <DartMeasurement name="NumberOfPixelsWithDifferences_1" type="numeric/int"> 25
</DartMeasurement>
26: <DartMeasurement name="ComponentError_1" type="numeric/double"> -1.000000 </DartMeasurement>
26: <DartMeasurement name="NumberOfPixelsWithDifferences_2" type="numeric/int"> 43
</DartMeasurement>
26: <DartMeasurement name="ComponentError_2" type="numeric/double"> 3.000000 </DartMeasurement>
1/1 Test #26: NR-C1P0-p0_04.j2k-compare2base ...***Failed 0.12 sec
Reported by malaterre on 2014-03-14 09:17:29
Reported by malaterre on 2014-03-14 14:07:56
Reported by malaterre on 2014-03-25 10:37:58
- Labels added: Priority-Low
- Labels removed: Priority-Medium
For reference:
http://en.wikipedia.org/wiki/C99#IEEE.C2.A0754_floating_point_support
Reported by malaterre on 2014-03-27 10:08:11
mathieu, what would be the different options to solve this ?
Reported by detonin on 2014-04-07 14:11:33
Same kind of errors with kakadu update: http://my.cdash.org/viewTest.php?onlydelta&buildid=800503 those *-compare_dec-ref-out2base are failing now that I updated kakadu
Strange thing is that travis OS X build doesn't fail with the same version of kakadu... http://my.cdash.org/buildSummary.php?buildid=823322 Maybe linked to OS version
@malaterre @mayeut Is there anything to be done at openjpeg level to prevent these computation errors ?
this may be a long debate, but at a minimum I would start with -ffloat-store and/or -std=c99 just to check this is not a silly mistake. x86_64 use SSE by default, while -m32 uses 387... I've seen report that -ffast-math
is supported now, this issue may have gone away.
Thanks. What shall be done to reproduce the issue ? Do we need a mingw32 build ?
no, simply a -m32
and -m64
should be enough (if linux/maxosx is your preferred OS)
I confirm the issue is still valid, on Windows (see IPX1 machine on CDash), MacOSX and Debian. The delta between Debian 64 bits and Debian 32 bits (with -m32 flag) is available here: http://my.cdash.org/viewTest.php?onlydelta&buildid=900134
Is this reproducable on Visual Studio 2022? LOL.