Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xf86-video-nouveau for 
openSUSE:Factory checked in at 2021-02-01 13:25:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-nouveau (Old)
 and      /work/SRC/openSUSE:Factory/.xf86-video-nouveau.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xf86-video-nouveau"

Mon Feb  1 13:25:12 2021 rev:18 rq:866587 version:1.0.17

Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-nouveau/xf86-video-nouveau.changes    
2020-06-02 14:32:59.006447770 +0200
+++ 
/work/SRC/openSUSE:Factory/.xf86-video-nouveau.new.28504/xf86-video-nouveau.changes
 2021-02-01 13:25:17.993831522 +0100
@@ -1,0 +2,21 @@
+Mon Jan 25 12:46:54 UTC 2021 - Stefan Dirsch <sndir...@suse.com>
+
+- no longer set CFLAGS, because "%optflags" is already included in
+  %configure macro
+
+-------------------------------------------------------------------
+Sun Jan 24 14:40:15 UTC 2021 - Dirk M??ller <dmuel...@suse.com>
+
+- update to 1.0.17:
+  * present: fix handling of drmWaitVBlank failures
+  * drmmode: make event handler leave a note that there are stuck events
+  * present: don't enable if there's no acceleration
+  * drmmode: fix screen resize without acceleration
+  * make error when failing to allocate surface more descriptive
+  * dri2,present: move in pixmap before getting addresses
+  * nv4/exa: tiling is unsupported pre-nv10, reduce alignment requirements
+  * Don't advertise any PRIME offloading capabilities without acceleration
+
+- spec-cleaner cleanups
+
+-------------------------------------------------------------------

Old:
----
  xf86-video-nouveau-1.0.16.tar.bz2

New:
----
  xf86-video-nouveau-1.0.17.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xf86-video-nouveau.spec ++++++
--- /var/tmp/diff_new_pack.cZnGWW/_old  2021-02-01 13:25:18.757832720 +0100
+++ /var/tmp/diff_new_pack.cZnGWW/_new  2021-02-01 13:25:18.757832720 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package xf86-video-nouveau
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,31 +17,30 @@
 
 
 Name:           xf86-video-nouveau
+Version:        1.0.17
+Release:        0
+Summary:        Accelerated Open Source driver for nVidia cards
+License:        MIT
+Group:          System/X11/Servers/XF86_4
+URL:            https://nouveau.freedesktop.org/
+Source0:        
http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.bz2
+Patch0:         N_xf86-video-nouveau_nva3-noaccel-info.patch
 BuildRequires:  libtool
 BuildRequires:  pciutils-devel
+BuildRequires:  pkgconfig
 BuildRequires:  xorg-x11-sdk
 BuildRequires:  pkgconfig(gl)
 BuildRequires:  pkgconfig(libdrm) >= 2.4.25
 BuildRequires:  pkgconfig(libdrm_nouveau) >= 2.4.25
 BuildRequires:  pkgconfig(libudev)
 BuildRequires:  pkgconfig(xorg-macros)
-Url:            http://nouveau.freedesktop.org/wiki/
-Version:        1.0.16
-Release:        0
-Summary:        Accelerated Open Source driver for nVidia cards
-License:        MIT
-Group:          System/X11/Servers/XF86_4
 Requires:       xorg-x11-server
+Supplements:    modalias(xorg-x11-server:pci:v000010DEd*sv*sd*bc03sc*i*)
+Supplements:    modalias(xorg-x11-server:pci:v000012D2d*sv*sd*bc03sc*i*)
 Provides:       xorg-x11-driver-video-nouveau  = %{version}
 Obsoletes:      xorg-x11-driver-video-nouveau  < %{version}
-ExclusiveArch:  %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-Source0:        
http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.bz2
-Patch0:         N_xf86-video-nouveau_nva3-noaccel-info.patch
-Supplements:    modalias(xorg-x11-server:pci:v000012D2d*sv*sd*bc03sc*i*)
-Supplements:    modalias(xorg-x11-server:pci:v000010DEd*sv*sd*bc03sc*i*)
-
-%x11_abi_videodrv_req
+ExclusiveArch:  %{ix86} x86_64 ppc ppc64 ppc64le %{arm} aarch64
+%{x11_abi_videodrv_req}
 
 %description
 The nouveau project aims to build high-quality, open source drivers for nVidia
