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.