Bug 38482

Summary: [bisected] cairo-perf-trace crashes on xcb backend with some traces
Product: cairo Reporter: meng <mengmeng.meng>
Component: xcb backendAssignee: Uli Schlachter <psychon>
Status: VERIFIED FIXED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: medium CC: bo.b.wang
Version: 1.10.3   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: The head 5000 for xtrace test
The tail 5000 for xtrace test

Description meng 2011-06-19 19:31:14 UTC
System Environment:
--------------------------
Platform:  Piketon,HuronRiver
Libdrm:   (master)2.4.26
Mesa:     (master)dd3b812962a8720aca0a80bf6ea35f70319d3ca1
Xserver:  (master)xorg-server-1.10.99.901-38-g778309fd0ef6b586468c1a3b569e3548503459ee
Cairo:    (master)ced061124d0b402c5ce471ce04e9a936dc46da94
Libva:    (master)0f52ab9f582526c2d462fed6f09d0a0a007327ad
Kernel:   (drm-intel-next) a18711120764dd96ed2ee6a4d436c448542bad77

Bug detailed description:
-------------------------
crash:cairo-perf-trace crashes on xcb backend with some traces on Piketon and HuronRiver.It's Cariro regression.
By bisected,63bdae27a83381fb8c3786c2d7a6c2592e388ee9 is the first bad commit.

In consloe:
[  0]      xcb            firefox-talos-gfx Detected error during xcb run: 2 major=148, minor=5
lt-cairo-perf-trace: cairo-boilerplate-xcb.c:136: _cairo_boilerplate_xcb_synchronize: Assertion `status == CAIRO_STATUS_SUCCESS' failed.

some traces:
firefox-planet-gnome
firefox-talos-gfx
firefox-talos-svg
gnome-system-monitor
midori-zoomed
poppler

63bdae27a83381fb8c3786c2d7a6c2592e388ee9 is the first bad commit
commit 63bdae27a83381fb8c3786c2d7a6c2592e388ee9
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 27 15:59:37 2011 +0100

    xlib,xcb: Force strict adherence to the Render specification when testing

    Introduce cairo_xlib_device_debug_set_precision() to override the
    automatic selection of rendering precision and force the Xorg/DDX to
    strictly adhere to the precise rendering mode of the Render
    specification. This allows us to test drivers without worrying, too
    much, about minor discrepancies in antialiasing.

    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>


Reproduce steps:
----------------
1 xinit&
2 ./cairo-perf-trace firefox-talos-gfx.trace
Comment 1 Uli Schlachter 2011-06-23 13:40:57 UTC
Can't reproduce with cairo 441f9c5037dd32464bd87e21108b702c0a3c508a on current debian testing.

However, printf tells me that surface->precision is never initialized and while we are at it, this should use the XCB_RENDER_POLY_MODE_{IM,}PRECISE defines.

Could you perhaps get an xtrace of the test? (http://xtrace.alioth.debian.org)
Comment 2 meng 2011-06-24 00:55:12 UTC
(In reply to comment #1)
Test cairo 441f9c on HuronRiver,the problem still exists.
Because of the xtrace of the test is too big,I head -5000 and tail -5000 for the xtrace.
Comment 3 meng 2011-06-24 00:56:37 UTC
Created attachment 48368 [details]
The head 5000 for xtrace test
Comment 4 meng 2011-06-24 00:59:24 UTC
Created attachment 48369 [details]
The tail 5000 for xtrace test
Comment 5 Uli Schlachter 2011-06-24 07:04:18 UTC
Ouch. Not only surface->precision is uninitialized (which isn't that bad), connection->force_precision isn't initialized either. I guess I were just lucky that that field contained 0 while you were hit by a value of 0x60.

Could you test if this commit fixes the problem?
Thanks for finding and reporting.

commit 144c912860af6e60e1bdbeee31fe686c9c5e550d
Author: Uli Schlachter <psychon@znc.in>
Date:   Fri Jun 24 15:52:59 2011 +0200

    xcb: Initialize the new precision fields
    
    In 63bdae27a83, new fields were added to cairo_xcb_connection_t and
    cairo_xcb_surface_t. The same change was done in the xlib backend.
    
    However, in the xlib backend these new fields were properly initialized. This
    was forgotten in the xcb backend.
    
    Hopefully-Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=38482
    
    Signed-off-by: Uli Schlachter <psychon@znc.in>
Comment 6 meng 2011-06-26 17:56:00 UTC
Test with commit 144c912860af6e60e1bdbeee31fe686c9c5e550d,it works fine.
Comment 7 meng 2011-07-01 01:31:20 UTC
Verified with cairo(master)ea645913ba8739377ee2e2b51480310befc19b76, it works fine.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.