@@ -53,15 +52,14 @@
 
 %build
 autoreconf -fi
-%configure CFLAGS="$RPM_OPT_FLAGS"
-make %{?_smp_mflags}
+%configure
+%make_build
 
 %install
-make install DESTDIR=$RPM_BUILD_ROOT
-find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
+%make_install
+find %{buildroot} -type f -name "*.la" -delete -print
 
 %files
-%defattr(-,root,root)
 %dir %{_libdir}/xorg/modules/drivers
 %{_libdir}/xorg/modules/drivers/*_drv.so
 %{_mandir}/man4/*

++++++ xf86-video-nouveau-1.0.16.tar.bz2 -> xf86-video-nouveau-1.0.17.tar.bz2 
++++++
++++ 5713 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/ChangeLog new/xf86-video-nouveau-1.0.17/ChangeLog
--- old/xf86-video-nouveau-1.0.16/ChangeLog     2019-01-29 05:42:20.000000000 
+0100
+++ new/xf86-video-nouveau-1.0.17/ChangeLog     2021-01-23 19:25:03.000000000 
+0100
@@ -1,3 +1,112 @@
+commit c39897466573aabd6a3b4e63e8e5fb42ac5971f8
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Jan 23 12:24:42 2021 -0500
+
+    Bump version to 1.0.17
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+
+commit 7212a2782f3e638acf49de4716656b2ae27c2156
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Aug 15 23:18:22 2020 -0400
+
+    present: fix handling of drmWaitVBlank failures
+    
+    When drmWaitVBlank fails, make sure to remove the event from the queue.
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+
+commit 5031100549fb053527a1f11d771e930dec065ced
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Aug 15 23:20:53 2020 -0400
+
+    drmmode: make event handler leave a note that there are stuck events
+    
+    We don't really expect to have too many events in the queue. If there
+    are, then the algorithm we use isn't appropriate. Add a warning when the
+    queue gets very long, as it's an indication of something having gone
+    wrong.
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+
+commit f833cd0827a73b716cc3af5905015fcb2c7d958d
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Jul 18 18:44:58 2020 -0400
+
+    present: don't enable if there's no acceleration
+    
+    All the present logic relies on EXA being used to wrap everything.
+    Unclear if present could even be used without the other things EXA
+    enables, but better be safe.
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+
+commit 971624406a8ecd85bad8c2e2d1fd26f5d14bae92
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Jul 18 18:40:35 2020 -0400
+
+    drmmode: fix screen resize without acceleration
+    
+    This got broken with commit 86024cee back in 2014!
+    drmmode_pixmap/nouveau_pixmap expect there to be EXA wrapping around the
+    pixmap now, which is not there without accel.
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+
+commit 5444cabcf0ab5cea614270f1ad1df1e1fccb3c2b
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Oct 26 18:36:27 2019 -0400
+
+    make error when failing to allocate surface more descriptive
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+
+commit ef89b3c5ca9b2569ca61a9452d13a93edc832810
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Oct 12 20:13:25 2019 -0400
+
+    dri2,present: move in pixmap before getting addresses
+    
+    First of all, we were not forcing the pixmap to be moved in before
+    attempting to present it. Secondly, in certain configurations, we avoid
+    ever backing pixmaps with vram (in GPUs with 32MB of VRAM or less).
+    
+    This fixes the observed cases where we ended up assuming that a bo was
+    backing a pixmap without doing the explicit move-in.
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+
+commit 856572319fadeeadf58d782ab6f3f2d230822d67
+Author: Ilia Mirkin <imir...@alum.mit.edu>
+Date:   Sat Oct 12 16:00:15 2019 -0400
+
+    nv4/exa: tiling is unsupported pre-nv10, reduce alignment requirements
+    
+    Commit 8c8f15c9d3 added increased pitch alignment requirements to handle
+    nv10-nv40 tiling (which must have a small number * PoT pitch). While
+    NV4/NV5 do have tiling, this was never supported in nouveau.
+    
+    This change enables 1920x1200 resolutions since the maximum surface
+    pitch has to be strictly less than 8192. The current logic will align
+    1920*4 up to 8192 unnecessarily.
+    
+    Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
+    Cc: Marcin Ko??cielnicki <koria...@0x04.net>
+    Cc: Francisco Jerez <curroje...@riseup.net>
+
+commit a5f04582cecb1a649bb46b8af9f2889247788d00
+Author: Carlo Caione <ca...@endlessm.com>
+Date:   Fri Sep 1 12:47:23 2017 +0200
+
+    Don't advertise any PRIME offloading capabilities without acceleration
+    
+    Acceleration is required even for display offloading. Trying to enable
+    display offloading without acceleration resulted in a crash.
+    
+    https://bugs.freedesktop.org/show_bug.cgi?id=101220
+    
+    Signed-off-by: Carlo Caione <ca...@endlessm.com>
+
 commit ec2b45d1bf4c31c5420b48c213bf9ee1656adf9d
 Author: Ilia Mirkin <imir...@alum.mit.edu>
 Date:   Mon Jan 28 23:25:58 2019 -0500
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/compile new/xf86-video-nouveau-1.0.17/compile
--- old/xf86-video-nouveau-1.0.16/compile       2019-01-29 05:42:14.000000000 
+0100
+++ new/xf86-video-nouveau-1.0.17/compile       2021-01-23 19:24:56.000000000 
+0100
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 # Written by Tom Tromey <tro...@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
          MINGW*)
            file_conv=mingw
            ;;
-         CYGWIN*)
+         CYGWIN* | MSYS*)
            file_conv=cygwin
            ;;
          *)
@@ -67,7 +67,7 @@
        mingw/*)
          file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
          ;;
-       cygwin/*)
+       cygwin/* | msys/*)
          file=`cygpath -m "$file" || echo "$file"`
          ;;
        wine/*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/configure.ac 
new/xf86-video-nouveau-1.0.17/configure.ac
--- old/xf86-video-nouveau-1.0.16/configure.ac  2019-01-29 05:41:58.000000000 
+0100
+++ new/xf86-video-nouveau-1.0.17/configure.ac  2021-01-23 19:24:38.000000000 
+0100
@@ -23,8 +23,8 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-nouveau],
-        [1.0.16],
-        
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/nouveau],
+        [1.0.17],
+        
[https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/issues/],
         [xf86-video-nouveau])
 
 AC_DEFINE_UNQUOTED([NV_DRIVER_DATE],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/m4/libtool.m4 
new/xf86-video-nouveau-1.0.17/m4/libtool.m4
--- old/xf86-video-nouveau-1.0.16/m4/libtool.m4 2019-01-29 05:42:05.000000000 
+0100
+++ new/xf86-video-nouveau-1.0.17/m4/libtool.m4 2021-01-23 19:24:47.000000000 
+0100
@@ -1708,6 +1708,11 @@
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -2636,11 +2641,11 @@
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  library_names_spec='$libname$release$versuffix$shared_ext 
$libname$release$major$shared_ext $libname$shared_ext'
   soname_spec='$libname$release$major$shared_ext'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  shrext_cmds='`test .$module = .yes && echo .bundle || echo .dylib`'
 m4_if([$1], [],[
   sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/missing new/xf86-video-nouveau-1.0.17/missing
--- old/xf86-video-nouveau-1.0.16/missing       2019-01-29 05:42:14.000000000 
+0100
+++ new/xf86-video-nouveau-1.0.17/missing       2021-01-23 19:24:56.000000000 
+0100
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/src/drmmode_display.c 
new/xf86-video-nouveau-1.0.17/src/drmmode_display.c
--- old/xf86-video-nouveau-1.0.16/src/drmmode_display.c 2019-01-29 
05:41:58.000000000 +0100
+++ new/xf86-video-nouveau-1.0.17/src/drmmode_display.c 2021-01-23 
19:24:38.000000000 +0100
@@ -159,6 +159,8 @@
        .prev = &drmmode_events,
 };
 
+static bool warned = false;
+
 static void
 drmmode_event_handler(int fd, unsigned int frame, unsigned int tv_sec,
                      unsigned int tv_usec, void *event_data)
@@ -166,7 +168,10 @@
        const uint64_t ust = (uint64_t)tv_sec * 1000000 + tv_usec;
        struct drmmode_event *e = event_data;
 
+       int counter = 0;
+
        xorg_list_for_each_entry(e, &drmmode_events, head) {
+               counter++;
                if (e == event_data) {
                        xorg_list_del(&e->head);
                        e->func((void *)(e + 1), e->name, ust, frame);
@@ -174,6 +179,12 @@
                        break;
                }
        }
+
+       if (counter > 100 && !warned) {
+               xf86DrvMsg(0, X_WARNING,
+                          "Event handler iterated %d times\n", counter);
+               warned = true;
+       }
 }
 
 void
@@ -1545,7 +1556,7 @@
        }
 
        ppix = screen->GetScreenPixmap(screen);
-       if (pNv->AccelMethod >= NONE)
+       if (pNv->AccelMethod > NONE)
                nouveau_bo_ref(pNv->scanout, &drmmode_pixmap(ppix)->bo);
        screen->ModifyPixmapHeader(ppix, width, height, -1, -1, pitch,
                                   (pNv->AccelMethod > NONE || pNv->ShadowPtr) ?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/src/nouveau_dri2.c 
new/xf86-video-nouveau-1.0.17/src/nouveau_dri2.c
--- old/xf86-video-nouveau-1.0.16/src/nouveau_dri2.c    2019-01-29 
05:41:58.000000000 +0100
+++ new/xf86-video-nouveau-1.0.17/src/nouveau_dri2.c    2021-01-23 
19:24:38.000000000 +0100
@@ -62,7 +62,10 @@
                        ppix->refcnt++;
        } else {
                int bpp;
-               unsigned int usage_hint = NOUVEAU_CREATE_PIXMAP_TILED;
+               unsigned int usage_hint = 0;
+
+               if (pNv->Architecture >= NV_ARCH_10)
+                       usage_hint |= NOUVEAU_CREATE_PIXMAP_TILED;
 
                /* 'format' is just depth (or 0, or maybe it depends on the 
caller) */
                bpp = round_up_pow2(format ? format : pDraw->depth);
