pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

xf86-video-intel-dfbsd: Update wip/xf86-video-intel-dfbsd to 6afed33b2d67



Module Name:	pkgsrc-wip
Committed By:	David Shao <davshao%gmail.com@localhost>
Pushed By:	dshao
Date:		Mon Jul 22 22:31:05 2019 -0700
Changeset:	b52d9fefae19ea1c0a5d233a20a1dc83b543471b

Modified Files:
	xf86-video-intel-dfbsd/DESCR
	xf86-video-intel-dfbsd/Makefile
	xf86-video-intel-dfbsd/PLIST
	xf86-video-intel-dfbsd/distinfo
	xf86-video-intel-dfbsd/patches/patch-src_intel__list.h
	xf86-video-intel-dfbsd/patches/patch-src_sna_kgem.c
Added Files:
	xf86-video-intel-dfbsd/patches/patch-src_compat-api.h
	xf86-video-intel-dfbsd/patches/patch-src_legacy_i810_i810__dri.c
	xf86-video-intel-dfbsd/patches/patch-src_sna_sna.h
	xf86-video-intel-dfbsd/patches/patch-src_uxa_intel__display.c

Log Message:
xf86-video-intel-dfbsd: Update wip/xf86-video-intel-dfbsd to 6afed33b2d67

Changes:
* Still at 2019-03-01 sna: Switch back to hwcursor on the next cursor update
* Knobs for patches from NetBSD xsrc
* uxa default on NetBSD

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=b52d9fefae19ea1c0a5d233a20a1dc83b543471b

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 xf86-video-intel-dfbsd/DESCR                       | 12 ++++
 xf86-video-intel-dfbsd/Makefile                    | 83 +++++++++++++++++++---
 xf86-video-intel-dfbsd/PLIST                       |  6 +-
 xf86-video-intel-dfbsd/distinfo                    | 10 ++-
 .../patches/patch-src_compat-api.h                 | 28 ++++++++
 .../patches/patch-src_intel__list.h                | 52 +++++++++-----
 .../patches/patch-src_legacy_i810_i810__dri.c      | 33 +++++++++
 .../patches/patch-src_sna_kgem.c                   | 10 +--
 xf86-video-intel-dfbsd/patches/patch-src_sna_sna.h | 27 +++++++
 .../patches/patch-src_uxa_intel__display.c         | 20 ++++++
 10 files changed, 240 insertions(+), 41 deletions(-)

diffs:
diff --git a/xf86-video-intel-dfbsd/DESCR b/xf86-video-intel-dfbsd/DESCR
index 08dab8f7da..bb729eafa1 100644
--- a/xf86-video-intel-dfbsd/DESCR
+++ b/xf86-video-intel-dfbsd/DESCR
@@ -1 +1,13 @@
 This is the video driver for Intel cards for the modular Xorg server.
+Support hardware includes the following chipsets:
+  - i810, i810-dc100, i810e
+  - i815
+  - i830
+  - i845
+  - i852
+  - i855
+  - i915
+  - i945
+  - i965
+
+An older version of the Intel driver is available in x11/xf86-video-i810.
diff --git a/xf86-video-intel-dfbsd/Makefile b/xf86-video-intel-dfbsd/Makefile
index 9388142fa3..ecbfd4fc28 100644
--- a/xf86-video-intel-dfbsd/Makefile
+++ b/xf86-video-intel-dfbsd/Makefile
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.40 2018/03/07 11:57:43 wiz Exp $
+# $NetBSD: Makefile,v 1.41 2018/05/15 10:50:19 wiz Exp $
 
-# Use the commit id to obtain a snapshot of the form:
+# Use the commit id to obtain a snapshot of the form: 
 # http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/snapshot/xf86-video-intel-78d7a09b0343829c81257024b164b0b3764392ac.tar.xz
 
 # 2019-03-01 sna: Switch back to hwcursor on the next cursor update
@@ -13,7 +13,7 @@ COMMIT_ID=	6afed33b2d673d88674f0c76efe500ae414e8e1b
 # COMMIT_ID=	33ee0c3b21ea279e08d0863fcb2e874f0974b00e
 
 # 2019-01-10 sna: Switch off old outputs on topology changes
