From patchwork Tue May 2 13:48:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?0JLQsNC70LXQvdGC0LjQvQ==?= X-Patchwork-Id: 13228956 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9CD19C77B73 for ; Tue, 2 May 2023 13:48:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ptqMg-0005az-5x; Tue, 02 May 2023 09:48:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ptqMc-0005am-Ra for qemu-devel@nongnu.org; Tue, 02 May 2023 09:48:18 -0400 Received: from smtp44.i.mail.ru ([95.163.41.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ptqMa-0000zV-AB for qemu-devel@nongnu.org; Tue, 02 May 2023 09:48:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail4; h=Message-Id:Content-Type:MIME-Version:To:From:Subject:Date:From:Subject:Content-Type:Content-Transfer-Encoding:To:Cc; bh=zYsohdUuE+G8BUwhvlZiOOgT2nig/6YSPsIWcppx0f0=; t=1683035296;x=1683125296; b=ozQczmUdOX3MJz8eftbrzn5Pc+i1zHR9zxB+h6GDGRp9iEL+R4tdLS7XBYrH6VnIwizUUy1gPCQzSeFEAxUW3bZpR4Zvkub8lZtksP+mlSdmjA8LDuhxzi0BOOd8LrkIeqkisnxTWuPYdYDOK3NK76+j5YXegHs1MQrbAdEa5PQmJeKCRuF6C4DDv/sUj+1myFG4tRivoPQWANEi7vqVJrBARXPH+kvtBP93XEecgMouxFTtez95HdwBBgZrEdg1ssxbSd2pPkwPr8hBJMVTFlujkYv4vnX626qpq5toubFZMDo4UnG2mc9oV8qCjQ4Vgp/6TmQ855SxD3RdUomjBA==; Received: by smtp44.i.mail.ru with esmtpa (envelope-from ) id 1ptqMT-00HAI8-NC; Tue, 02 May 2023 16:48:10 +0300 SavedFromEmail: val15032008@mail.ru Date: Tue, 02 May 2023 16:48:00 +0300 Subject: Patch for png_save(), QEMU v8.0 Importance: normal To: qemu-devel@nongnu.org MIME-Version: 1.0 Message-Id: Authentication-Results: smtp44.i.mail.ru; auth=pass smtp.auth=val15032008@mail.ru smtp.mailfrom=val15032008@mail.ru X-Mailru-Src: smtp X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9F572AEF33F1BC58518F88292D2C242B62F96DCF8CA795381182A05F538085040C9E71B75D8C2108ABDDD9FB121CC9984021C05385FCFA44A3241450760841F55 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE761F2E2C91B196E27EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637EF59B520676799BC8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8E759492598B4F9DA4EFC44506B09EC086F9789CCF6C18C3F8528715B7D10C86878DA827A17800CE78A0F7C24A37A3D769FA2833FD35BB23D9E625A9149C048EE0AC5B80A05675ACD2CC0D3CB04F14752D2E47CDBA5A96583BD4B6F7A4D31EC0BC014FD901B82EE079FA2833FD35BB23D27C277FBC8AE2E8BCFF48519C1EE79E1A471835C12D1D977C4224003CC836476EB9C4185024447017B076A6E789B0E975F5C1EE8F4F765FC105B7CFE1D613D5E3AA81AA40904B5D9CF19DD082D7633A078D18283394535A93AA81AA40904B5D98AA50765F7900637EC7B922578220031D81D268191BDAD3D3666184CF4C3C14F3FC91FA280E0CE3D1A620F70A64A45A98AA50765F79006372E808ACE2090B5E1725E5C173C3A84C3C5EA940A35A165FF2DBA43225CD8A89FE146BDB823D8AB785E1C53F199C2BB95B5C8C57E37DE458BEDA766A37F9254B7 X-C1DE0DAB: 0D63561A33F958A5AF1C22F265C988CE16E5D2E2028E52EF70936B8C83D98C57F87CCE6106E1FC07E67D4AC08A07B9B0DB8A315C1FF4794DC79554A2A72441328621D336A7BC284946AD531847A6065AE478A468B35FE767BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0ADBF74143AD284FC7177DD89D51EBB7742DC8270968E61249B1004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D34AA13E2DDB906786293BFB2255E7F4B2CB6E9A2DB11F26B7F7B239E6772BAF3CA8439BE9C6834E3EE1D7E09C32AA3244CB4FB14B1EBE8FD150F70F2E1E9D0512D95A9E0DC41E9A4CF729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojUsZxtR84vlfxp804hRZgLw== X-Mailru-Sender: 0A26D9779F8DDEAB3FDA9BCC3991C6D9AFFD9A9CBB85D2E3B48584C44B5D0CB90E3566F52D99C81DC1E3555AB67B8B67C77752E0C033A69ED43EDA0029E7C34DC286A2F9E57D1634B4A721A3011E896F X-Mras: Ok Received-SPF: pass client-ip=95.163.41.82; envelope-from=val15032008@mail.ru; helo=smtp44.i.mail.ru X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: =?utf-8?b?0JLQsNC70LXQvdGC0LjQvQ==?= X-Patchwork-Original-From: =?utf-8?b?0JLQsNC70LXQvdGC0LjQvQ==?= via From: =?utf-8?b?0JLQsNC70LXQvdGC0LjQvQ==?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Hello!  Currently, png_save() in "console.c" uses "PIXMAN_a8r8g8b8" format when saving png.  ( https://gitlab.com/qemu-project/qemu/-/blob/7c18f2d663521f1b31b821a13358ce38075eaf7d/ui/console.c#L314 )  It should probably use "PIXMAN_a8b8g8r8" (red<>blue exchanged). Without it I'm getting PNGs with blue and red channels swapped (QEMU 8.0, qemu-system-x86_64, Arm64 host, libpng 1.6.39).  Steps to reproduce: in QEMU 8.0 console execute "screendump /path/to/screenshot.png -f png".  The patch is in attachment. With best regards, Valentine. diff -ru --no-dereference /tmp/qemu-8.0.0/ui/console.c ./ui/console.c --- /tmp/qemu-8.0.0/ui/console.c 2023-04-19 16:31:47.000000000 +0000 +++ ./ui/console.c 2023-05-02 12:59:02.600469950 +0000 @@ -311,7 +311,7 @@ png_struct *png_ptr; png_info *info_ptr; g_autoptr(pixman_image_t) linebuf = - qemu_pixman_linebuf_create(PIXMAN_a8r8g8b8, width); + qemu_pixman_linebuf_create(PIXMAN_a8b8g8r8, width); uint8_t *buf = (uint8_t *)pixman_image_get_data(linebuf); FILE *f = fdopen(fd, "wb"); int y;