It varies.  My personal build environment, which is used to produce the
releases, is Windows 7 (latest updates) with Visual C++ 2010 from the
Windows 7 SDK: http://msdn.microsoft.com/en-us/windows/bb980924.aspx
(this is a command-line-only version.)  But I've also tested with other
Visual C++ releases.  Originally we were using VC++ 2008
(https://libjpeg-turbo.org/Documentation/OfficialBinaries), and I've
also tested with the full version of 2010, 2012 and 2015 (both
command-line and IDE.)  I have several different machines with different
CPU types (both AMD and Intel), and which one I use depends on what I'm
doing.  I've built and run libjpeg-turbo for Windows successfully on all
of them.  The one I use the most often has an Intel Core i7, and I use
it the most often because that's the only machine I have access to that
supports AVX2.

Our CI build environment (AppVeyor) runs Windows Server 2012, and I use
the full version of Visual Studio 2010 that is installed in that
environment.  I'll re-iterate that, every time a binary is produced of
libjpeg-turbo-- either for a release or a CI pre-release build-- the
entire test suite is run to validate its mathematical correctness.

Both my machine and the AppVeyor build environment use NASM 2.10.x,
since that is the minimum version necessary to support the AVX2 SIMD
extensions in libjpeg-turbo 2.0.x.  But libjpeg-turbo 1.5.3 used an
earlier NASM version, and many people use YASM instead of NASM.  I am
unaware of any problems with NASM or YASM on Windows that affects
libjpeg-turbo, other than the fact that you have to use (respectively)
2.10.x or 1.2.0 or later to get AVX2 support.

There are many many people worldwide building and running this software
on a daily basis, using many different CPUs and compilers and operating
systems.  There are several projects, such as Chocolatey and vcpkg, that
release their own builds of libjpeg-turbo for Visual C++.  I struggle to
imagine that someone would have run into this problem already and not
notified me about it.  Then again, I struggle to imagine how the same
executable can produce swapped color channels on two different
Windows/x86 machines, and I struggle equally to imagine why only
libjpeg-turbo is experiencing that problem.  It really seems to be
something with the machine, though.  I am satisfied that your tests have
eliminated the compiler and the libjpeg-turbo code as causes.

On 2/18/19 3:16 PM, gia wrote:
> branch/1.5.x failed, tags/1.5.3 failed, 1.5.2, 1.51, 1.5.0, 1.4.0,
> 1.3.0, 1.21 failed. 1.2.0 and 1.1.0 fail to build (illegal characters in
> shell command). 1.0.0 doesn't use cmake and I don't have a make env for
> windows atm. All of these built with nasm 2.14rc0.
> 
> prebuilt 1.5.3 gave same hashes as 2.0.2
> 
> prebuilt 1.2.1 has different tests (and thus different hashes) but these
> failed among others:
> cjpeg.exe "-dct" "int" "-outfile" "testoutint.jpg"
> "S:/projects/libjpeg-turbo/worktrees/master/testimages/testorig.ppm"
> MD5(testoutint.jpg)= d1720a0d43135d5a894cdf23e6e5a573, expected
> MD5(testimgint.jpg)= 9a68f56bc76e466aa7e52f415d0f4a5f
> 
> djpeg.exe "-dct" "fast" "-ppm" "-outfile" "testoutfst.ppm"
> "S:/projects/libjpeg-turbo/worktrees/master/testimages/testorig.jpg"
> MD5(testoutfst.ppm)= 048298a2d2410261c0533cb97bcfef23, expected
> MD5(testimgfst.ppm)= 1b7fb19872537aa92e331d35169b0e92
> 
> 1.2.1 had virus alerts on vc, gcc and gcc64
> 
> Do you know the build env used by the official releases for windows?
> VS2010, what processor? os? XP? Win8? vc env or mingw64? I recall there
> was a big change from xp to win7/10 and many things broke, so maybe some
> code is not working the same as it should, the specific nasm I should be
> using could be helpful as well. I'll try to obtain an old computer like
> that to see if it works.
> 
> 
> On Sunday, February 10, 2019 at 9:46:01 PM UTC-5, gia wrote:
> 
>     Hello, built the project (tags/1.5.90) on windows, mac and linux on
>     Debug using cmake. The test suite (ctest -C Debug
>     --no-compress-output -V -T Test) completed 100% on mac and linux,
>     but windows had several failures, wondering if its normal (known
>     failures) or perhaps I may have missed something:
> 
>         The following tests FAILED:
>                   9 - tjbench-shared-tile-gray-8x8-cmp (Failed)
>                  10 - tjbench-shared-tile-420-8x8-cmp (Failed)
>                  11 - tjbench-shared-tile-422-8x8-cmp (Failed)
>                  12 - tjbench-shared-tile-444-8x8-cmp (Failed)
>                  13 - tjbench-shared-tile-gray-16x16-cmp (Failed)
>                  14 - tjbench-shared-tile-420-16x16-cmp (Failed)
>                  15 - tjbench-shared-tile-422-16x16-cmp (Failed)
>                  16 - tjbench-shared-tile-444-16x16-cmp (Failed)
>                  17 - tjbench-shared-tile-gray-32x32-cmp (Failed)
>                  18 - tjbench-shared-tile-420-32x32-cmp (Failed)
>                  19 - tjbench-shared-tile-422-32x32-cmp (Failed)
>                  20 - tjbench-shared-tile-444-32x32-cmp (Failed)
>                  21 - tjbench-shared-tile-gray-64x64-cmp (Failed)
>                  22 - tjbench-shared-tile-420-64x64-cmp (Failed)
>                  23 - tjbench-shared-tile-422-64x64-cmp (Failed)
>                  24 - tjbench-shared-tile-444-64x64-cmp (Failed)
>                  25 - tjbench-shared-tile-gray-128x128-cmp (Failed)
>                  26 - tjbench-shared-tile-420-128x128-cmp (Failed)
>                  27 - tjbench-shared-tile-422-128x128-cmp (Failed)
>                  28 - tjbench-shared-tile-444-128x128-cmp (Failed)
>                  31 - tjbench-shared-tile-420m-8x8-cmp (Failed)
>                  32 - tjbench-shared-tile-422m-8x8-cmp (Failed)
>                  33 - tjbench-shared-tile-420m-16x16-cmp (Failed)
>                  34 - tjbench-shared-tile-422m-16x16-cmp (Failed)
>                  35 - tjbench-shared-tile-420m-32x32-cmp (Failed)
>                  36 - tjbench-shared-tile-422m-32x32-cmp (Failed)
>                  37 - tjbench-shared-tile-420m-64x64-cmp (Failed)
>                  38 - tjbench-shared-tile-422m-64x64-cmp (Failed)
>                  39 - tjbench-shared-tile-420m-128x128-cmp (Failed)
>                  40 - tjbench-shared-tile-422m-128x128-cmp (Failed)
>                  42 - cjpeg-shared-rgb-islow-cmp (Failed)
>                  44 - djpeg-shared-rgb-islow-cmp (Failed)
>                  47 - jpegtran-shared-icc-cmp (Failed)
>                  49 - djpeg-shared-rgb-islow-565-cmp (Failed)
>                  51 - djpeg-shared-rgb-islow-565D-cmp (Failed)
>                  53 - cjpeg-shared-422-ifast-opt-cmp (Failed)
>                  55 - djpeg-shared-422-ifast-cmp (Failed)
>                  57 - djpeg-shared-422m-ifast-cmp (Failed)
>                  59 - djpeg-shared-422m-ifast-565-cmp (Failed)
>                  61 - djpeg-shared-422m-ifast-565D-cmp (Failed)
>                  63 - cjpeg-shared-420-q100-ifast-prog-cmp (Failed)
>                  65 - djpeg-shared-420-q100-ifast-prog-cmp (Failed)
>                  67 - djpeg-shared-420m-q100-ifast-prog-cmp (Failed)
>                  69 - cjpeg-shared-gray-islow-cmp (Failed)
>                  71 - djpeg-shared-gray-islow-cmp (Failed)
>                  73 - djpeg-shared-gray-islow-rgb-cmp (Failed)
>                  75 - djpeg-shared-gray-islow-565-cmp (Failed)
>                  77 - djpeg-shared-gray-islow-565D-cmp (Failed)
>                  79 - cjpeg-shared-420s-ifast-opt-cmp (Failed)
>                  81 - cjpeg-shared-3x2-float-prog-cmp (Failed)
>                  83 - djpeg-shared-3x2-float-prog-cmp (Failed)
>                  85 - cjpeg-shared-3x2-ifast-prog-cmp (Failed)
>                  87 - djpeg-shared-3x2-ifast-prog-cmp (Failed)
>                  89 - cjpeg-shared-420-islow-ari-cmp (Failed)
>                  93 - cjpeg-shared-444-islow-progari-cmp (Failed)
>                 138 - djpeg-shared-420-islow-prog-crop62x62_71_71-cmp
>         (Failed)
>                 143 - djpeg-shared-444-islow-skip1_6-cmp (Failed)
>                 146 - djpeg-shared-444-islow-prog-crop98x98_13_13-cmp
>         (Failed)
>                 149 - djpeg-shared-444-islow-ari-crop37x37_0_0-cmp (Failed)
>                 160 - tjbench-static-tile-gray-8x8-cmp (Failed)
>                 161 - tjbench-static-tile-420-8x8-cmp (Failed)
>                 162 - tjbench-static-tile-422-8x8-cmp (Failed)
>                 163 - tjbench-static-tile-444-8x8-cmp (Failed)
>                 164 - tjbench-static-tile-gray-16x16-cmp (Failed)
>                 165 - tjbench-static-tile-420-16x16-cmp (Failed)
>                 166 - tjbench-static-tile-422-16x16-cmp (Failed)
>                 167 - tjbench-static-tile-444-16x16-cmp (Failed)
>                 168 - tjbench-static-tile-gray-32x32-cmp (Failed)
>                 169 - tjbench-static-tile-420-32x32-cmp (Failed)
>                 170 - tjbench-static-tile-422-32x32-cmp (Failed)
>                 171 - tjbench-static-tile-444-32x32-cmp (Failed)
>                 172 - tjbench-static-tile-gray-64x64-cmp (Failed)
>                 173 - tjbench-static-tile-420-64x64-cmp (Failed)
>                 174 - tjbench-static-tile-422-64x64-cmp (Failed)
>                 175 - tjbench-static-tile-444-64x64-cmp (Failed)
>                 176 - tjbench-static-tile-gray-128x128-cmp (Failed)
>                 177 - tjbench-static-tile-420-128x128-cmp (Failed)
>                 178 - tjbench-static-tile-422-128x128-cmp (Failed)
>                 179 - tjbench-static-tile-444-128x128-cmp (Failed)
>                 182 - tjbench-static-tile-420m-8x8-cmp (Failed)
>                 183 - tjbench-static-tile-422m-8x8-cmp (Failed)
>                 184 - tjbench-static-tile-420m-16x16-cmp (Failed)
>                 185 - tjbench-static-tile-422m-16x16-cmp (Failed)
>                 186 - tjbench-static-tile-420m-32x32-cmp (Failed)
>                 187 - tjbench-static-tile-422m-32x32-cmp (Failed)
>                 188 - tjbench-static-tile-420m-64x64-cmp (Failed)
>                 189 - tjbench-static-tile-422m-64x64-cmp (Failed)
>                 190 - tjbench-static-tile-420m-128x128-cmp (Failed)
>                 191 - tjbench-static-tile-422m-128x128-cmp (Failed)
>                 193 - cjpeg-static-rgb-islow-cmp (Failed)
>                 195 - djpeg-static-rgb-islow-cmp (Failed)
>                 198 - jpegtran-static-icc-cmp (Failed)
>                 200 - djpeg-static-rgb-islow-565-cmp (Failed)
>                 202 - djpeg-static-rgb-islow-565D-cmp (Failed)
>                 204 - cjpeg-static-422-ifast-opt-cmp (Failed)
>                 206 - djpeg-static-422-ifast-cmp (Failed)
>                 208 - djpeg-static-422m-ifast-cmp (Failed)
>                 210 - djpeg-static-422m-ifast-565-cmp (Failed)
>                 212 - djpeg-static-422m-ifast-565D-cmp (Failed)
>                 214 - cjpeg-static-420-q100-ifast-prog-cmp (Failed)
>                 216 - djpeg-static-420-q100-ifast-prog-cmp (Failed)
>                 218 - djpeg-static-420m-q100-ifast-prog-cmp (Failed)
>                 220 - cjpeg-static-gray-islow-cmp (Failed)
>                 222 - djpeg-static-gray-islow-cmp (Failed)
>                 224 - djpeg-static-gray-islow-rgb-cmp (Failed)
>                 226 - djpeg-static-gray-islow-565-cmp (Failed)
>                 228 - djpeg-static-gray-islow-565D-cmp (Failed)
>                 230 - cjpeg-static-420s-ifast-opt-cmp (Failed)
>                 232 - cjpeg-static-3x2-float-prog-cmp (Failed)
>                 234 - djpeg-static-3x2-float-prog-cmp (Failed)
>                 236 - cjpeg-static-3x2-ifast-prog-cmp (Failed)
>                 238 - djpeg-static-3x2-ifast-prog-cmp (Failed)
>                 240 - cjpeg-static-420-islow-ari-cmp (Failed)
>                 244 - cjpeg-static-444-islow-progari-cmp (Failed)
>                 289 - djpeg-static-420-islow-prog-crop62x62_71_71-cmp
>         (Failed)
>                 294 - djpeg-static-444-islow-skip1_6-cmp (Failed)
>                 297 - djpeg-static-444-islow-prog-crop98x98_13_13-cmp
>         (Failed)
>                 300 - djpeg-static-444-islow-ari-crop37x37_0_0-cmp (Failed)
>         Errors while running CTest
> 
> 
>     Cmake command for windows, similar for linux and mac.
> 
>          cmake --check-system-vars -DCMAKE_BUILD_TYPE=Debug
>         -DCMAKE_SYSTEM_VERSION=10.0.17763.0 -DCMAKE_C_FLAGS="/sdl /W3
>         /MP /GS /D_SDL_BANNED_RECOMMENDED" -DCMAKE_C_FLAGS_DEBUG="/MDd
>         /Od /RTC1" -DCMAKE_C_FLAGS_RELEASE="/MD"
>         -DCMAKE_EXE_LINKER_FLAGS="/NXCOMPAT /DYNAMICBASE"
>         -DCMAKE_SHARED_LINKER_FLAGS="/NXCOMPAT /DYNAMICBASE"
>         -DCMAKE_MODULE_LINKER_FLAGS="/NXCOMPAT /DYNAMICBASE"
>         -DBUILD_SHARED_LIBS=ON -DWIN32=ON -DWITH_JPEG8=1
>         
> -DCMAKE_ASM_NASM_COMPILER="S:/projects/nasm/builds/master/output/Debug/bin/nasm.exe"
>         
> -DCMAKE_INSTALL_PREFIX="S:/projects/libjpeg-turbo/builds/master/output/Debug"
>         -G "Visual Studio 15 2017 Win64" -T v141 ../../worktrees/master
>         cmake --build . --target ALL_BUILD --config Debug --clean-first
>         ctest -C Debug --no-compress-output -V -T Test
>         cmake --build . --target INSTALL --config Debug
> 
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "libjpeg-turbo User Discussion/Support" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to libjpeg-turbo-users+unsubscr...@googlegroups.com
> <mailto:libjpeg-turbo-users+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/libjpeg-turbo-users/fc313335-2d6a-43ed-97b0-4d1e27cc9ed4%40googlegroups.com
> <https://groups.google.com/d/msgid/libjpeg-turbo-users/fc313335-2d6a-43ed-97b0-4d1e27cc9ed4%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"libjpeg-turbo User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to libjpeg-turbo-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/libjpeg-turbo-users/0a74df04-6079-6f1c-d256-c6932235f241%40virtualgl.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to