openjpeg icon indicating copy to clipboard operation
openjpeg copied to clipboard

decode-md5 is failing on mingw32 / Visual Studio 2010 (32bits)

Open gcode-importer opened this issue 10 years ago • 18 comments

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

gcode-importer avatar Mar 14 '14 08:03 gcode-importer

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

gcode-importer avatar Mar 14 '14 08:03 gcode-importer

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

gcode-importer avatar Mar 14 '14 08:03 gcode-importer

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

gcode-importer avatar Mar 14 '14 09:03 gcode-importer

Reported by malaterre on 2014-03-14 14:04:52

  • Status changed: Started

gcode-importer avatar Mar 14 '14 14:03 gcode-importer

Reported by malaterre on 2014-03-14 14:07:56

gcode-importer avatar Mar 14 '14 14:03 gcode-importer

Reported by detonin on 2014-03-24 15:57:45

  • Labels added: Conformance

gcode-importer avatar Mar 24 '14 15:03 gcode-importer

Reported by detonin on 2014-03-24 15:58:28

  • Labels removed: Conformance

gcode-importer avatar Mar 24 '14 15:03 gcode-importer

Reported by malaterre on 2014-03-25 10:37:58

  • Labels added: Priority-Low
  • Labels removed: Priority-Medium

gcode-importer avatar Mar 25 '14 10:03 gcode-importer

For reference:

http://en.wikipedia.org/wiki/C99#IEEE.C2.A0754_floating_point_support

Reported by malaterre on 2014-03-27 10:08:11

gcode-importer avatar Mar 27 '14 10:03 gcode-importer

mathieu, what would be the different options to solve this ?

Reported by detonin on 2014-04-07 14:11:33

gcode-importer avatar Apr 07 '14 14:04 gcode-importer

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

mayeut avatar Jul 28 '15 23:07 mayeut

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

mayeut avatar Sep 12 '15 11:09 mayeut

@malaterre @mayeut Is there anything to be done at openjpeg level to prevent these computation errors ?

detonin avatar Jan 25 '16 15:01 detonin

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.

malaterre avatar Jan 25 '16 15:01 malaterre

Thanks. What shall be done to reproduce the issue ? Do we need a mingw32 build ?

detonin avatar Jan 25 '16 16:01 detonin

no, simply a -m32 and -m64 should be enough (if linux/maxosx is your preferred OS)

malaterre avatar Jan 25 '16 16:01 malaterre

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

detonin avatar Jan 25 '16 21:01 detonin

Is this reproducable on Visual Studio 2022? LOL.

ValZapod avatar May 11 '22 12:05 ValZapod