ChangeLog |17250 ++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 5 debian/changelog | 50 debian/control | 10 debian/patches/xmir.patch | 189 debian/rules | 4 src/Makefile.am | 20 src/drmmode_display.c | 52 src/nouveau_xv.c | 38 src/nv_driver.c | 2 src/nvc0_accel.c | 33 src/shader/Makefile | 15 src/shader/exac8nvf0.fp | 42 src/shader/exac8nvf0.fpc | 28 src/shader/exacanvf0.fp | 43 src/shader/exacanvf0.fpc | 30 src/shader/exacmnvf0.fp | 43 src/shader/exacmnvf0.fpc | 30 src/shader/exas8nvf0.fp | 38 src/shader/exas8nvf0.fpc | 20 src/shader/exasanvf0.fp | 43 src/shader/exasanvf0.fpc | 30 src/shader/exascnvf0.fp | 35 src/shader/exascnvf0.fpc | 14 src/shader/videonvf0.fp | 47 src/shader/videonvf0.fpc | 38 src/shader/xfrm2nvf0.vp | 82 src/shader/xfrm2nvf0.vpc | 90 28 files changed, 18194 insertions(+), 127 deletions(-)
New commits: commit 63b75449ff7d5e810c03a18ccf66e309cea385d4 Author: Christopher James Halse Rogers <r...@ubuntu.com> Date: Thu Aug 29 21:34:30 2013 +1000 Fix xserver build-dep version diff --git a/debian/control b/debian/control index cf706e6..91a555e 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Build-Depends: debhelper (>= 8), dh-autoreconf, pkg-config, - xserver-xorg-dev (>= 2:1.14.2.901-2ubuntu2+xmirMM14~), + xserver-xorg-dev (>= 2:1.14.2.901-2ubuntu4~), x11proto-video-dev, x11proto-core-dev, x11proto-fonts-dev, commit bcd598c2d7d3b22496514312d3b0801f6d2e7e81 Author: Christopher James Halse Rogers <r...@ubuntu.com> Date: Mon Aug 26 17:29:29 2013 +1000 Update for new XMir API diff --git a/debian/changelog b/debian/changelog index a14fe33..306bbb3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-nouveau (1:1.0.8-0ubuntu4) saucy; urgency=low + + * Update for new XMir API + + -- Christopher James Halse Rogers <r...@ubuntu.com> Thu, 22 Aug 2013 14:42:58 +1000 + xserver-xorg-video-nouveau (1:1.0.8-0ubuntu3) saucy; urgency=low * Fix build against servers without XMir support diff --git a/debian/control b/debian/control index 70ce991..9c347e0 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Build-Depends: debhelper (>= 8), dh-autoreconf, pkg-config, - xserver-xorg-dev (>= 2:1.14.2-0ubuntu4~), + xserver-xorg-dev (>= 2:1.14.2.901-2ubuntu2+xmirMM14~), x11proto-video-dev, x11proto-core-dev, x11proto-fonts-dev, diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch index ae77249..45324eb 100644 --- a/debian/patches/xmir.patch +++ b/debian/patches/xmir.patch @@ -6,10 +6,8 @@ Date: Mon Jul 22 17:46:58 2013 +1000 Signed-off-by: Christopher James Halse Rogers <r...@ubuntu.com> -Index: xf86-video-nouveau/src/nouveau_dri2.c -=================================================================== ---- xf86-video-nouveau.orig/src/nouveau_dri2.c 2013-08-06 12:40:27.802943906 +1000 -+++ xf86-video-nouveau/src/nouveau_dri2.c 2013-08-06 12:40:27.798943906 +1000 +--- a/src/nouveau_dri2.c ++++ b/src/nouveau_dri2.c @@ -267,7 +267,7 @@ NVPtr pNv = NVPTR(scrn); int i; @@ -60,10 +58,8 @@ Index: xf86-video-nouveau/src/nouveau_dri2.c #if DRI2INFOREC_VERSION >= 9 dri2.version = 9; dri2.CreateBuffer2 = nouveau_dri2_create_buffer2; -Index: xf86-video-nouveau/src/nv_driver.c -=================================================================== ---- xf86-video-nouveau.orig/src/nv_driver.c 2013-08-06 12:40:27.802943906 +1000 -+++ xf86-video-nouveau/src/nv_driver.c 2013-08-06 12:44:47.126932579 +1000 +--- a/src/nv_driver.c ++++ b/src/nv_driver.c @@ -226,6 +226,8 @@ case GET_REQUIRED_HW_INTERFACES: flag = (CARD32 *)data; @@ -117,7 +113,17 @@ Index: xf86-video-nouveau/src/nv_driver.c if (!NVHasKMS(dev->pdev)) return FALSE; -@@ -424,9 +449,11 @@ +@@ -406,7 +431,8 @@ + NVAdjustFrame(ADJUST_FRAME_ARGS_DECL) + { + SCRN_INFO_PTR(arg); +- drmmode_adjust_frame(pScrn, x, y); ++ if (!xorgMir) ++ drmmode_adjust_frame(pScrn, x, y); + } + + /* +@@ -424,9 +450,11 @@ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVEnterVT is called.\n"); @@ -132,7 +138,7 @@ Index: xf86-video-nouveau/src/nv_driver.c if (XF86_CRTC_CONFIG_PTR(pScrn)->num_crtc && !xf86SetDesiredModes(pScrn)) return FALSE; -@@ -452,6 +479,9 @@ +@@ -452,6 +480,9 @@ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVLeaveVT is called.\n"); @@ -142,106 +148,89 @@ Index: xf86-video-nouveau/src/nv_driver.c ret = drmDropMaster(pNv->dev->fd); if (ret && errno != EIO && errno != ENODEV) ErrorF("Error dropping master: %i(%m)\n", -errno); -@@ -501,6 +531,86 @@ +@@ -501,6 +532,50 @@ } #endif +#ifdef XMIR +static void -+nouveau_xmir_copy_pixmap_to_mir(PixmapPtr src, int fd) ++nouveau_xmir_copy_to_mir(xmir_window *xmir_win, RegionPtr region) +{ ++ WindowPtr win = xmir_window_to_windowptr(xmir_win); ++ PixmapPtr src = (*win->drawable.pScreen->GetWindowPixmap)(win); + ScreenPtr pScreen = src->drawable.pScreen; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + NVPtr pNv = NVPTR(pScrn); -+ ExaDriverPtr exa = pNv->EXADriverPtr; ++ BoxPtr dst_box = xmir_window_get_drawable_region(xmir_win); ++ BoxPtr damage_box = RegionExtents(region); + -+ PixmapPtr dst = NULL; + int ret; -+ struct nouveau_bo *bo_dst = NULL; ++ int w = damage_box->x2 - damage_box->x1; ++ int h = damage_box->y2 - damage_box->y1; ++ struct nouveau_bo *dst = NULL; + -+ ret = nouveau_bo_prime_handle_ref(pNv->dev, fd, &bo_dst); -+ ErrorF("ret = %i for buffer %i\n", ret, fd); ++ ret = nouveau_bo_prime_handle_ref(pNv->dev, xmir_window_get_fd(xmir_win), &dst); + assert(!ret); + -+ dst = pScreen->CreatePixmap(pScreen, 0, 0, pScrn->depth, 0); -+ if (dst == NullPixmap) -+ goto cleanup_bo; -+ -+ pScreen->ModifyPixmapHeader(dst, pScrn->virtualX, pScrn->virtualY, pScrn->depth, pScrn->depth, -+ pScrn->virtualX, NULL); -+ nouveau_bo_ref(bo_dst, &nouveau_pixmap(dst)->bo); -+ -+ ret = exa->PrepareCopy (src, dst, 0, 0, GXcopy, FB_ALLONES); -+ if (ret) { -+ exa->Copy (dst, 0, 0, 0, 0, pScrn->virtualX, pScrn->virtualY); -+ exa->DoneCopy (dst); ++ NVAccelM2MF(pNv, w, h, src->drawable.bitsPerPixel >> 3, 0, 0, ++ nouveau_pixmap_bo(src), NOUVEAU_BO_VRAM, ++ exaGetPixmapPitch(src), ++ src->drawable.height, ++ damage_box->x1, damage_box->y1, ++ dst, NOUVEAU_BO_VRAM, ++ xmir_window_get_stride(xmir_win), ++ dst_box->y2 - dst_box->y1, ++ damage_box->x1 - dst_box->x1, damage_box->y1 - dst_box->y1); ++ if (pNv->NvCopy) ++ PUSH_KICK(pNv->ce_pushbuf); ++ else + PUSH_KICK(pNv->pushbuf); -+ } -+ -+cleanup_bo: -+ nouveau_bo_ref(NULL, &bo_dst); -+} -+ -+static void -+nouveau_xmir_buffer_available(WindowPtr win) -+{ -+ int fd; -+ PixmapPtr window_pixmap; -+ ScreenPtr screen = win->drawable.pScreen; -+ -+ if (!xmir_window_is_dirty(win)) -+ return; -+ -+ fd = xmir_prime_fd_for_window(win); -+ -+ window_pixmap = (*win->drawable.pScreen->GetWindowPixmap)(win); -+ -+ assert(window_pixmap == screen->GetScreenPixmap(screen)); -+ -+ nouveau_xmir_copy_pixmap_to_mir(window_pixmap, fd); -+ -+ xmir_submit_rendering_for_window(win, NULL); -+} -+ -+static void -+nouveau_submit_dirty_window(WindowPtr win) -+{ -+ PixmapPtr window_pixmap; -+ int fd; -+ -+ if (!xmir_window_has_free_buffer(win)) -+ return; -+ -+ fd = xmir_prime_fd_for_window(win); -+ -+ window_pixmap = (*win->drawable.pScreen->GetWindowPixmap)(win); -+ nouveau_xmir_copy_pixmap_to_mir(window_pixmap, fd); + -+ xmir_submit_rendering_for_window(win, NULL); ++ xmir_submit_rendering_for_window(xmir_win, region); ++ nouveau_bo_ref(NULL, &dst); +} + +static xmir_driver xmir_nouveau_driver = { + XMIR_DRIVER_VERSION, -+ nouveau_xmir_buffer_available ++ nouveau_xmir_copy_to_mir +}; +#endif + static void NVBlockHandler (BLOCKHANDLER_ARGS_DECL) { -@@ -516,6 +626,11 @@ +@@ -516,6 +591,11 @@ nouveau_dirty_update(pScreen); #endif +#ifdef XMIR + if (pNv->xmir) -+ xmir_screen_for_each_damaged_window(pNv->xmir, nouveau_submit_dirty_window); ++ xmir_screen_for_each_damaged_window(pNv->xmir, nouveau_xmir_copy_to_mir); +#endif + if (pScrn->vtSema && !pNv->NoAccel) nouveau_pushbuf_kick(pNv->pushbuf, pNv->pushbuf->channel); -@@ -535,7 +650,10 @@ +@@ -523,6 +603,18 @@ + (*pNv->VideoTimerCallback)(pScrn, currentTime.milliseconds); + } + ++static void ++NVSetScreenPixmap(PixmapPtr ppix) ++{ ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(ppix->drawable.pScreen); ++ NVPtr pNv = NVPTR(pScrn); ++ ++ exaMoveInPixmap(ppix); ++ if (!pNv->NoAccel) ++ nouveau_bo_ref(nouveau_pixmap(ppix)->bo, &pNv->scanout); ++ ppix->drawable.pScreen->devPrivate = ppix; ++} ++ + static Bool + NVCreateScreenResources(ScreenPtr pScreen) + { +@@ -535,7 +627,10 @@ return FALSE; pScreen->CreateScreenResources = NVCreateScreenResources; @@ -253,7 +242,7 @@ Index: xf86-video-nouveau/src/nv_driver.c if (!NVEnterVT(VT_FUNC_ARGS(0))) return FALSE; -@@ -561,7 +679,7 @@ +@@ -561,7 +656,7 @@ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NVPtr pNv = NVPTR(pScrn); @@ -262,7 +251,7 @@ Index: xf86-video-nouveau/src/nv_driver.c drmmode_screen_fini(pScreen); if (!pNv->NoAccel) -@@ -688,7 +806,7 @@ +@@ -688,7 +783,7 @@ NVPtr pNv = NVPTR(pScrn); NVEntPtr pNVEnt = NVEntPriv(pScrn); struct pci_device *dev = pNv->PciInfo; @@ -271,7 +260,7 @@ Index: xf86-video-nouveau/src/nv_driver.c drmSetVersion sv; int err; int ret; -@@ -712,8 +830,11 @@ +@@ -712,8 +807,11 @@ busid = XNFprintf("pci:%04x:%02x:%02x.%d", dev->domain, dev->bus, dev->dev, dev->func); #endif @@ -284,7 +273,7 @@ Index: xf86-video-nouveau/src/nv_driver.c if (ret) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[drm] Failed to open DRM device for %s: %d\n", -@@ -723,6 +844,9 @@ +@@ -723,6 +821,9 @@ } free(busid); @@ -294,7 +283,7 @@ Index: xf86-video-nouveau/src/nv_driver.c sv.drm_di_major = 1; sv.drm_di_minor = 1; sv.drm_dd_major = -1; -@@ -818,6 +942,14 @@ +@@ -818,6 +919,14 @@ ) return FALSE; @@ -309,7 +298,7 @@ Index: xf86-video-nouveau/src/nv_driver.c if (xf86IsEntityShared(pScrn->entityList[0])) { if(!xf86IsPrimInitDone(pScrn->entityList[0])) { pNv->Primary = TRUE; -@@ -965,6 +1097,8 @@ +@@ -965,6 +1074,8 @@ from = X_CONFIG; pNv->HWCursor = FALSE; } @@ -318,7 +307,16 @@ Index: xf86-video-nouveau/src/nv_driver.c xf86DrvMsg(pScrn->scrnIndex, from, "Using %s cursor\n", pNv->HWCursor ? "HW" : "SW"); -@@ -1062,7 +1196,13 @@ +@@ -997,7 +1108,7 @@ + &pNv->glx_vblank)) + from = X_CONFIG; + else +- pNv->glx_vblank = TRUE; ++ pNv->glx_vblank = !xorgMir; + + xf86DrvMsg(pScrn->scrnIndex, from, "GLX sync to VBlank %s.\n", + pNv->glx_vblank ? "enabled" : "disabled"); +@@ -1062,7 +1173,13 @@ xf86DrvMsg(pScrn->scrnIndex, from, "Swap limit set to %d [Max allowed %d]%s\n", pNv->swap_limit, pNv->max_swap_limit, reason); @@ -333,7 +331,7 @@ Index: xf86-video-nouveau/src/nv_driver.c if (ret == FALSE) NVPreInitFail("Kernel modesetting failed to initialize\n"); -@@ -1170,7 +1310,8 @@ +@@ -1170,7 +1287,8 @@ { NVPtr pNv = NVPTR(pScrn); @@ -343,19 +341,28 @@ Index: xf86-video-nouveau/src/nv_driver.c nouveau_bo_ref(NULL, &pNv->transfer); nouveau_bo_ref(NULL, &pNv->scanout); -@@ -1370,6 +1511,11 @@ - else - fbPictureInit (pScreen, 0, 0); +@@ -1384,6 +1502,11 @@ + */ + miDCInitialize(pScreen, xf86GetPointerScreenFuncs()); +#ifdef XMIR + if (pNv->xmir) + xmir_screen_init(pScreen, pNv->xmir); +#endif + - xf86SetBlackWhitePixels(pScreen); + /* + * Initialize HW cursor layer. + * Must follow software cursor initialization. +@@ -1427,6 +1550,8 @@ + pNv->CreateScreenResources = pScreen->CreateScreenResources; + pScreen->CreateScreenResources = NVCreateScreenResources; - if (!pNv->NoAccel && !nouveau_exa_init(pScreen)) -@@ -1443,19 +1589,19 @@ ++ pScreen->SetScreenPixmap = NVSetScreenPixmap; ++ + #ifdef NOUVEAU_PIXMAP_SHARING + pScreen->StartPixmapTracking = PixmapStartDirtyTracking; + pScreen->StopPixmapTracking = PixmapStopDirtyTracking; +@@ -1443,19 +1568,19 @@ * Initialize colormap layer. * Must follow initialization of the default colormap */ @@ -378,10 +385,8 @@ Index: xf86-video-nouveau/src/nv_driver.c return TRUE; } -Index: xf86-video-nouveau/src/nv_type.h -=================================================================== ---- xf86-video-nouveau.orig/src/nv_type.h 2013-08-06 12:40:27.802943906 +1000 -+++ xf86-video-nouveau/src/nv_type.h 2013-08-06 12:40:27.798943906 +1000 +--- a/src/nv_type.h ++++ b/src/nv_type.h @@ -9,6 +9,14 @@ #include <stdint.h> #include "xf86Crtc.h" commit 4b5b4e9a9e1be2b6e5dd14dc0343727463a1fe25 Author: Sven Joachim <svenj...@gmx.de> Date: Wed Jul 31 19:37:54 2013 +0200 Upload to unstable diff --git a/debian/changelog b/debian/changelog index eddedcb..9c9f3a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,9 @@ -xserver-xorg-video-nouveau (1:1.0.9-2) UNRELEASED; urgency=low +xserver-xorg-video-nouveau (1:1.0.9-2) unstable; urgency=low * Cherry-pick commit 1df177f35a05 from upstream to fix build failure on non-x86 architectures. - -- Sven Joachim <svenj...@gmx.de> Wed, 31 Jul 2013 19:33:47 +0200 + -- Sven Joachim <svenj...@gmx.de> Wed, 31 Jul 2013 19:37:44 +0200 xserver-xorg-video-nouveau (1:1.0.9-1) unstable; urgency=low commit f0217d26f3a32f4bd004534656042c1b0d3ccc55 Author: Sven Joachim <svenj...@gmx.de> Date: Wed Jul 31 19:36:28 2013 +0200 Document the merging/cherry-pick of commit 1df177f35a05 diff --git a/ChangeLog b/ChangeLog index a73b0e1..3282916 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +commit 1df177f35a05db505577cdc929e63fde906a704b +Author: Dave Airlie <airl...@gmail.com> +Date: Wed Jul 31 10:51:03 2013 +1000 + + nouveau: fix build on ppc by wrapping immintrin include. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + commit 300c5a32d79cf507b5fede96710335bcd316eccb Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 30 15:28:06 2013 +1000 diff --git a/debian/changelog b/debian/changelog index 9337e75..eddedcb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xserver-xorg-video-nouveau (1:1.0.9-2) UNRELEASED; urgency=low + + * Cherry-pick commit 1df177f35a05 from upstream to fix build + failure on non-x86 architectures. + + -- Sven Joachim <svenj...@gmx.de> Wed, 31 Jul 2013 19:33:47 +0200 + xserver-xorg-video-nouveau (1:1.0.9-1) unstable; urgency=low * New upstream release. commit a13611b401a8ad1a5245738198f9d79d1f05b957 Author: Sven Joachim <svenj...@gmx.de> Date: Wed Jul 31 18:09:20 2013 +0200 Upload to unstable diff --git a/debian/changelog b/debian/changelog index 9431754..9337e75 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,11 @@ -xserver-xorg-video-nouveau (1:1.0.9-1) UNRELEASED; urgency=low +xserver-xorg-video-nouveau (1:1.0.9-1) unstable; urgency=low * New upstream release. * Remove patch 02-link-against-libdrm.diff, applied upstream. * Bump Recommends on libgl1-mesa-dri to (>= 9.0), AIGLX does not work with older versions. - -- Sven Joachim <svenj...@gmx.de> Tue, 30 Jul 2013 08:47:33 +0200 + -- Sven Joachim <svenj...@gmx.de> Wed, 31 Jul 2013 18:09:09 +0200 xserver-xorg-video-nouveau (1:1.0.8-1) unstable; urgency=low commit d7f6adb4dee8c6111c395ab965a8f09c95616b16 Author: Sven Joachim <svenj...@gmx.de> Date: Wed Jul 31 18:08:32 2013 +0200 Bump Recommends on libgl1-mesa-dri to (>= 9.0) AIGLX does not work if the DDX and the DRI driver are linked with different versions of libdrm-nouveau. diff --git a/debian/changelog b/debian/changelog index d13c255..9431754 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ xserver-xorg-video-nouveau (1:1.0.9-1) UNRELEASED; urgency=low * New upstream release. * Remove patch 02-link-against-libdrm.diff, applied upstream. + * Bump Recommends on libgl1-mesa-dri to (>= 9.0), AIGLX does + not work with older versions. -- Sven Joachim <svenj...@gmx.de> Tue, 30 Jul 2013 08:47:33 +0200 diff --git a/debian/control b/debian/control index dcc7c04..6fe2823 100644 --- a/debian/control +++ b/debian/control @@ -34,7 +34,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${xviddriver:Depends}, -Recommends: libgl1-mesa-dri (>= 7.11.1) +Recommends: libgl1-mesa-dri (>= 9.0) Provides: ${xviddriver:Provides} Description: X.Org X server -- Nouveau display driver This driver for the X.Org X server (see xserver-xorg for a further description) commit 1df177f35a05db505577cdc929e63fde906a704b Author: Dave Airlie <airl...@gmail.com> Date: Wed Jul 31 10:51:03 2013 +1000 nouveau: fix build on ppc by wrapping immintrin include. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/nouveau_xv.c b/src/nouveau_xv.c index 5569b7c..e19378d 100644 --- a/src/nouveau_xv.c +++ b/src/nouveau_xv.c @@ -25,7 +25,9 @@ #include "config.h" #endif +#ifdef __SSE2__ #include <immintrin.h> +#endif #include "xf86xv.h" #include <X11/extensions/Xv.h> commit 0897ccb715da88e1038d80b82928ebeccff8e254 Author: Sven Joachim <svenj...@gmx.de> Date: Tue Jul 30 08:53:01 2013 +0200 Remove patch 02-link-against-libdrm.diff, applied upstream diff --git a/debian/changelog b/debian/changelog index 47df922..d13c255 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ xserver-xorg-video-nouveau (1:1.0.9-1) UNRELEASED; urgency=low * New upstream release. + * Remove patch 02-link-against-libdrm.diff, applied upstream. -- Sven Joachim <svenj...@gmx.de> Tue, 30 Jul 2013 08:47:33 +0200 diff --git a/debian/patches/02-link-against-libdrm.diff b/debian/patches/02-link-against-libdrm.diff deleted file mode 100644 index 602562a..0000000 --- a/debian/patches/02-link-against-libdrm.diff +++ /dev/null @@ -1,42 +0,0 @@ -commit 3a48b65b5bfc9cf4c3049923cfdba18d78097c88 -Author: Sven Joachim <svenj...@gmx.de> -Date: Thu Jun 13 20:33:28 2013 +0200 - - Link against libdrm - - The DDX uses symbols from libdrm but currently does not link against - it, but rather relies on indirect linkage from libdrm_nouveau. This - could lead to insufficient dependencies in distribution packages, seen - in http://bugs.debian.org/633786. - - Signed-off-by: Sven Joachim <svenj...@gmx.de> - -diff --git a/configure.ac b/configure.ac -index 6f7f870..b54b8cd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -80,6 +80,7 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) - XORG_DRIVER_CHECK_EXT(DRI2, [dri2proto >= 2.6]) - - # Checks for pkg-config packages -+PKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.17]) - PKG_CHECK_MODULES(LIBDRM_NOUVEAU, [libdrm_nouveau >= 2.4.25]) - AC_SUBST(LIBDRM_NOUVEAU_CFLAGS) - AC_SUBST(LIBDRM_NOUVEAU_LIBS) -diff --git a/src/Makefile.am b/src/Makefile.am -index f54e135..5836ead 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -23,10 +23,10 @@ - # -avoid-version prevents gratuitous .0.0.0 version numbers on the end - # _ladir passes a dummy rpath to libtool so the thing will actually link - # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc. --AM_CFLAGS = @XORG_CFLAGS@ @LIBUDEV_CFLAGS@ @LIBDRM_NOUVEAU_CFLAGS@ -+AM_CFLAGS = @XORG_CFLAGS@ @LIBUDEV_CFLAGS@ @LIBDRM_NOUVEAU_CFLAGS@ @LIBDRM_CFLAGS@ - nouveau_drv_la_LTLIBRARIES = nouveau_drv.la - nouveau_drv_la_LDFLAGS = -module -avoid-version @LIBDRM_NOUVEAU_LIBS@ \ -- @LIBUDEV_LIBS@ -+ @LIBUDEV_LIBS@ @LIBDRM_LIBS@ - nouveau_drv_ladir = @moduledir@/drivers - - nouveau_drv_la_SOURCES = \ diff --git a/debian/patches/series b/debian/patches/series index 90907d4..d6892cf 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1 @@ 01-set-NV_DRIVER_DATE-from-ChangeLog.diff -02-link-against-libdrm.diff commit 48b29eedcfcf7ac3ae48e32a844332116e7c15fc Author: Sven Joachim <svenj...@gmx.de> Date: Tue Jul 30 08:51:03 2013 +0200 New upstream release diff --git a/ChangeLog b/ChangeLog index cb76802..a73b0e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,104 @@ +commit 300c5a32d79cf507b5fede96710335bcd316eccb +Author: Dave Airlie <airl...@redhat.com> +Date: Tue Jul 30 15:28:06 2013 +1000 + + bump to 1.0.9 for release + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit be44e7804862b4c276ed4d4717b1212920f428e6 +Author: Dave Airlie <airl...@gmail.com> +Date: Tue Jul 30 15:26:46 2013 +1000 + + nouveau: fix crash when xinerama is enabled. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 588252556d1c84bf6793bc22edd48e6650a0f1b9 +Author: Dave Airlie <airl...@gmail.com> +Date: Tue Jul 30 15:14:22 2013 +1000 + + fix make distcheck. + + add all the nvf0 stuff. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 29aecda1b5bdb95700894083874492a6d5dfc08a +Author: Dave Airlie <airl...@gmail.com> +Date: Tue Jul 30 14:10:51 2013 +1000 + + drmmode: add support for multi-screen reverse optimus + + Initial reverse optimus didn't consider multiple screens, so + this overhauls the code to use the new X server interface, + and allows for multiple outputs on the nvidia to be used with + the intel doing the rendering. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit d7ae886260b480da0ea4cad22eb6f7b7d12f07b0 +Author: Ilia Mirkin <imir...@alum.mit.edu> +Date: Mon Jul 29 21:03:54 2013 -0400 + + nouveau: use uppercase for chipset name + + Right now the log will output e.g. NVaa instead of NVAA, which is how we + usually talk about it. + + Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 4492cf90c2a7fe27badf6f3f0f296755a65e1e83 +Author: Ilia Mirkin <imir...@alum.mit.edu> +Date: Mon Jul 29 02:40:39 2013 -0400 + + xv: speed up YV12 -> NV12 conversion using SSE2 if available + + memcpy() goes from taking 45% to 66% of total function time, which + translates to a 30% decrease in NVPutImage runtime. + + Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 08c667b06d28756d0d32f82bd736b0bdf2b4448e +Author: Ilia Mirkin <imir...@alum.mit.edu> +Date: Mon Jul 29 02:40:38 2013 -0400 + + xv: fix last pixel for big-endian machines in YV12 -> NV12 conversion + + Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 8c1c5d4f212958559132506d51dcfeeb17f60371 +Author: Ben Skeggs <bske...@redhat.com> +Date: Wed May 15 21:34:13 2013 +1000 + + nvf0: implement EXA and XVideo acceleration + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 779b8d44b5ff84b87b52600a2f010ac19cd396ad +Author: Sven Joachim <svenj...@gmx.de> +Date: Thu Jun 13 20:41:53 2013 +0200 + + Link against libdrm + + The DDX uses symbols from libdrm but currently does not link against + it, but rather relies on indirect linkage from libdrm_nouveau. This + could lead to insufficient dependencies in distribution packages, seen + in http://bugs.debian.org/633786. + + Signed-off-by: Sven Joachim <svenj...@gmx.de> + +commit e96ae2b129df2a50d1d3839084df4fb1868d914d +Author: Maarten Lankhorst <maarten.lankho...@canonical.com> +Date: Wed Jun 12 11:05:23 2013 +0200 + + fixup the dri2 check + + Signed-off-by: Maarten Lankhorst <maarten.lankho...@canonical.com> + commit 7f20a6af25ae28452ec9c971bfa2227857e6ee93 Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Wed Jun 12 10:46:39 2013 +0200 diff --git a/debian/changelog b/debian/changelog index 2c27520..47df922 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-nouveau (1:1.0.9-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Sven Joachim <svenj...@gmx.de> Tue, 30 Jul 2013 08:47:33 +0200 + xserver-xorg-video-nouveau (1:1.0.8-1) unstable; urgency=low [ Maarten Lankhorst ] commit 300c5a32d79cf507b5fede96710335bcd316eccb Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 30 15:28:06 2013 +1000 bump to 1.0.9 for release Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index b54b8cd..eff9087 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ([2.60]) AC_INIT([xf86-video-nouveau], - [1.0.8], + [1.0.9], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-nouveau]) commit be44e7804862b4c276ed4d4717b1212920f428e6 Author: Dave Airlie <airl...@gmail.com> Date: Tue Jul 30 15:26:46 2013 +1000 nouveau: fix crash when xinerama is enabled. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/drmmode_display.c b/src/drmmode_display.c index ed9e186..570a9e4 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -348,7 +348,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode, fb_id = drmmode->fb_id; #ifdef NOUVEAU_PIXMAP_SHARING - if (crtc->randr_crtc->scanout_pixmap) { + if (crtc->randr_crtc && crtc->randr_crtc->scanout_pixmap) { x = drmmode_crtc->scanout_pixmap_x; y = 0; } else commit 588252556d1c84bf6793bc22edd48e6650a0f1b9 Author: Dave Airlie <airl...@gmail.com> Date: Tue Jul 30 15:14:22 2013 +1000 fix make distcheck. add all the nvf0 stuff. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/Makefile.am b/src/Makefile.am index 5836ead..82d7c14 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -70,34 +70,50 @@ EXTRA_DIST = hwdefs/nv_3ddefs.xml.h \ shader/exac8nvc0.fpc \ shader/exac8nve0.fp \ shader/exac8nve0.fpc \ + shader/exac8nvf0.fp \ + shader/exac8nvf0.fpc \ shader/exacanvc0.fp \ shader/exacanvc0.fpc \ shader/exacanve0.fp \ shader/exacanve0.fpc \ + shader/exacanvf0.fp \ + shader/exacanvf0.fpc \ shader/exacmnvc0.fp \ shader/exacmnvc0.fpc \ shader/exacmnve0.fp \ shader/exacmnve0.fpc \ + shader/exacmnvf0.fp \ + shader/exacmnvf0.fpc \ shader/exas8nvc0.fp \ shader/exas8nvc0.fpc \ shader/exas8nve0.fp \ shader/exas8nve0.fpc \ + shader/exas8nvf0.fp \ + shader/exas8nvf0.fpc \ shader/exasanvc0.fp \ shader/exasanvc0.fpc \ shader/exasanve0.fp \ shader/exasanve0.fpc \ + shader/exasanvf0.fp \ + shader/exasanvf0.fpc \ shader/exascnvc0.fp \ shader/exascnvc0.fpc \ shader/exascnve0.fp \ shader/exascnve0.fpc \ + shader/exascnvf0.fp \ + shader/exascnvf0.fpc \ shader/videonvc0.fp \ shader/videonvc0.fpc \ shader/videonve0.fp \ shader/videonve0.fpc \ + shader/videonvf0.fp \ + shader/videonvf0.fpc \ shader/xfrm2nvc0.vp \ shader/xfrm2nvc0.vpc \ shader/xfrm2nve0.vp \ shader/xfrm2nve0.vpc \ + shader/xfrm2nvf0.vp \ + shader/xfrm2nvf0.vpc \ shader/Makefile \ nouveau_local.h \ nv_const.h \ commit 29aecda1b5bdb95700894083874492a6d5dfc08a Author: Dave Airlie <airl...@gmail.com> Date: Tue Jul 30 14:10:51 2013 +1000 drmmode: add support for multi-screen reverse optimus Initial reverse optimus didn't consider multiple screens, so this overhauls the code to use the new X server interface, and allows for multiple outputs on the nvidia to be used with the intel doing the rendering. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/drmmode_display.c b/src/drmmode_display.c index b9b7164..ed9e186 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -63,6 +63,7 @@ typedef struct { PixmapPtr rotate_pixmap; uint32_t rotate_fb_id; Bool cursor_visible; + int scanout_pixmap_x; } drmmode_crtc_private_rec, *drmmode_crtc_private_ptr; typedef struct { @@ -347,9 +348,10 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode, fb_id = drmmode->fb_id; #ifdef NOUVEAU_PIXMAP_SHARING - if (crtc->randr_crtc->scanout_pixmap) - x = y = 0; - else + if (crtc->randr_crtc->scanout_pixmap) { + x = drmmode_crtc->scanout_pixmap_x; + y = 0; + } else #endif if (drmmode_crtc->rotate_fb_id) { fb_id = drmmode_crtc->rotate_fb_id; @@ -548,25 +550,57 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix) { ScreenPtr screen = xf86ScrnToScreen(crtc->scrn); PixmapPtr screenpix = screen->GetScreenPixmap(screen); - + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn); + drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; + int c, total_width = 0, max_height = 0, this_x = 0; if (!ppix) { if (crtc->randr_crtc->scanout_pixmap) PixmapStopDirtyTracking(crtc->randr_crtc->scanout_pixmap, screenpix); + drmmode_crtc->scanout_pixmap_x = 0; return TRUE; } - if (ppix->drawable.width > screenpix->drawable.width || - ppix->drawable.height > screenpix->drawable.height) { + /* iterate over all the attached crtcs - + work out bounding box */ + for (c = 0; c < xf86_config->num_crtc; c++) { + xf86CrtcPtr iter = xf86_config->crtc[c]; + if (!iter->enabled && iter != crtc) + continue; + if (iter == crtc) { + this_x = total_width; + total_width += ppix->drawable.width; + if (max_height < ppix->drawable.height) + max_height = ppix->drawable.height; + } else { + total_width += iter->mode.HDisplay; + if (max_height < iter->mode.VDisplay) + max_height = iter->mode.VDisplay; + } +#ifndef HAS_DIRTYTRACKING2 + if (iter != crtc) { + ErrorF("Cannot do multiple crtcs without X server dirty tracking 2 interface\n"); + return FALSE; + } +#endif + } + + if (total_width != screenpix->drawable.width || + max_height != screenpix->drawable.height) { Bool ret; - ret = drmmode_xf86crtc_resize(crtc->scrn, ppix->drawable.width, ppix->drawable.height); + ret = drmmode_xf86crtc_resize(crtc->scrn, total_width, max_height); if (ret == FALSE) return FALSE; screenpix = screen->GetScreenPixmap(screen); - screen->width = screenpix->drawable.width = ppix->drawable.width; - screen->height = screenpix->drawable.height = ppix->drawable.height; + screen->width = screenpix->drawable.width = total_width; + screen->height = screenpix->drawable.height = max_height; } + drmmode_crtc->scanout_pixmap_x = this_x; +#ifdef HAS_DIRTYTRACKING2 + PixmapStartDirtyTracking2(ppix, screenpix, 0, 0, this_x, 0); +#else PixmapStartDirtyTracking(ppix, screenpix, 0, 0); +#endif return TRUE; } #endif commit d7ae886260b480da0ea4cad22eb6f7b7d12f07b0 Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Mon Jul 29 21:03:54 2013 -0400 nouveau: use uppercase for chipset name Right now the log will output e.g. NVaa instead of NVAA, which is how we usually talk about it. Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Signed-off-by: Ben Skeggs <bske...@redhat.com> -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1vf0ie-0005ql...@vasks.debian.org