Hello community, here is the log from the commit of package xf86-video-intel for openSUSE:Factory checked in at 2016-03-09 15:16:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xf86-video-intel (Old) and /work/SRC/openSUSE:Factory/.xf86-video-intel.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-intel" Changes: -------- --- /work/SRC/openSUSE:Factory/xf86-video-intel/xf86-video-intel.changes 2016-02-22 08:56:30.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.xf86-video-intel.new/xf86-video-intel.changes 2016-03-09 15:16:02.000000000 +0100 @@ -1,0 +2,7 @@ +Mon Feb 29 06:47:52 UTC 2016 - e...@suse.com + +- U_tools-intel-virtual-output-Check-for-DRI3-more-carefully.patch + Fix intel intel-virtual-output: check more carefully for DRI3 + (boo#968598). + +------------------------------------------------------------------- New: ---- U_tools-intel-virtual-output-Check-for-DRI3-more-carefully.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xf86-video-intel.spec ++++++ --- /var/tmp/diff_new_pack.0aShRM/_old 2016-03-09 15:16:03.000000000 +0100 +++ /var/tmp/diff_new_pack.0aShRM/_new 2016-03-09 15:16:03.000000000 +0100 @@ -37,6 +37,7 @@ Patch2: u_uxa-fix-missing-includes-for-fstat.patch Patch10: U_uxa_fix_the_call_to_PixmapSyncDirtyHelper_broken_by_xservers_90db5ed.patch Patch11: U_gen8-Fix-the-YUV-RGB-shader.patch +Patch12: U_tools-intel-virtual-output-Check-for-DRI3-more-carefully.patch %if %glamor Requires: glamor %endif @@ -112,6 +113,7 @@ %patch2 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -p1 %build ### --enable-dri3 \ ++++++ U_tools-intel-virtual-output-Check-for-DRI3-more-carefully.patch ++++++ From: Chris Wilson <ch...@chris-wilson.co.uk> Date: Mon Feb 16 21:37:35 2015 +0000 Subject: [PATCH]tools/intel-virtual-output: Check for DRI3 more carefully Patch-mainline: 127aae5a72a69df325fed0b63d345e81583d5ca1 Git-repo: git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel References: bsc#968598 Signed-off-by: Egbert Eich <e...@suse.com> Using xcb, we cannot simply call xcb_dri3_query_version() without it terminating the connection if DRI3 is not enabled on the target display. Oops. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89172 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- tools/virtual.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/virtual.c b/tools/virtual.c index 8e2b4a2..3bcd057 100644 --- a/tools/virtual.c +++ b/tools/virtual.c @@ -218,6 +218,13 @@ static inline XRRScreenResources *_XRRGetScreenResourcesCurrent(Display *dpy, Wi static int _x_error_occurred; static int +_io_error_handler(Display *display) +{ + fprintf(stderr, "XIO error on display %s\n", DisplayString(display)); + abort(); +} + +static int _check_error_handler(Display *display, XErrorEvent *event) { @@ -320,6 +327,7 @@ can_use_shm(Display *dpy, #include <X11/Xlib-xcb.h> #include <X11/xshmfence.h> #include <xcb/xcb.h> +#include <xcb/xcbext.h> #include <xcb/dri3.h> #include <xcb/sync.h> static Pixmap dri3_create_pixmap(Display *dpy, @@ -357,6 +365,7 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) { xcb_connection_t *c = XGetXCBConnection(dpy); xcb_dri3_query_version_reply_t *reply; + xcb_generic_error_t *error; *major = *minor = -1; @@ -364,7 +373,8 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) xcb_dri3_query_version(c, XCB_DRI3_MAJOR_VERSION, XCB_DRI3_MINOR_VERSION), - NULL); + &error); + free(error); if (reply == NULL) return -1; @@ -377,8 +387,14 @@ static int dri3_query_version(Display *dpy, int *major, int *minor) static int dri3_exists(Display *dpy) { + xcb_extension_t dri3 = { "DRI3", 0 }; + const xcb_query_extension_reply_t *ext; int major, minor; + ext = xcb_get_extension_data(XGetXCBConnection(dpy), &dri3); + if (ext == NULL || !ext->present) + return 0; + if (dri3_query_version(dpy, &major, &minor) < 0) return 0; @@ -3228,6 +3244,7 @@ int main(int argc, char **argv) return -ret; XSetErrorHandler(_check_error_handler); + XSetIOErrorHandler(_io_error_handler); ret = add_fd(&ctx, display_open(&ctx, src_name)); if (ret) {