-# COMMIT_ID=	c37c7ee0748ba828ec5d2c7304cd2a17af2c8109
+# COMMIT_ID=	c37c7ee0748ba828ec5d2c7304cd2a17af2c8109	
 
 # 2018-05-12 configure: Set DRI1 to autodiscover
 # COMMIT_ID=	359477215092ac1b602ad1e2f17a28963d9224c2
@@ -24,12 +24,14 @@ COMMIT_ID=	6afed33b2d673d88674f0c76efe500ae414e8e1b
 # 2017-02-28 intel: Fix checking xf86LoadKernelModule for success
 # COMMIT_ID=	78d7a09b0343829c81257024b164b0b3764392ac
 
+# DISTNAME=	xf86-video-intel-2.99.917
 PORTNAME=	xf86-video-intel
-
 DISTNAME=	${PORTNAME}-${COMMIT_ID}
 PKGNAME=	${PORTNAME}-2.99.917
 PKGREVISION=	7
 CATEGORIES=	x11
+# MASTER_SITES=	${MASTER_SITE_XORG:=driver/}
+# EXTRACT_SUFX=	.tar.bz2
 MASTER_SITES=	http://cgit.freedesktop.org/xorg/driver/${PORTNAME}/snapshot/
 EXTRACT_SUFX=	.tar.xz
 
@@ -53,7 +55,7 @@ CONFIGURE_ENV.SunOS+=	DRIVER_MAN_SUFFIX=4
 CONFIGURE_ENV.DragonFly+=	xorg_cv_cc_flag__Wno_maybe_uninitialized=no
 
 # DragonFly version 4.6-RELEASE, maybe other versions prior to 4.7
-# need -D_WITH_GETLINE=1 according to:
+# need -D_WITH_GETLINE=1 according to: 
 # https://github.com/DragonFlyBSD/DPorts/issues/184
 # FreeBSD ports now patches files individually.
 # CFLAGS.FreeBSD+=		-D_WITH_GETLINE=1
@@ -71,9 +73,14 @@ SUBST_SED.jmp_buf=		-e 's@[[:<:]]jmp_buf[[:>:]]@sigjmp_buf@g'
 .endif
 
 PKG_OPTIONS_VAR=	PKG_OPTIONS.xf86-video-intel
-PKG_SUPPORTED_OPTIONS=	uxa dri3 debug
+PKG_SUPPORTED_OPTIONS=	uxa dri3 debug xvmc
 PKG_SUPPORTED_OPTIONS+=	set_dbg_no_unsynchronized_userptr
 PKG_SUPPORTED_OPTIONS+=	set_dbg_no_llc
+PKG_SUPPORTED_OPTIONS+= list_h_xserver
+PKG_SUPPORTED_OPTIONS+= kgem_null_bo
+PKG_SUPPORTED_OPTIONS+= handler_xsrc_netbsd
+PKG_SUPPORTED_OPTIONS+= reset_cursor_xsrc_netbsd
+PKG_SUPPORTED_OPTIONS+= strict_xsrc_netbsd
 PKG_SUGGESTED_OPTIONS=
 # PKG_SUGGESTED_OPTIONS+=	set_dbg_no_unsynchronized_userptr
 # PKG_SUGGESTED_OPTIONS+=	set_dbg_no_llc
@@ -81,16 +88,48 @@ PKG_SUGGESTED_OPTIONS=
 CONFIGURE_ARGS.FreeBSD+=	--disable-udev
 
 .if ${OPSYS} == "FreeBSD"
-# PKG_SUGGESTED_OPTIONS+=	uxa
+PKG_SUGGESTED_OPTIONS+=	uxa
 PKG_SUGGESTED_OPTIONS+=	set_dbg_no_unsynchronized_userptr
 .endif
 
+.if ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+=	uxa
+.endif
+
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= xvmc
+.endif
+
 .if ${OPSYS} == "DragonFly"
 PKG_SUGGESTED_OPTIONS+=	set_dbg_no_llc
 .endif
 
