debian/patches/xmir.patch | 151 +++++++++++++++++----------------------------- 1 file changed, 59 insertions(+), 92 deletions(-)
New commits: commit 600a5b158e147fe5e1f4ebf4721081eadf7906cb Author: Christopher James Halse Rogers <r...@ubuntu.com> Date: Fri Jul 18 18:28:25 2014 +1000 Refresh XMir patch harder. And by “refresh”, I of course mean “take the patch form ~ickle/xf86-video-intel” that is usefully kept rebased on master diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch index 5cd4c97..f9ecb5a 100644 --- a/debian/patches/xmir.patch +++ b/debian/patches/xmir.patch @@ -1,14 +1,14 @@ -commit 67c072065118115112d06e77c43b6ac225dbcf56 +commit 80db93ed6b05fade9e0c7a581cc2b503f66d2416 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Wed Jul 24 01:44:30 2013 +0100 - sna: Preliminary patch for XMir - - For the intrepid explorer, who is desperate to encounter all the bugs we - fixed long ago. /o\ + sna: Add XMir support With lots of updates by Christopher James Halse Rogers as he updated the - XMir API. + XMir API - but now supposedly frozen! + + "<RAOF> ickle: I think the xmir api should be pretty much stable now, + barring people coming up with more awesome ways of doing things." Signed-off-by: Christopher James Halse Rogers <r...@ubuntu.com> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> @@ -25,43 +25,30 @@ Date: Wed Jul 24 01:44:30 2013 +0100 --- a/src/intel_device.c +++ b/src/intel_device.c -@@ -276,6 +276,25 @@ +@@ -162,10 +162,23 @@ + return ret; } - #endif +static int __intel_open_xmir(const struct pci_device *pci) +{ -+ int fd = -1; -+#if XMIR + char id[20]; + -+ if (!xorgMir) -+ return -1; -+ + snprintf(id, sizeof(id), + "pci:%04x:%02x:%02x.%d", + pci->domain, pci->bus, pci->dev, pci->func); -+ fd = xmir_get_drm_fd(id); -+ if (fd == -1) -+ return -1; -+#endif -+ -+ return fd; ++ return xmir_get_drm_fd(id); +} ++ + static int __intel_open_device(const struct pci_device *pci, const char *path) + { + int fd; - #if defined(ODEV_ATTRIB_FD) - static int get_fd(struct xf86_platform_device *dev) -@@ -328,7 +347,9 @@ - master_count = 1; /* DRM_MASTER is managed by Xserver */ - fd = get_fd(platform); - if (fd == -1) { -- fd = __intel_open_device(pci, path); -+ fd = __intel_open_xmir(pci); -+ if (fd == -1) -+ fd = __intel_open_device(pci, path); - if (fd == -1) - goto err_path; - ++ if (xorgMir) ++ return __intel_open_xmir(pci); ++ + if (path == NULL) { + char id[20]; + int ret; --- a/src/intel_driver.h +++ b/src/intel_driver.h @@ -1,6 +1,8 @@ @@ -138,6 +125,36 @@ Date: Wed Jul 24 01:44:30 2013 +0100 +#endif + #endif /* _SNA_H */ +--- a/src/sna/sna_dri2.c ++++ b/src/sna/sna_dri2.c +@@ -2873,6 +2873,13 @@ + void sna_dri2_destroy_window(WindowPtr win) { } + #endif + ++#if DRI2INFOREC_VERSION >= 8 && XMIR ++static int sna_dri_auth_magic2(ScreenPtr screen, uint32_t magic) ++{ ++ return xmir_auth_drm_magic(to_sna_from_screen(screen)->xmir, magic); ++} ++#endif ++ + static bool has_i830_dri(void) + { + return access(DRI_DRIVER_PATH "/i830_dri.so", R_OK) == 0; +@@ -3027,6 +3034,13 @@ + info.ReuseBufferNotify = sna_dri2_reuse_buffer; + #endif + ++#if DRI2INFOREC_VERSION >= 8 && XMIR ++ if (sna->xmir) { ++ info.version = 8; ++ info.AuthMagic2 = sna_dri_auth_magic2; ++ } ++#endif ++ + #if USE_ASYNC_SWAP + info.version = 10; + info.scheduleSwap0 = 1; --- a/src/sna/sna_driver.c +++ b/src/sna/sna_driver.c @@ -548,6 +548,9 @@ @@ -150,7 +167,15 @@ Date: Wed Jul 24 01:44:30 2013 +0100 /* Sanity check */ if (hosted() && (sna->flags & SNA_IS_HOSTED) == 0) { xf86DrvMsg(scrn->scrnIndex, X_ERROR, -@@ -592,9 +595,13 @@ +@@ -559,6 +562,7 @@ + xf86DrvMsg(scrn->scrnIndex, X_PROBED, "CPU: %s\n", + sna_cpu_features_to_string(sna->cpu_features, buf)); + ++ /* XXX query depth from host */ + if (!xf86SetDepthBpp(scrn, 24, 0, 0, + Support32bppFb | + SupportConvert24to32 | PreferConvert24to32)) +@@ -592,6 +596,9 @@ sna_setup_capabilities(scrn, fd); @@ -160,10 +185,6 @@ Date: Wed Jul 24 01:44:30 2013 +0100 kgem_init(&sna->kgem, fd, xf86GetPciInfoForEntity(pEnt->index), sna->info->gen); -+ - if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE) || - !sna_option_cast_to_bool(sna, OPTION_ACCEL_METHOD, TRUE)) { - xf86DrvMsg(sna->scrn->scrnIndex, X_CONFIG, @@ -710,6 +717,8 @@ if (*tv == NULL || ((*tv)->tv_usec | (*tv)->tv_sec) || has_shadow(sna)) @@ -184,7 +205,7 @@ Date: Wed Jul 24 01:44:30 2013 +0100 --- /dev/null +++ b/src/sna/sna_xmir.c -@@ -0,0 +1,186 @@ +@@ -0,0 +1,183 @@ +/*************************************************************************** + + Copyright 2013 Intel Corporation. All Rights Reserved. @@ -271,7 +292,6 @@ Date: Wed Jul 24 01:44:30 2013 +0100 + if (n == 0) + return; + -+ /* XXX size is bogus, but only used for sanity checks */ + dst = kgem_create_for_prime(&sna->kgem, + xmir_window_get_fd(xmir_win), + pitch * (dst_box->y2 - dst_box->y1)); @@ -279,7 +299,6 @@ Date: Wed Jul 24 01:44:30 2013 +0100 + return; + + dst->pitch = pitch; -+ dst->scanout = true; /* presume the worst (almost always true) */ + + if (get_window_deltas(pixmap, &sx, &sy)) + RegionTranslate(region, sx, sy); @@ -323,7 +342,6 @@ Date: Wed Jul 24 01:44:30 2013 +0100 + if (n == 0) + xmir_submit_rendering_for_window(xmir_win, region); + -+ dst->scanout = false; /* but don't confuse our caching! */ + kgem_bo_destroy(&sna->kgem, dst); +} + @@ -371,54 +389,3 @@ Date: Wed Jul 24 01:44:30 2013 +0100 +} + +#endif ---- a/src/sna/sna_dri2.c -+++ b/src/sna/sna_dri2.c -@@ -791,6 +791,7 @@ - if (busy.busy & (1 << 17)) - mode = KGEM_BLT; - kgem_bo_mark_busy(busy.handle == src->handle ? src : dst, mode); -+#warning next line disabled by xmir patch? - _kgem_set_mode(&sna->kgem, mode); - } - -@@ -1356,6 +1357,12 @@ - return false; - } - -+ if ((sna->flags & SNA_IS_HOSTED) == 0) { -+ DBG(("%s: no, not hosted\n", __FUNCTION__)); -+ return false; -+ } -+ -+ - if ((sna->flags & (SNA_HAS_FLIP | SNA_HAS_ASYNC_FLIP)) == 0) { - DBG(("%s: no, pageflips disabled\n", __FUNCTION__)); - return false; -@@ -2966,6 +2973,13 @@ - return s; - } - -+#if DRI2INFOREC_VERSION >= 8 && XMIR -+static int sna_dri_auth_magic2(ScreenPtr screen, uint32_t magic) -+{ -+ return xmir_auth_drm_magic(to_sna_from_screen(screen)->xmir, magic); -+} -+#endif -+ - bool sna_dri2_open(struct sna *sna, ScreenPtr screen) - { - DRI2InfoRec info; -@@ -3027,6 +3041,13 @@ - info.ReuseBufferNotify = sna_dri2_reuse_buffer; - #endif - -+#if DRI2INFOREC_VERSION >= 8 && XMIR -+ if (sna->xmir) { -+ info.version = 8; -+ info.AuthMagic2 = sna_dri_auth_magic2; -+ } -+#endif -+ - #if USE_ASYNC_SWAP - info.version = 10; - info.scheduleSwap0 = 1; -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1x83ws-0006sj...@moszumanska.debian.org