xf86-video-intel-dfbsd: Fix FreeBSD with revert userptr unsynchronized option

Update through 2019-03-01
This commit is contained in:
David Shao 2019-03-03 14:12:38 -08:00
parent 596f71ed46
commit 89fe5387a0
3 changed files with 49 additions and 13 deletions

View File

@ -3,8 +3,14 @@
# 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
COMMIT_ID= 6afed33b2d673d88674f0c76efe500ae414e8e1b
# 2019-02-21 Fix build on i686
# COMMIT_ID= 9e6e003e3468dca674ac848e2669af973da02fd4
# 2019-01-21 sna/uxa: Fix colormap handling at screen depth 30. (v2)
COMMIT_ID= 33ee0c3b21ea279e08d0863fcb2e874f0974b00e
# COMMIT_ID= 33ee0c3b21ea279e08d0863fcb2e874f0974b00e
# 2019-01-10 sna: Switch off old outputs on topology changes
# COMMIT_ID= c37c7ee0748ba828ec5d2c7304cd2a17af2c8109
@ -66,12 +72,21 @@ SUBST_SED.jmp_buf= -e 's@[[:<:]]jmp_buf[[:>:]]@sigjmp_buf@g'
PKG_OPTIONS_VAR= PKG_OPTIONS.xf86-video-intel
PKG_SUPPORTED_OPTIONS= uxa dri3 debug
PKG_SUPPORTED_OPTIONS+= set_dbg_no_unsynchronized_userptr
PKG_SUPPORTED_OPTIONS+= set_dbg_no_llc
PKG_SUGGESTED_OPTIONS=
# PKG_SUGGESTED_OPTIONS+= set_dbg_no_unsynchronized_userptr
# PKG_SUGGESTED_OPTIONS+= set_dbg_no_llc
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} == "DragonFly"
PKG_SUGGESTED_OPTIONS+= set_dbg_no_llc
.endif
.include "../../mk/bsd.options.mk"
@ -94,6 +109,14 @@ CFLAGS+= -O0 -g3
CONFIGURE_ARGS+= --enable-debug
.endif
.if !empty(PKG_OPTIONS:Mset_dbg_no_unsynchronized_userptr)
CPPFLAGS+= -DSET_DBG_NO_UNSYNCHRONIZED_USERPTR
.endif
.if !empty(PKG_OPTIONS:Mset_dbg_no_llc)
CPPFLAGS+= -DSET_DBG_NO_LLC
.endif
pre-configure:
cd ${WRKSRC} && autoreconf -vif

View File

@ -1,11 +1,11 @@
$NetBSD: distinfo,v 1.1 2015/04/01 13:11:38 tnn2 Exp $
SHA1 (xf86-video-intel-33ee0c3b21ea279e08d0863fcb2e874f0974b00e.tar.xz) = c6890dd1d7e1bdd787ae0d473cb855929168684d
RMD160 (xf86-video-intel-33ee0c3b21ea279e08d0863fcb2e874f0974b00e.tar.xz) = 09c2927b027c8d639fc8d9a97cce1f77d5e349a1
SHA512 (xf86-video-intel-33ee0c3b21ea279e08d0863fcb2e874f0974b00e.tar.xz) = b63ce62b1406e9e576aab7db4174b0b40c6074590d32166d98eac7b5019671f47c5ab6199e887b442a9db7daaf2e7df908ec8c4d4016e8c89fc28d750c169622
Size (xf86-video-intel-33ee0c3b21ea279e08d0863fcb2e874f0974b00e.tar.xz) = 955256 bytes
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_intel__device.c) = b0a1f775d3e66605e9a1d94745bc4f7a1fba179e
SHA1 (patch-src_intel__list.h) = 98ba59c22bc7109f95666291ca1aac19189999aa
SHA1 (patch-src_sna_kgem.c) = bcc7bf2fded99b5f5b6920f610c30b0bbc72668d
SHA1 (patch-src_sna_kgem.c) = 57341a2fba5cabe70b20a4a0b2699e655e2d61d7
SHA1 (patch-src_sna_sna__threads.c) = 54a3bd0de878009335f08b3f41812540a72f5d4d
SHA1 (patch-src_sna_sna__video.c) = ee732a2c73997cfdf5c5b936fac065a0224687af

View File

@ -8,7 +8,14 @@ x11-drivers/xf86-video-intel29
Additional patch for DragonFly because struct drm_i915_gem_mmap
has a field flags.
--- src/sna/kgem.c.orig 2019-01-10 10:01:58.000000000 +0000
https://bz-attachments.freebsd.org/attachment.cgi?id=20233
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
@@ -29,6 +29,11 @@
#include "config.h"
@ -22,11 +29,17 @@ has a field flags.
#include "sna.h"
#include "sna_reg.h"
@@ -71,7 +76,11 @@ search_snoop_cache(struct kgem *kgem, un
@@ -69,9 +74,17 @@ search_snoop_cache(struct kgem *kgem, unsigned int num
#define DBG_NO_CPU 0
#define DBG_NO_CREATE2 0
#define DBG_NO_USERPTR 0
+#if defined(SET_DBG_NO_UNSYNCHRONIZED_USERPTR)
+#define DBG_NO_UNSYNCHRONIZED_USERPTR 1
+#else
#define DBG_NO_UNSYNCHRONIZED_USERPTR 0
+#endif
#define DBG_NO_COHERENT_MMAP_GTT 0
+#if defined(__DragonFly__)
+#if defined(SET_DBG_NO_LLC)
+#define DBG_NO_LLC 1
+#else
#define DBG_NO_LLC 0
@ -34,7 +47,7 @@ has a field flags.
#define DBG_NO_SEMAPHORES 0
#define DBG_NO_MADV 0
#define DBG_NO_UPLOAD_CACHE 0
@@ -682,7 +691,11 @@ retry_wc:
@@ -682,7 +695,11 @@ retry_wc:
static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo)
{
@ -46,7 +59,7 @@ has a field flags.
int err;
VG_CLEAR(arg);
@@ -691,7 +704,12 @@ static void *__kgem_bo_map__cpu(struct k
@@ -691,7 +708,12 @@ static void *__kgem_bo_map__cpu(struct kgem *kgem, str
retry:
arg.handle = bo->handle;
arg.size = bytes(bo);
@ -59,7 +72,7 @@ has a field flags.
DBG(("%s: failed %d, throttling/cleaning caches\n",
__FUNCTION__, err));
assert(err != -EINVAL || bo->prime);
@@ -3313,11 +3331,21 @@ bool __kgem_ring_is_idle(struct kgem *kg
@@ -3313,11 +3335,21 @@ bool __kgem_ring_is_idle(struct kgem *kgem, int ring)
if (rq) {
struct kgem_request *tmp;