+# Sync list.h definitions with xorg server, presumably safer.
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= list_h_xserver
+.endif
+
+# bo object possibly null in kgem.c
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= kgem_null_bo
+.endif
+
+# .if ${OPSYS} == "NetBSD"
+# PKG_SUGGESTED_OPTIONS+= handler_xsrc_netbsd
+# .endif
+
+# .if ${OPSYS} == "NetBSD"
+# PKG_SUGGESTED_OPTIONS+= reset_cursor_xsrc_netbsd
+# .endif
+
+.if ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= strict_xsrc_netbsd
+.endif
+
 .include "../../mk/bsd.options.mk"
 
+PLIST_VARS+=	xvmc
+
 .if !empty(PKG_OPTIONS:Muxa)
 CONFIGURE_ARGS+=	--with-default-accel=uxa
 .endif
@@ -109,6 +148,12 @@ CFLAGS+=		-O0 -g3
 CONFIGURE_ARGS+=	--enable-debug
 .endif
 
+.if !empty(PKG_OPTIONS:Mxvmc)
+# Seems required for actual xvmc support
+.include "../../x11/xcb-util/buildlink3.mk"
+PLIST.xvmc=		yes
+.endif
+
 .if !empty(PKG_OPTIONS:Mset_dbg_no_unsynchronized_userptr)
 CPPFLAGS+=	-DSET_DBG_NO_UNSYNCHRONIZED_USERPTR
 .endif
@@ -117,6 +162,26 @@ CPPFLAGS+=	-DSET_DBG_NO_UNSYNCHRONIZED_USERPTR
 CPPFLAGS+=	-DSET_DBG_NO_LLC
 .endif
 
+.if !empty(PKG_OPTIONS:Mlist_h_xserver)
+CPPFLAGS+=	-DLIST_H_XSERVER
+.endif
+
+.if !empty(PKG_OPTIONS:Mkgem_null_bo)
+CPPFLAGS+=	-DKGEM_NULL_BO
+.endif
+
+.if !empty(PKG_OPTIONS:Mhandler_xsrc_netbsd)
+CPPFLAGS+=	-DHANDLER_XSRC_NETBSD
+.endif
+
+.if !empty(PKG_OPTIONS:Mreset_cursor_xsrc_netbsd)
+CPPFLAGS+=	-DRESET_CURSOR_XSRC_NETBSD
+.endif
+
+.if !empty(PKG_OPTIONS:Mstrict_xsrc_netbsd)
+CPPFLAGS+=	-DSTRICT_XSRC_NETBSD
+.endif
+
 pre-configure:
 	cd ${WRKSRC} && autoreconf -vif
 
@@ -127,8 +192,4 @@ BUILDLINK_API_DEPENDS.libdrm+=	libdrm>=2.4.7
 .include "../../x11/libdrm/buildlink3.mk"
 .include "../../x11/xorgproto/buildlink3.mk"
 .include "../../mk/pthread.buildlink3.mk"
-
-# Seems required for actual xvmc support
-.include "../../x11/xcb-util/buildlink3.mk"
-
 .include "../../mk/bsd.pkg.mk"
diff --git a/xf86-video-intel-dfbsd/PLIST b/xf86-video-intel-dfbsd/PLIST
index 867a2ac72c..193adcb7c1 100644
--- a/xf86-video-intel-dfbsd/PLIST
+++ b/xf86-video-intel-dfbsd/PLIST
@@ -1,5 +1,5 @@
-@comment $NetBSD: PLIST,v 1.1 2015/04/01 13:11:38 tnn2 Exp $
-lib/libI810XvMC.la
-lib/libIntelXvMC.la
+@comment $NetBSD: PLIST,v 1.4 2013/05/16 06:16:50 richard Exp $
+${PLIST.xvmc}lib/libI810XvMC.la
+${PLIST.xvmc}lib/libIntelXvMC.la
 lib/xorg/modules/drivers/intel_drv.la
 man/man4/intel.4
