Newsgroups: php.internals,php.internals.win Path: news.php.net Xref: news.php.net php.internals:114313 php.internals.win:1234 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 63626 invoked from network); 9 May 2021 14:56:58 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 9 May 2021 14:56:58 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id BAEE41804B5; Sun, 9 May 2021 08:04:12 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS; Sun, 9 May 2021 08:04:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1620572650; bh=Sh6TGwFYYOUs3L0TuN50qk40JOvzYsg4kuN9rFdsQiw=; h=X-UI-Sender-Class:To:From:Subject:Date; b=OeB153o45xR8FkokHN7kqwe0iJrDLWi0ezFvjLBUj6Q+Hn1GMjZtrJBUDy9RO0wWJ Id4G6i+VcynCeci6LdlERwriMbecTJfB+DyDPMIhHaTATJBarRfKiExggK6fQ5ulUl 7+35GmBL0WucKB/4vxjfoPdPubCjWAJuIw4dbSmo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.130] ([84.179.251.96]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MYNNo-1m15RY1066-00VMnk; Sun, 09 May 2021 17:04:10 +0200 To: PHP internals , internals-win Message-ID: <48cc2ae5-6cc8-b8a1-7c48-adc316849987@gmx.de> Date: Sun, 9 May 2021 17:04:09 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:xeSv6ze625Q028ZWYc1BvhmfGWqy0kvTlN/J4s1FlZmyMJe7gSJ 2w0WsNCZ9JCdPMqQswimpppi9QKArKDlb85hQ0mMZBAyZm+0S7+HJmQkdW9/ZwHu3W4SXnM 5fi+zzsHEaoRsOd+lDLocEe+/KPLQsQtDKqFON5aqlAHWd+vxKFn6L1d3ahM0cSYON3BC69 1Rx6z7xxsBj7X/7FL159A== X-UI-Out-Filterresults: notjunk:1;V03:K0:qz9SvUu9VOc=:2uv24teCBJBrtIAch4IzU8 GM8NOAi196HD9uSpBPQmKfp+CHjBroqS9B0357/5PkckNiKg3L2b3bJrqU0Wvh7+xEDLRG8Ji kRMwaVkq+DHs2IL2JDz+sig5jYvgjzU4XcfdlMrkLgS4muotTmj7LkHkr/jPTahCWxUxYkprn EHulquPJwJkksgrBjprW/7JugxOsa2aNx1G0K4I9aZ2ZXloTKXGyq44Iu0MLMeXlGkys3A0vk DduXb8b0A6r+5PBu72a0dRCZX7y7Py5xdXKjplUTfb2dzuwE7BHh9ExtXq4bSxe+ivVNrBfJp 6NVxQliQVduwEMlWLbdABKm6maq8pv42kt9/4eWApsDR7pXX1Okoi9xHRfjMum5TWMZ0shHyn ry2LFpDVZQVUSiwgebmVmXC/MXddLo6Ziw5R6iDLyejbiRvJvYoA9TZSWoUve5UDC6S0BfNhp jnXMiCgMplfTAIXPBVHqQLiU0VdyDLhZqG60lYIXEBJP+SNrQE8poHURdqWGgdE4ncxRHRIH+ cLPMa2S5vb7nt9YtLysPYwlZDYL3a49ZQ402JBLexnZM/WG+ICr5lNO8rIFrrilUmuGHDa+Vy Mg0Z3DvQd0cn+gsUa0nVlXvRumQWgZ9m5Gls6S/UGguDJPaROsrqixrfVqFCVC0/Xyr5CGmCq 7TVnQ0B4V8in+0eF/NNUs/Zwt92cmRlNs7gNnIKxpYn2pP0oTb4821gwjj/wz9uyui1jOyudS wu0UnGW6Rdh13vpgD903RLhqt8IEK44jFT/AvEJU3PYl3R5PL42UTW0jROykfIqOXrB81yjTi ygi9C5L//+SlSu9csyIosxFfhaghPznnX4kof0DJuPxz6N1q+NndhJuYs9TGjAc+O8/EZ1FeC cq452bKxAPL1x7I7bVsCS//b/W/efae+xCMrKxi1yS5qyHUhf/5P8jz/GSIuYb2szeGLWKkt5 Sk03vS+VPxuWmoiN3P7k3efB+eYg3QAPf0MvMKWk8P3oicinFN87QY0EHDMeVRjOnKZZR5fVt fs0xPKKs/5Pn/LiHJyGXUKCPQIQZREfDFzCHPQay+Qjnr9fnu60Rj82sC2ieZCTPapmn2YO59 hk3UAgbiLYyHqqUSZy/B3st4AhVQ9ZiLhn7Du6r/3Hf2wiZEuBnmrOShqI0ujAkHpqo+XBPkE xEGKwWpadO+dHOYHe6Hp2YLCdwodWg0uchS+GexO6VIBfkYHv9221p4tgD808caivJIjQ= Subject: Replace libjpeg with libjpeg-turbo for PHP 8.1+ on Windows From: cmbecker69@gmx.de ("Christoph M. Becker") Hi all, I suggest to replace libjpeg[1] with libjpeg-turbo[2] for future PHP releases on Windows, starting with PHP 8.1. The main reason is that libjpeg-turbo offers better performance, because it uses SIMD instructions on supported platforms (Windows x86 and x64 are supported). Note that many (all?) Linux distributions also support libjpeg-turbo. To my knowlege libjpeg-turbo can be used as compatible drop-in replacement for libjpeg. However, Windows builds are currently using libjeg 9c, for which there is no compat layer in libjpeg-turbo due to the controversial new color transform for the "Lossless SmartScale" format introduced in libjpeg 9. Besides that SmartScale is a non standard format, the chosen implementation introduces an ABI break. Anyhow, SmartScale is not used by ext/gd which is the most important client of libjpeg (I'm not sure if there other extensions which use libjpeg directly). I've pushed libjpeg-turbo to a feature branch in the winlibs repo[3], including the usual winlibs.mak. To build it, NASM or YASM is required. I did not test the latter, though. I also uploaded packages to windows.php.net[4] (libjpeg-turbo-2.1.0-vs16-x(64|86).zip). Whether you build yourself or use the prebuilt packages, you can just unzip into the deps/ folder of your build tree. I've got the same test results for ext/gd/tests with libjpeg-9c and libjpeg-turbo-2.1.0. Thoughts? Objections? [1] [2] [3] [4] =2D- Christoph M. Becker