From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?andr=C3=A9s_?= =?UTF-8?Q?ram=C3=ADrez?= Newsgroups: gmane.emacs.bugs Subject: bug#57364: [PATCH] (was: bug#57364: 28.1.91; asynchronous X server error when creating a second frame on alternate DISPLAY) Date: Tue, 30 Aug 2022 07:29:50 +0000 Organization: bien.comun.org Message-ID: References: <87tu624d64.fsf@yahoo.com> <87pmgnu812.fsf@yahoo.com> <874jxzu2et.fsf@yahoo.com> <87tu5zsgns.fsf@yahoo.com> <875yiescwd.fsf@yahoo.com> <874jxur0iu.fsf@yahoo.com> <87h71up62o.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27821"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 57364@debbugs.gnu.org To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Aug 30 09:37:41 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oSvoa-0006wt-MS for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 30 Aug 2022 09:37:40 +0200 Original-Received: from localhost ([::1]:43076 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oSvoZ-0007GQ-4e for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 30 Aug 2022 03:37:39 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oSviB-0003bB-0N for bug-gnu-emacs@gnu.org; Tue, 30 Aug 2022 03:31:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44885) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oSviA-0002y7-IE for bug-gnu-emacs@gnu.org; Tue, 30 Aug 2022 03:31:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oSviA-0005IE-Dm for bug-gnu-emacs@gnu.org; Tue, 30 Aug 2022 03:31:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?andr=C3=A9s_?= =?UTF-8?Q?ram=C3=ADrez?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 30 Aug 2022 07:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 57364 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 57364-submit@debbugs.gnu.org id=B57364.166184461420269 (code B ref 57364); Tue, 30 Aug 2022 07:31:02 +0000 Original-Received: (at 57364) by debbugs.gnu.org; 30 Aug 2022 07:30:14 +0000 Original-Received: from localhost ([127.0.0.1]:34634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oSvhN-0005Go-Pt for submit@debbugs.gnu.org; Tue, 30 Aug 2022 03:30:14 -0400 Original-Received: from mail-dm6nam11olkn2073.outbound.protection.outlook.com ([40.92.19.73]:9743 helo=NAM11-DM6-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oSvhH-0005EX-4q for 57364@debbugs.gnu.org; Tue, 30 Aug 2022 03:30:11 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cM6BM66oBYWzzPZZ95hr9FgksjprioggybhkNVtDFcI7OraGLXfDOmoSoMTCo/7k5yeW1NGHTxeSKfk/Au6XlFjJZ2qjcGh9WyY7HeY9a4m/hdYO5O55hBcIs9MFw8JGeZJgQH+1YdPhm75nRCigTU3Z6aS6piuVm5/5i/cnCZhCBrFSjaxKNRdTOMY6qLuo1mhL55hX1f1Z/OnUMf90tF/T/ixIgEJNsV2klgJV/Z7aDk9htTXLQSf6Qwc6pXUVIw4miKP0Y+vq/ZBPRSoMCskYntp632D4eS27h/Fln4JWJd6bHHXXbn56Zdg+lg0+9dccG78B1azUdkSfgCsACQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YxIFDTm/enmWP1mGYAp8NLUgejSQXr6gkFHMd+b+OPc=; b=IHABv74nP7BWNLoNnnzSZwS89jmbL1FfwyGqV3KvZjd6S7PHRH6ikkzQ/2jBL+ApP0+GGBInZkrO8KOmgolYMwowLGNtTW6gu/DPX9IFFyTxPXj2AOxSYT4KMvRPtZr9xY/brjWVe3tUgyhDhPkMvZdD9a9mugpukTgap1fQl5xLusLAyH7Jv2X7KpD9yjp9z3l+vn/F0veV058nyKKmq1Mh12qsrRk96Sbhp9Zb98EsS76OcIi81d4w5Aem6NGMX18mEkFCtEFXjebzTsjfGRYVpVKkxAuEVes9M/vuuLRtdU80FkB7caa0XI4d/fBrhWBxbn2RMfstOmURB50frg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YxIFDTm/enmWP1mGYAp8NLUgejSQXr6gkFHMd+b+OPc=; b=LU8R4pcpl8a4XyUsiHOa50GRyxmR0j61i62LuG1IPBQf5KZ/qLjCY/5geeBurId2TV2oRN5fuUKpf7bkHhFRbhVjbyu5Z1QD2BLUzrNnh6tvm+I0a4LMPTlFrUFZYz/GsYjerbpl52Ta+nn5KWRgjPGs7NqtHdjkRpWzWrRyuG3FCyg+yfWgETKX2DThMvEp0od8jm7B8z4WPT5JHujD4e4zxHGcz4qqQxwGv4vVum5yyp7UooQ1dPPEXHSn14GAh7mq2yGmaQoJwJbmRsyeJQ16Dn5P6x+PCQCK1Vq92qOfLwTwiKvFn8KrsdFeBnanioGvWSNGBrS6kzJucMgdpQ== Original-Received: from SJ1PR12MB6363.namprd12.prod.outlook.com (2603:10b6:a03:453::9) by MW4PR12MB6803.namprd12.prod.outlook.com (2603:10b6:303:20e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Tue, 30 Aug 2022 07:30:00 +0000 Original-Received: from SJ1PR12MB6363.namprd12.prod.outlook.com ([fe80::21f6:c272:eae0:bf6]) by SJ1PR12MB6363.namprd12.prod.outlook.com ([fe80::21f6:c272:eae0:bf6%9]) with mapi id 15.20.5504.028; Tue, 30 Aug 2022 07:30:00 +0000 In-Reply-To: <87h71up62o.fsf@yahoo.com> X-Attribution: INKA X-TMN: [8NMfym2Y+e8gv7ZolslENZwtn5I02L39] X-ClientProxiedBy: SC1P215CA0048.LAMP215.PROD.OUTLOOK.COM (2603:10d6:4:41::34) To SJ1PR12MB6363.namprd12.prod.outlook.com (2603:10b6:a03:453::9) X-Microsoft-Original-Message-ID: <867d2qdw9d.fsf@hotmail.com> X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0b9bca2f-731d-48d3-a731-08da8a597205 X-MS-TrafficTypeDiagnostic: MW4PR12MB6803:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TIrZ9qparhlFcQF3XHp4Lzw6oLz6dqiN308FnoTTNeK7vhmOmbQanzHUQF02dLD8oA49rdtCrCJwAhCODuZew+Xzks3+SzAZgUQENt/0Y03lxS965KKInL9/brrufmwYynq79gjEAxd1IGFpJRWD4wccwZ0Fhbw4bPabS08Fy50eIcdPeaC6pinFRkE2Lr2PBBw1uhOqK92v3fYvtX3dMBSq8IF8fDczmMebqthd0iMDzkoKRgNAZuKQsln1L/mk8c26yET6vV7lU3jshMlcUeYz3LlitFyjz1wnYvCeR47IayoeMMhFgWJyRjN/elwyb4N/JRad/3s1bIADFsCnH2WDGE6d0Tce+TCveQj6SuCKXTO71A3+K21LTTJBj55dWCj4sMOhzbtxI8xRNRvxT7BsRC4o5ZKQyebtv18QHQJvBPcl8ewFKdoH/Mym1ktWMS5yACAzrCUzkASpi3ZAdbdDJdSo55877viiyscpML8Z3VXIhuZD8UDsUK8X9zTypNGDGgf18i2y6JU+QVWq2evc7r4VUym772NXfUwfFY9gJQGqnQ7yT7FPleq9I84qRjlvjvt5DRNE1rpxzVReORFPM0RXidmpeJtJ3wFos1qsJZEE3ns0vC+y77PioLDM9M/oebhBWP9JLfHQryXOMg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dZYamh/Fw7tulYXB9kgUrngFEsROd5NsCRyaBiJTdpzar8J4kHGv9YHJovtY9NkiBpcAYmaKq2HkMEzi0QwD7L+awZY2wgn9JlNdjBSpZc2GwpeTn52zJcR60GkKQS19cjsEoISSOtcnYrXXCF1wgNQ9z5idU17rBgJxDkaxHSIAhhmdDwj9siRUJR8m7dDFukgoDVQ4yPjN90ruK4Mdave5+pMP0D80H31qP4E7vkyflzRQ8b7uiectLIVwTXu646XNydt17j75nqrljVtnr6GCrYyEPNiAIy60/K9vBZ7PS+Vj8Q0ZCmnRoYCu9ujGohJVju6FcgoY5dvs2Z8sNvb77z9Xdtbtuda2yJGVrXG0pWIvXTQ1pnQz4NE7yc0P+KdzrZhJkWpsOwe1pEDFcvNaE5NX1lGcpF2HyCBywPPDiRbTXRRrk656XBnH/JoMXDIfHhRH4vKYDhzPqUsEXCirUH8LfxXkShtyxdgrSbMhIsGL1vBo4gXJGmaazMVXCgOz1MZwOJCFXHgORitvLLDJYlUDytQ6wfHMtrCQBdtw4wguZrf58RKsjWlDvE/CKLAFXW/b4zcJNvozB+ZFyiSdjibcNvCx17X1gR/Ku6pDhA0nOFa4jMpwIMUfn6t9TVyvA2GV5ze+SEHLWCC27L4ReRuhjxNRdn4LfHShfaYbPXhgb66O0AQr/hyF4NKNhuP9pIw+ZKQz4Wv+Ojlf1MRbwVTwlyoJCvHwn/yAZTT86kGQYjQUPNVWa7 PCGi5ThZRpDdmcQ3M0QqQh04aFWcaonOS+MnaY7tbeUDlv8YNVAoRA/D4vGjCJsZR5lk73OpVbloJ7oFC6dgMfEbps5DNmxwSh X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-71ea3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 0b9bca2f-731d-48d3-a731-08da8a597205 X-MS-Exchange-CrossTenant-AuthSource: SJ1PR12MB6363.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2022 07:29:59.9790 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6803 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:241087 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi. Po. >>>>> "Po" =3D=3D Po Lu writes: Po> andr=C3=A9s ram=C3=ADrez writes: [...] Po> We already know it's cairo-side, since it goes away upon switching = Cairo backends, and Emacs Po> doesn't make RenderFreeGlyphs requests itself. Ok. Should we let the cairo guys know about it. For giving them the opportunity of fixing it?. Po> That's unnecessary, since the Cairo XCB surface is present everywhe= re. I'd rather put a Po> mention of the crash in etc/PROBLEMS for Emacs 28. Are You going to apply the patch? --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=patch_cairo_xcb_for_28.2.patch Content-Description: the_patch --- /tmp/emacs-28.1.91/configure.ac.bak 2022-08-01 06:29:22.000000000 -0500 +++ /tmp/emacs-28.1.91/configure.ac 2022-08-30 00:53:07.706555433 -0500 @@ -3320,6 +3320,13 @@ CAIRO_MODULE="cairo >= $CAIRO_REQUIRED" EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE) if test $HAVE_CAIRO = yes; then + CAIRO_XCB_MODULE="cairo-xcb >= $CAIRO_REQUIRED" + EMACS_CHECK_MODULES(CAIRO_XCB, $CAIRO_XCB_MODULE) + if test $HAVE_CAIRO_XCB = yes; then + CAIRO_CFLAGS="$CAIRO_CFLAGS $CAIRO_XCB_CFLAGS" + CAIRO_LIBS="$CAIRO_LIBS $CAIRO_XCB_LIBS" + AC_DEFINE(USE_CAIRO_XCB, 1, [Define to 1 if cairo XCB surfaces are available.]) + fi AC_DEFINE(USE_CAIRO, 1, [Define to 1 if using cairo.]) CFLAGS="$CFLAGS $CAIRO_CFLAGS" LIBS="$LIBS $CAIRO_LIBS" --- /tmp/emacs-28.1.91/src/xterm.h.bak 2022-08-01 06:29:23.000000000 -0500 +++ /tmp/emacs-28.1.91/src/xterm.h 2022-08-30 01:14:37.623171629 -0500 @@ -78,6 +78,9 @@ #ifdef CAIRO_HAS_SVG_SURFACE #include #endif +#ifdef USE_CAIRO_XCB +#include +#endif #endif #ifdef HAVE_X_I18N @@ -469,6 +472,7 @@ #ifdef USE_XCB xcb_connection_t *xcb_connection; + xcb_visualtype_t *xcb_visual; #endif #ifdef HAVE_XDBE diff -u /tmp/emacs-28.1.91/src/xterm.c.bak /tmp/emacs-28.1.91/src/xterm.c --- /tmp/emacs-28.1.91/src/xterm.c.bak 2022-08-01 06:29:23.000000000 -0500 +++ /tmp/emacs-28.1.91/src/xterm.c 2022-08-30 01:11:39.213178617 -0500 @@ -33,6 +33,10 @@ #include "xterm.h" #include +#ifdef USE_XCB +#include +#endif + /* If we have Xfixes extension, use it for pointer blanking. */ #ifdef HAVE_XFIXES #include @@ -132,6 +136,10 @@ #include #endif +#if defined USE_XCB && defined USE_CAIRO_XCB +#define USE_CAIRO_XCB_SURFACE +#endif + /* Default to using XIM if available. */ #ifdef USE_XIM bool use_xim = true; @@ -385,11 +393,20 @@ { int width = FRAME_CR_SURFACE_DESIRED_WIDTH (f); int height = FRAME_CR_SURFACE_DESIRED_HEIGHT (f); - cairo_surface_t *surface - = cairo_xlib_surface_create (FRAME_X_DISPLAY (f), - FRAME_X_RAW_DRAWABLE (f), - FRAME_X_VISUAL (f), - width, height); + cairo_surface_t *surface; + +#ifdef USE_CAIRO_XCB_SURFACE + if (FRAME_DISPLAY_INFO (f)->xcb_visual) + surface = cairo_xcb_surface_create (FRAME_DISPLAY_INFO (f)->xcb_connection, + (xcb_drawable_t) FRAME_X_RAW_DRAWABLE (f), + FRAME_DISPLAY_INFO (f)->xcb_visual, + width, height); + else +#endif + surface = cairo_xlib_surface_create (FRAME_X_DISPLAY (f), + FRAME_X_RAW_DRAWABLE (f), + FRAME_X_VISUAL (f), + width, height); cr = FRAME_CR_CONTEXT (f) = cairo_create (surface); cairo_surface_destroy (surface); @@ -458,6 +475,10 @@ switch (cairo_surface_get_type (surface)) { case CAIRO_SURFACE_TYPE_XLIB: +#ifdef USE_CAIRO_XCB_SURFACE + case CAIRO_SURFACE_TYPE_XCB: +#endif + cairo_surface_flush (surface); return true; @@ -4436,6 +4457,19 @@ x, to_y); cairo_surface_mark_dirty_rectangle (surface, x, to_y, width, height); } +#ifdef USE_CAIRO_XCB_SURFACE + else if (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_XCB) + { + cairo_surface_flush (surface); + xcb_copy_area (FRAME_DISPLAY_INFO (f)->xcb_connection, + (xcb_drawable_t) FRAME_X_DRAWABLE (f), + (xcb_drawable_t) FRAME_X_DRAWABLE (f), + (xcb_gcontext_t) XGContextFromGC (f->output_data.x->normal_gc), + x, from_y, x, to_y, width, height); + cairo_surface_mark_dirty_rectangle (surface, x, to_y, width, height); + } +#endif + else { cairo_surface_t *s @@ -13062,6 +13096,40 @@ dpyinfo->supports_xdbe = true; #endif +#ifdef USE_XCB + xcb_screen_t *xcb_screen = NULL; + xcb_screen_iterator_t iter; + xcb_visualid_t wanted = { XVisualIDFromVisual (dpyinfo->visual) }; + xcb_depth_iterator_t depth_iter; + xcb_visualtype_iterator_t visual_iter; + + int screen = DefaultScreen (dpyinfo->display); + + iter = xcb_setup_roots_iterator (xcb_get_setup (dpyinfo->xcb_connection)); + for (; iter.rem; --screen, xcb_screen_next (&iter)) + { + if (!screen) + xcb_screen = iter.data; + } + + if (xcb_screen) + { + depth_iter = xcb_screen_allowed_depths_iterator (xcb_screen); + for (; depth_iter.rem; xcb_depth_next (&depth_iter)) + { + visual_iter = xcb_depth_visuals_iterator (depth_iter.data); + for (; visual_iter.rem; xcb_visualtype_next (&visual_iter)) + { + if (wanted == visual_iter.data->visual_id) + { + dpyinfo->xcb_visual = visual_iter.data; + break; + } + } + } + } +#endif + #if defined USE_CAIRO || defined HAVE_XFT { /* If we are using Xft, the following precautions should be made: Diff finished. Tue Aug 30 01:36:19 2022 Diff finished. Tue Aug 30 01:36:19 2022 Diff finished. Tue Aug 30 01:36:20 2022 --=-=-= Content-Type: text/plain Best Regards --=-=-=--