diff --git a/xf86-video-intel-dfbsd/distinfo b/xf86-video-intel-dfbsd/distinfo
index e2e3901dcb..3b0c34c1e2 100644
--- a/xf86-video-intel-dfbsd/distinfo
+++ b/xf86-video-intel-dfbsd/distinfo
@@ -1,11 +1,15 @@
-$NetBSD: distinfo,v 1.1 2015/04/01 13:11:38 tnn2 Exp $
+$NetBSD: distinfo,v 1.29 2018/05/15 10:50:19 wiz Exp $
 
 SHA1 (xf86-video-intel-6afed33b2d673d88674f0c76efe500ae414e8e1b.tar.xz) = acec51bc49102bd071ebd1ffd14eb4730dc4cdc2
 RMD160 (xf86-video-intel-6afed33b2d673d88674f0c76efe500ae414e8e1b.tar.xz) = bee1e0526fb569a5942e45cacb962d7d81604a6a
 SHA512 (xf86-video-intel-6afed33b2d673d88674f0c76efe500ae414e8e1b.tar.xz) = 37572630196ee124097ffbfcd6f0e77c9701ff46154a213a6a0778cd1ca4f42fe9da598e948bc167eac6af3ef8097c101f39b1569b3141fb7e0dd0e1997955df
 Size (xf86-video-intel-6afed33b2d673d88674f0c76efe500ae414e8e1b.tar.xz) = 955096 bytes
+SHA1 (patch-src_compat-api.h) = 286fa9a7a17b9b81e07a0b90faf1976b0bbf2c3b
 SHA1 (patch-src_intel__device.c) = b0a1f775d3e66605e9a1d94745bc4f7a1fba179e
-SHA1 (patch-src_intel__list.h) = 98ba59c22bc7109f95666291ca1aac19189999aa
-SHA1 (patch-src_sna_kgem.c) = 57341a2fba5cabe70b20a4a0b2699e655e2d61d7
+SHA1 (patch-src_intel__list.h) = 505686bd97aa64ddea6654f2eb8eeb16f61f4610
+SHA1 (patch-src_legacy_i810_i810__dri.c) = fb963b994d51c9db48457106048226214a2d986c
+SHA1 (patch-src_sna_kgem.c) = 6ba0cd66f8172d6e57587da1002b87b2c10a3dad
+SHA1 (patch-src_sna_sna.h) = e72d55022089d66df785bd572b8266b70aa0f5e0
 SHA1 (patch-src_sna_sna__threads.c) = 54a3bd0de878009335f08b3f41812540a72f5d4d
 SHA1 (patch-src_sna_sna__video.c) = ee732a2c73997cfdf5c5b936fac065a0224687af
+SHA1 (patch-src_uxa_intel__display.c) = 2e1dcea94b2f80331615956e9c1f16e4710211cc
diff --git a/xf86-video-intel-dfbsd/patches/patch-src_compat-api.h b/xf86-video-intel-dfbsd/patches/patch-src_compat-api.h
new file mode 100644
index 0000000000..e1f8d6220e
--- /dev/null
+++ b/xf86-video-intel-dfbsd/patches/patch-src_compat-api.h
@@ -0,0 +1,28 @@
+$NetBSD: patch-src_compat-api.h,v 1.1 2016/12/07 21:59:54 wiz Exp $
+
+Upstream patches for xorg-server-1.19.
+
+Handler args patch from NetBSD xsrc xf86-video-intel-2014
+
+--- src/compat-api.h.orig	2019-03-01 18:22:07.000000000 +0000
++++ src/compat-api.h
+@@ -94,11 +94,19 @@
+ 
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr screen, int argc, char **argv
+ 
++#if (ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)) && defined(HANDLER_XSRC_NETBSD)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer timeout
++#define BLOCKHANDLER_ARGS arg, timeout
++
++#define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, int result
++#define WAKEUPHANDLER_ARGS arg, result
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer timeout, pointer read_mask
+ #define BLOCKHANDLER_ARGS arg, timeout, read_mask
+ 
+ #define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask
+ #define WAKEUPHANDLER_ARGS arg, result, read_mask
++#endif
+ 
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr screen
+ #define CLOSE_SCREEN_ARGS screen
diff --git a/xf86-video-intel-dfbsd/patches/patch-src_intel__list.h b/xf86-video-intel-dfbsd/patches/patch-src_intel__list.h
index 1906481054..7ce43721b7 100644
--- a/xf86-video-intel-dfbsd/patches/patch-src_intel__list.h
+++ b/xf86-video-intel-dfbsd/patches/patch-src_intel__list.h
@@ -2,28 +2,40 @@ $NetBSD$
 
 Patch from FreeBSD ports x11-drivers/xf86-video-intel.
 