@@ -245,9 +248,13 @@
 static Bool
 update_front(DrawablePtr draw, DRI2BufferPtr front)
 {
-       int r;
-       PixmapPtr pixmap;
+       ScrnInfoPtr scrn = xf86ScreenToScrn(draw->pScreen);
+       NVPtr pNv = NVPTR(scrn);
        struct nouveau_dri2_buffer *nvbuf = nouveau_dri2_buffer(front);
+       struct nouveau_bo *pixmap_bo;
+
+       PixmapPtr pixmap;
+       int r;
 
        if (draw->type == DRAWABLE_PIXMAP)
                pixmap = (PixmapPtr)draw;
@@ -256,8 +263,16 @@
 
        pixmap->refcnt++;
 
+       pNv->exa_force_cp = TRUE;
        exaMoveInPixmap(pixmap);
-       r = nouveau_bo_name_get(nouveau_pixmap_bo(pixmap), &front->name);
+       pNv->exa_force_cp = FALSE;
+       pixmap_bo = nouveau_pixmap_bo(pixmap);
+
+       if (!pixmap_bo)
+               r = -1;
+       else
+               r = nouveau_bo_name_get(pixmap_bo, &front->name);
+
        if (r) {
                (*draw->pScreen->DestroyPixmap)(pixmap);
                return FALSE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/src/nouveau_present.c 
new/xf86-video-nouveau-1.0.17/src/nouveau_present.c
--- old/xf86-video-nouveau-1.0.16/src/nouveau_present.c 2019-01-29 
05:41:58.000000000 +0100
+++ new/xf86-video-nouveau-1.0.17/src/nouveau_present.c 2021-01-23 
19:24:38.000000000 +0100
@@ -113,8 +113,19 @@
        args.request.signal = (unsigned long)token;
 
        while ((ret = drmWaitVBlank(pNv->dev->fd, &args)) != 0) {
-               if (errno != EBUSY || drmmode_event_flush(crtc->scrn) < 0)
+               if (errno != EBUSY) {
+                       xf86DrvMsgVerb(crtc->scrn->scrnIndex, X_WARNING, 4,
+                                  "PRESENT: Wait for VBlank failed: %s\n", 
strerror(errno));
+                       drmmode_event_abort(crtc->scrn, event_id, false);
                        return BadAlloc;
+               }
+               ret = drmmode_event_flush(crtc->scrn);
+               if (ret < 0) {
+                       xf86DrvMsgVerb(crtc->scrn->scrnIndex, X_WARNING, 4,
+                                  "PRESENT: Event flush failed\n");
+                       drmmode_event_abort(crtc->scrn, event_id, false);
+                       return BadAlloc;
+               }
        }
 
        return Success;
@@ -147,12 +158,25 @@
                           PixmapPtr pixmap, Bool sync_flip)
 {
        ScrnInfoPtr scrn = xf86ScreenToScrn(window->drawable.pScreen);
+       NVPtr pNv = NVPTR(scrn);
        xf86CrtcPtr crtc = rrcrtc->devPrivate;
+       struct nouveau_pixmap *priv = nouveau_pixmap(pixmap);
 
        if (!scrn->vtSema || !drmmode_crtc_on(crtc) || crtc->rotatedData)
                return FALSE;
 
-       return TRUE;
+       if (!priv) {
+               /* The pixmap may not have had backing for low-memory GPUs, or
+                * if we ran out of VRAM. Make sure it's properly backed for
+                * flipping.
+                */
+               pNv->exa_force_cp = TRUE;
+               exaMoveInPixmap(pixmap);
+               pNv->exa_force_cp = FALSE;
+               priv = nouveau_pixmap(pixmap);
+       }
+
+       return priv ? TRUE : FALSE;
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/src/nv_accel_common.c 
new/xf86-video-nouveau-1.0.17/src/nv_accel_common.c
--- old/xf86-video-nouveau-1.0.16/src/nv_accel_common.c 2019-01-29 
05:41:58.000000000 +0100
+++ new/xf86-video-nouveau-1.0.17/src/nv_accel_common.c 2021-01-23 
19:24:38.000000000 +0100
@@ -115,7 +115,7 @@
 
        ret = nouveau_bo_new(pNv->dev, flags, 0, *pitch * height, &cfg, bo);
        if (ret) {
-               ErrorF("%d\n", ret);
+               ErrorF("failure to allocate surface %dx%d@%d (pitch %d): %d\n", 
width, height, bpp, *pitch, ret);
                return FALSE;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xf86-video-nouveau-1.0.16/src/nv_driver.c 
new/xf86-video-nouveau-1.0.17/src/nv_driver.c
--- old/xf86-video-nouveau-1.0.16/src/nv_driver.c       2019-01-29 
05:41:58.000000000 +0100
+++ new/xf86-video-nouveau-1.0.17/src/nv_driver.c       2021-01-23 
19:24:38.000000000 +0100
@@ -1082,7 +1082,8 @@
                        pNv->wfb_enabled = xf86ReturnOptValBool(
                                pNv->Options, OPTION_WFB, FALSE);
 
-               pNv->tiled_scanout = TRUE;
+               if (pNv->Architecture >= NV_ARCH_10)
+                       pNv->tiled_scanout = TRUE;
        }
 
        pNv->ce_enabled =
@@ -1371,6 +1372,9 @@
                        pNv->ShadowFB = TRUE;
                        pNv->wfb_enabled = FALSE;
                        pNv->tiled_scanout = FALSE;
+                       pScrn->capabilities &= ~(RR_Capability_SourceOutput |
+                                                RR_Capability_SourceOffload |
+                                                RR_Capability_SinkOutput);
                        pScrn->displayWidth = nv_pitch_align(pNv,
                                                             pScrn->virtualX,
                                                             pScrn->depth);
@@ -1485,7 +1489,7 @@
 
        xf86SetBlackWhitePixels(pScreen);
 
-       if (nouveau_present_init(pScreen))
+       if (pNv->AccelMethod == EXA && nouveau_present_init(pScreen))
                xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                           "Hardware support for Present enabled\n");
        else

Reply via email to