---- src/intel_list.h.orig	2017-02-10 21:52:47.000000000 +0000
+Further adaption from NetBSD xsrc xf86-video-intel.
+
+--- src/intel_list.h.orig	2019-03-01 18:22:07.000000000 +0000
 +++ src/intel_list.h
-@@ -305,8 +305,10 @@ list_is_empty(const struct list *head)
+@@ -305,8 +305,19 @@ list_is_empty(const struct list *head)
  #define list_last_entry(ptr, type, member) \
      list_entry((ptr)->prev, type, member)
  
 +#if !defined(__FreeBSD__)
++#ifdef __container_of
++#undef __container_of
++#endif
++#if defined(LIST_H_XSERVER)
++/* Assume that HAVE_TYPEOF is true */
++#define __container_of(ptr, sample, member)			\
++    container_of(ptr, typeof(*sample), member)
++#else /* !LIST_H_XSERVER */
  #define __container_of(ptr, sample, member)				\
      (void *)((char *)(ptr) - ((char *)&(sample)->member - (char *)(sample)))
++#endif /* LIST_H_XSERVER */
 +#endif
  /**
   * Loop through the list given by head and set pos to struct in the list.
   *
-@@ -324,15 +326,29 @@ list_is_empty(const struct list *head)
+@@ -324,15 +335,31 @@ list_is_empty(const struct list *head)
   * @param member Member name of the struct list in the list elements.
   *
   */
-+#if defined(__FreeBSD__)
-+ #define list_for_each_entry(pos, head, member)				\
-+    for (pos = NULL, pos = __container_of((head)->next, pos, member);	\
-+ 	 &pos->member != (head);					\
-+ 	 pos = __container_of(pos->member.next, pos, member))
++#if defined(LIST_H_XSERVER)
++#define list_for_each_entry(pos, head, member)				\
++    for (pos = NULL,                                                    \
++         pos = __container_of((head)->next, pos, member);		\
++	 &pos->member != (head);					\
++	 pos = __container_of(pos->member.next, pos, member))
 +#else
  #define list_for_each_entry(pos, head, member)				\
      for (pos = __container_of((head)->next, pos, member);		\
@@ -31,11 +43,12 @@ Patch from FreeBSD ports x11-drivers/xf86-video-intel.
  	 pos = __container_of(pos->member.next, pos, member))
 +#endif
  
-+#if defined(__FreeBSD__)
-+#define list_for_each_entry_reverse(pos, head, member)			\
-+    for (pos = NULL, pos = __container_of((head)->prev, pos, member);	\
-+ 	 &pos->member != (head);					\
-+ 	 pos = __container_of(pos->member.prev, pos, member))
++#if defined(LIST_H_XSERVER)
++#define list_for_each_entry_reverse(pos, head, member)				\
++    for (pos = NULL,                                                    \
++         pos = __container_of((head)->prev, pos, member);		\
++	 &pos->member != (head);					\
++	 pos = __container_of(pos->member.prev, pos, member))
 +#else
  #define list_for_each_entry_reverse(pos, head, member)				\
      for (pos = __container_of((head)->prev, pos, member);		\
@@ -45,16 +58,17 @@ Patch from FreeBSD ports x11-drivers/xf86-video-intel.
  
  /**
   * Loop through the list, keeping a backup pointer to the element. This
-@@ -341,11 +357,19 @@ list_is_empty(const struct list *head)
+@@ -341,11 +368,20 @@ list_is_empty(const struct list *head)
   *
   * See list_for_each_entry for more details.
   */
-+#if defined(__FreeBSD__)
++#if defined(LIST_H_XSERVER)
 +#define list_for_each_entry_safe(pos, tmp, head, member)		\
-+    for (pos = NULL, pos = __container_of((head)->next, pos, member),	\
-+ 	 tmp = __container_of(pos->member.next, pos, member);		\
-+ 	 &pos->member != (head);					\
-+ 	 pos = tmp, tmp = __container_of(pos->member.next, tmp, member))
++    for (pos = NULL,                                                    \
++         pos = __container_of((head)->next, pos, member),		\
++	 tmp = __container_of(pos->member.next, pos, member);		\
++	 &pos->member != (head);					\
++	 pos = tmp, tmp = __container_of(pos->member.next, tmp, member))
 +#else
  #define list_for_each_entry_safe(pos, tmp, head, member)		\
      for (pos = __container_of((head)->next, pos, member),		\
diff --git a/xf86-video-intel-dfbsd/patches/patch-src_legacy_i810_i810__dri.c b/xf86-video-intel-dfbsd/patches/patch-src_legacy_i810_i810__dri.c
new file mode 100644
index 0000000000..6c8e6e0554
--- /dev/null
+++ b/xf86-video-intel-dfbsd/patches/patch-src_legacy_i810_i810__dri.c
@@ -0,0 +1,33 @@
+$NetBSD: patch-src_legacy_i810_i810__dri.c,v 1.1 2015/04/20 13:39:00 khorben Exp $
+
+CID 1107540: Make the code safe avoiding random stack access. In
+the first loop where there is a singleton point to pptSrc, only
+access that singleton, no matter what.
+
+November 2013 patch from NetBSD xsrc:
+http://mail-index.netbsd.org/source-changes/2013/11/14/msg049188.html
+
+--- src/legacy/i810/i810_dri.c.orig	2014-08-29 09:33:11.000000000 +0000
++++ src/legacy/i810/i810_dri.c
+@@ -1104,10 +1104,17 @@ I810DRIMoveBuffers(WindowPtr pParent, DD
+ 	    while ((pboxNext >= pbox) && (pboxBase->y1 == pboxNext->y1))
+ 	       pboxNext--;
+ 	    pboxTmp = pboxNext + 1;
+-	    pptTmp = pptSrc + (pboxTmp - pbox);
+-	    while (pboxTmp <= pboxBase) {
+-	       *pboxNew1++ = *pboxTmp++;
+-	       *pptNew1++ = *pptTmp++;
++	    if (pptSrc == &ptOldOrg) {
++		if (pboxTmp <= pboxBase) {
++	          *pboxNew1++ = *pboxTmp;
++	          *pptNew1++ = *pptSrc;
++		}
++	    } else {
++	       pptTmp = pptSrc + (pboxTmp - pbox);
++	       while (pboxTmp <= pboxBase) {
++	          *pboxNew1++ = *pboxTmp++;
++	          *pptNew1++ = *pptTmp++;
++	       }
+ 	    }
+ 	    pboxBase = pboxNext;
+ 	 }
diff --git a/xf86-video-intel-dfbsd/patches/patch-src_sna_kgem.c b/xf86-video-intel-dfbsd/patches/patch-src_sna_kgem.c
index e3fc182e18..4fc6d39dce 100644
--- a/xf86-video-intel-dfbsd/patches/patch-src_sna_kgem.c
+++ b/xf86-video-intel-dfbsd/patches/patch-src_sna_kgem.c
@@ -15,7 +15,7 @@ Fix SNA for drm-v4.11 or later by disabling I915_USERPTR_UNSYNCHRONIZED
 I915_USERPTR_UNSYNCHRONIZED is broken since drm-v4.11
 https://github.com/FreeBSDDesktop/kms-drm/issues/32
 
---- src/sna/kgem.c.orig	2019-02-21 22:26:50.000000000 +0000
+--- src/sna/kgem.c.orig	2019-03-01 18:22:07.000000000 +0000
 +++ src/sna/kgem.c
 @@ -29,6 +29,11 @@
  #include "config.h"
@@ -29,7 +29,7 @@ https://github.com/FreeBSDDesktop/kms-drm/issues/32
  #include "sna.h"
  #include "sna_reg.h"
  
-@@ -69,9 +74,17 @@ search_snoop_cache(struct kgem *kgem, unsigned int num
+@@ -69,9 +74,17 @@ search_snoop_cache(struct kgem *kgem, un
  #define DBG_NO_CPU 0
  #define DBG_NO_CREATE2 0
  #define DBG_NO_USERPTR 0
@@ -59,7 +59,7 @@ https://github.com/FreeBSDDesktop/kms-drm/issues/32
  	int err;
  
  	VG_CLEAR(arg);
-@@ -691,7 +708,12 @@ static void *__kgem_bo_map__cpu(struct kgem *kgem, str
+@@ -691,7 +708,12 @@ static void *__kgem_bo_map__cpu(struct k
  retry:
  	arg.handle = bo->handle;
  	arg.size = bytes(bo);
@@ -72,11 +72,11 @@ https://github.com/FreeBSDDesktop/kms-drm/issues/32
  		DBG(("%s: failed %d, throttling/cleaning caches\n",
  		     __FUNCTION__, err));
  		assert(err != -EINVAL || bo->prime);
-@@ -3313,11 +3335,21 @@ bool __kgem_ring_is_idle(struct kgem *kgem, int ring)
+@@ -3313,11 +3335,21 @@ bool __kgem_ring_is_idle(struct kgem *kg
  	if (rq) {
  		struct kgem_request *tmp;
  
-+#if defined(__DragonFly__)
++#if defined(KGEM_NULL_BO)
 +		if (rq->bo == NULL)
 +			fprintf(stderr, "__kgem_ring_is_idle: rq->bo == NULL\n");
 +		if (rq->bo && __kgem_busy(kgem, rq->bo->handle)) {
diff --git a/xf86-video-intel-dfbsd/patches/patch-src_sna_sna.h b/xf86-video-intel-dfbsd/patches/patch-src_sna_sna.h
new file mode 100644
index 0000000000..48b619e6b9
--- /dev/null
+++ b/xf86-video-intel-dfbsd/patches/patch-src_sna_sna.h
@@ -0,0 +1,27 @@
+$NetBSD: patch-src_sna_sna.h,v 1.1 2016/12/07 21:59:54 wiz Exp $
+
+Upstream patches for xorg-server-1.19.
+
+Patches from NetBSD xsrc xf86-video-intel-2014
+
+--- src/sna/sna.h.orig	2019-03-01 18:22:07.000000000 +0000
++++ src/sna/sna.h
+@@ -1336,11 +1336,18 @@ char *sna_cpu_features_to_string(unsigne
+ int sna_acpi_open(void);
+ void sna_acpi_init(struct sna *sna);
+ void _sna_acpi_wakeup(struct sna *sna);
++#if defined(HANDLER_XSRC_NETBSD)
++static inline void sna_acpi_wakeup(struct sna *sna)
++{
++	_sna_acpi_wakeup(sna);
++}
++#else
+ static inline void sna_acpi_wakeup(struct sna *sna, void *read_mask)
+ {
+ 	if (sna->acpi.fd >= 0 && FD_ISSET(sna->acpi.fd, (fd_set*)read_mask))
+ 		_sna_acpi_wakeup(sna);
+ }
++#endif
+ void sna_acpi_fini(struct sna *sna);
+ 
+ void sna_threads_init(void);
diff --git a/xf86-video-intel-dfbsd/patches/patch-src_uxa_intel__display.c b/xf86-video-intel-dfbsd/patches/patch-src_uxa_intel__display.c
new file mode 100644
index 0000000000..cf17b56800
--- /dev/null
+++ b/xf86-video-intel-dfbsd/patches/patch-src_uxa_intel__display.c
@@ -0,0 +1,20 @@
+$NetBSD: patch-src_uxa_intel__display.c,v 1.1 2016/12/07 21:59:54 wiz Exp $
+
+Upstream patches for xorg-server-1.19.
+
+Patches from NetBSD xsrc xf86-video-intel-2014
+
+--- src/uxa/intel_display.c.orig	2019-03-01 18:22:07.000000000 +0000
++++ src/uxa/intel_display.c
+@@ -394,7 +394,11 @@ intel_crtc_apply(xf86CrtcPtr crtc)
+ 	}
+ 
+ 	if (scrn->pScreen)
++#if defined(HAVE_XF86_CURSOR_RESET_CURSOR) && defined(RESET_CURSOR_XSRC_NETBSD)
++		xf86CursorResetCursor(scrn->pScreen);
++#else
+ 		xf86_reload_cursors(scrn->pScreen);
++#endif
+ 
+ done:
+ 	free(output_ids);


Home | Main Index | Thread Index | Old Index