Hello community,
here is the log from the commit of package xorg-x11-driver-video-nouveau for openSUSE:Factory checked in at 2013-04-02 13:39:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-driver-video-nouveau (Old)
and /work/SRC/openSUSE:Factory/.xorg-x11-driver-video-nouveau.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-driver-video-nouveau", Maintainer is "MHopf@novell.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xorg-x11-driver-video-nouveau/xorg-x11-driver-video-nouveau.changes 2013-03-20 10:05:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xorg-x11-driver-video-nouveau.new/xorg-x11-driver-video-nouveau.changes 2013-04-02 13:39:21.000000000 +0200
@@ -1,0 +2,16 @@
+Fri Mar 29 19:33:25 UTC 2013 - sndirsch@suse.com
+
+- Update to version 1.0.7
+ + dri2: fix missing frame throttle on copy_region buffer swaps
+ + nouveau: add reverse prime support
+ + nouveau: create shared pixmaps in GART
+ + nouveau: fix regression in PRIME since 58284cf32778d54cde139423450bc33360784503
+ + nouveau: align shared buffers to 256
+ + nouveau: make prime regression fix more robust.
+ + nouveau: fix build on older X servers
+ + nouveau: fix build against old servers (part 2)
+ + Clean up some errors on closing.
+ + nouveau: put cursor BO in GART
+ + nv30/exa: fix shaders on big-endian machines
+
+-------------------------------------------------------------------
Old:
----
xf86-video-nouveau-1.0.6.tar.bz2
New:
----
xf86-video-nouveau-1.0.7.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video-nouveau.spec ++++++
--- /var/tmp/diff_new_pack.l4swkx/_old 2013-04-02 13:39:23.000000000 +0200
+++ /var/tmp/diff_new_pack.l4swkx/_new 2013-04-02 13:39:23.000000000 +0200
@@ -25,7 +25,7 @@
BuildRequires: pkgconfig(libdrm_nouveau) >= 2.4.25
Url: http://nouveau.freedesktop.org/wiki/
-Version: 1.0.6
+Version: 1.0.7
Release: 0
Summary: Accelerated Open Source driver for nVidia cards
License: MIT
++++++ xf86-video-nouveau-1.0.6.tar.bz2 -> xf86-video-nouveau-1.0.7.tar.bz2 ++++++
++++ 3558 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.6/ChangeLog new/xf86-video-nouveau-1.0.7/ChangeLog
--- old/xf86-video-nouveau-1.0.6/ChangeLog 2013-01-07 05:14:06.000000000 +0100
+++ new/xf86-video-nouveau-1.0.7/ChangeLog 2013-03-27 09:52:21.000000000 +0100
@@ -1,3 +1,128 @@
+commit 6771424d79e541d2fa7253a582db3dc9108fd97d
+Author: Maarten Lankhorst
+Date: Wed Mar 27 09:50:03 2013 +0100
+
+ bump to 1.0.7
+
+ Signed-off-by: Maarten Lankhorst
+
+commit 84998320162a74a0861b7be1fcc230e50f08424a
+Author: Maarten Lankhorst
+Date: Mon Mar 25 13:55:37 2013 +0100
+
+ Clean up some errors on closing.
+
+ If forced close happens, all ioctl's will fail. Some of the handlers
+ also need to be unregistered before the module is unloaded entirely.
+
+commit a80785f79268ed3701fc69cbd9194ad12822c82c
+Author: Dave Airlie
+Date: Mon Feb 11 09:56:25 2013 +1000
+
+ nouveau: fix build against old servers (part 2)
+
+ Should fix next bit of
+ https://bugs.freedesktop.org/show_bug.cgi?id=60369
+
+ Signed-off-by: Dave Airlie
+
+commit 05dc9b57896689a3dbd9e6aeb16d57c49515b02e
+Author: Marcin Slusarz
+Date: Sun Feb 3 21:12:46 2013 +0100
+
+ nv30/exa: fix shaders on big-endian machines
+
+ Direct port of commit d1bc38b6673c54af61196056c489383fba8dced8
+ "nv40/exa: fix shaders on big-endian machines" to nv30.
+
+ Fixes https://bugs.freedesktop.org/show_bug.cgi?id=60050
+
+ Signed-off-by: Ben Skeggs
+
+commit 61a277488f7195914cbdda10355db0d758fc801c
+Author: Dave Airlie
+Date: Thu Feb 7 10:47:20 2013 +1000
+
+ nouveau: fix build on older X servers
+
+ should fix https://bugs.freedesktop.org/show_bug.cgi?id=60369
+
+ Reported-by: fabio.ped@libero.it
+ Signed-off-by: Dave Airlie
+
+commit e8f222fd10e21f39488d3d8c697e4948cd787cd0
+Author: Dave Airlie
+Date: Wed Feb 6 16:21:50 2013 +1000
+
+ nouveau: make prime regression fix more robust.
+
+ This makes this fix more robust and less crashy.
+
+ Signed-off-by: Dave Airlie
+
+commit d762631c9306b6580b34db1e7eb57bbcac901390
+Author: Dave Airlie
+Date: Wed Feb 6 15:52:33 2013 +1000
+
+ nouveau: align shared buffers to 256
+
+ We were getting 0xa5 error code on 2D transfers from tiled VRAM to untiled
+ GART when using USB offload devices, this fixes this by upping the alignment
+ on the 2D engine for shared buffers.
+
+ Signed-off-by: Dave Airlie
+
+commit c6980b2add5752a7c285a846b2c9353c9d18afd4
+Author: Dave Airlie
+Date: Wed Feb 6 15:24:09 2013 +1000
+
+ nouveau: fix regression in PRIME since 58284cf32778d54cde139423450bc33360784503
+
+ Signed-off-by: Dave Airlie
+
+commit 59fb3f0252e9b769c5877cfe83d8dbc51cdff232
+Author: Dave Airlie
+Date: Wed Feb 6 14:58:08 2013 +1000
+
+ nouveau: create shared pixmaps in GART
+
+ this creates the shared pixmaps in GART, and makes sure they are untiled.
+
+ Signed-off-by: Dave Airlie
+
+commit 1fdd7db94b55c65ea62cc9eaefff620b20e9e4ea
+Author: Dave Airlie
+Date: Mon Jan 7 15:28:53 2013 +1000
+
+ nouveau: add reverse prime support
+
+ This allows the nvidia card to scanout Intel cards rendering.
+
+ Signed-off-by: Dave Airlie
+
+commit 58284cf32778d54cde139423450bc33360784503
+Author: Christoph Bumiller
+Date: Tue Jan 29 16:38:21 2013 +1000
+
+ dri2: fix missing frame throttle on copy_region buffer swaps
+
+ Signed-off-by: Ben Skeggs
+
+commit 912d418fdfd2e99eef1e5c631c76dda1d82cf451
+Author: Marcin Slusarz
+Date: Mon Jan 21 00:15:38 2013 +0100
+
+ nouveau: put cursor BO in GART
+
+ Keeping it in VRAM wastes CPU time, because cursor_set ioctl reads
+ handed BO back to RAM, just to write it to actual cursor BO.
+
+ Here (nv92/core i7), this patch decreases overall cpu usage of
+ drmmode_load_cursor_argb from 4.6ms to ~90us and lets nv50_crtc_cursor_set
+ disappear from perf traces.
+
+ Signed-off-by: Ben Skeggs
+
commit 8f934fad5d4934936b3265f272ca81e73c60d7dc
Author: Dave Airlie
Date: Mon Jan 7 14:13:10 2013 +1000
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.6/configure.ac new/xf86-video-nouveau-1.0.7/configure.ac
--- old/xf86-video-nouveau-1.0.6/configure.ac 2013-01-07 05:13:03.000000000 +0100
+++ new/xf86-video-nouveau-1.0.7/configure.ac 2013-03-27 09:49:55.000000000 +0100
@@ -22,7 +22,7 @@
AC_PREREQ([2.60])
AC_INIT([xf86-video-nouveau],
- [1.0.6],
+ [1.0.7],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-nouveau])
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.6/missing new/xf86-video-nouveau-1.0.7/missing
--- old/xf86-video-nouveau-1.0.6/missing 2013-01-07 05:10:11.000000000 +0100
+++ new/xf86-video-nouveau-1.0.7/missing 2013-03-27 09:52:13.000000000 +0100
@@ -1,9 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2012-01-06.18; # UTC
+scriptversion=2012-01-06.13; # UTC
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +26,7 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
+ echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
@@ -33,7 +34,7 @@
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-# In the cases where this matters, 'missing' is being run in the
+# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
@@ -64,7 +65,7 @@
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
@@ -73,20 +74,20 @@
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file 'aclocal.m4'
- autoconf touch file 'configure'
- autoheader touch file 'config.h.in'
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
autom4te touch the output file, or create a stub one
- automake touch all 'Makefile.in' files
- bison create 'y.tab.[ch]', if possible, from existing .[ch]
- flex create 'lex.yy.c', if possible, from existing .c
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
- lex create 'lex.yy.c', if possible, from existing .c
+ lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
- yacc create 'y.tab.[ch]', if possible, from existing .[ch]
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
Send bug reports to ."
exit $?
@@ -98,8 +99,8 @@
;;
-*)
- echo 1>&2 "$0: Unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
@@ -126,7 +127,7 @@
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
- # running '$TOOL --version' or '$TOOL --help' to check whether
+ # running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
@@ -138,27 +139,27 @@
case $program in
aclocal*)
echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acinclude.m4' or '${configure_ac}'. You might want
- to install the Automake and Perl packages. Grab them from
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf*)
echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified '${configure_ac}'. You might want to install the
- Autoconf and GNU m4 packages. Grab them from any GNU
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader*)
echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acconfig.h' or '${configure_ac}'. You might want
- to install the Autoconf and GNU m4 packages. Grab them
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
@@ -175,9 +176,9 @@
automake*)
echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
- You might want to install the Automake and Perl packages.
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
@@ -186,10 +187,10 @@
autom4te*)
echo 1>&2 "\
-WARNING: '$1' is needed, but is $msg.
+WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
- You can get '$1' as part of Autoconf from any GNU
+ You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n "$sed_output"`
@@ -209,10 +210,10 @@
bison*|yacc*)
echo 1>&2 "\
-WARNING: '$1' $msg. You should only need it if
- you modified a '.y' file. You may need the Bison package
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
- Bison from any GNU archive site."
+ \`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if test $# -ne 1; then
eval LASTARG=\${$#}
@@ -239,10 +240,10 @@
lex*|flex*)
echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.l' file. You may need the Flex package
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
- Flex from any GNU archive site."
+ \`Flex' from any GNU archive site."
rm -f lex.yy.c
if test $# -ne 1; then
eval LASTARG=\${$#}
@@ -262,10 +263,10 @@
help2man*)
echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
- Help2man package in order for those modifications to take
- effect. You can get Help2man from any GNU archive site."
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
@@ -280,12 +281,12 @@
makeinfo*)
echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.texi' or '.texinfo' file, or any other file
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy 'make' (AIX,
- DU, IRIX). You might want to install the Texinfo package or
- the GNU make package. Grab either from any GNU archive site."
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
@@ -309,12 +310,12 @@
*)
echo 1>&2 "\
-WARNING: '$1' is needed, and is $msg.
+WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
- proper tools for further handling them. Check the 'README' file,
+ proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing '$1' program."
+ some other package would contain this missing \`$1' program."
exit 1
;;
esac
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.6/src/drmmode_display.c new/xf86-video-nouveau-1.0.7/src/drmmode_display.c
--- old/xf86-video-nouveau-1.0.6/src/drmmode_display.c 2013-01-07 05:09:54.000000000 +0100
+++ new/xf86-video-nouveau-1.0.7/src/drmmode_display.c 2013-03-25 13:55:28.000000000 +0100
@@ -42,6 +42,7 @@
#include "libudev.h"
#endif
+static Bool drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height);
typedef struct {
int fd;
uint32_t fb_id;
@@ -345,6 +346,11 @@
drmmode_ConvertToKMode(crtc->scrn, &kmode, mode);
fb_id = drmmode->fb_id;
+#ifdef NOUVEAU_PIXMAP_SHARING
+ if (crtc->randr_crtc->scanout_pixmap)
+ x = y = 0;
+ else
+#endif
if (drmmode_crtc->rotate_fb_id) {
fb_id = drmmode_crtc->rotate_fb_id;
x = 0;
@@ -536,6 +542,35 @@
}
}
+#ifdef NOUVEAU_PIXMAP_SHARING
+static Bool
+drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
+{
+ ScreenPtr screen = xf86ScrnToScreen(crtc->scrn);
+ PixmapPtr screenpix = screen->GetScreenPixmap(screen);
+
+ if (!ppix) {
+ if (crtc->randr_crtc->scanout_pixmap)
+ PixmapStopDirtyTracking(crtc->randr_crtc->scanout_pixmap, screenpix);
+ return TRUE;
+ }
+
+ if (ppix->drawable.width > screenpix->drawable.width ||
+ ppix->drawable.height > screenpix->drawable.height) {
+ Bool ret;
+ ret = drmmode_xf86crtc_resize(crtc->scrn, ppix->drawable.width, ppix->drawable.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;
+ }
+ PixmapStartDirtyTracking(ppix, screenpix, 0, 0);
+ return TRUE;
+}
+#endif
+
static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
.dpms = drmmode_crtc_dpms,
.set_mode_major = drmmode_set_mode_major,
@@ -547,6 +582,10 @@
.shadow_allocate = drmmode_crtc_shadow_allocate,
.shadow_destroy = drmmode_crtc_shadow_destroy,
.gamma_set = drmmode_gamma_set,
+
+#ifdef NOUVEAU_PIXMAP_SHARING
+ .set_scanout_pixmap = drmmode_set_scanout_pixmap,
+#endif
};
@@ -567,7 +606,7 @@
drmmode->mode_res->crtcs[num]);
drmmode_crtc->drmmode = drmmode;
- ret = nouveau_bo_new(pNv->dev, NOUVEAU_BO_VRAM | NOUVEAU_BO_MAP, 0,
+ ret = nouveau_bo_new(pNv->dev, NOUVEAU_BO_GART | NOUVEAU_BO_MAP, 0,
64*64*4, NULL, &drmmode_crtc->cursor);
assert(ret == 0);
@@ -588,6 +627,9 @@
drmmode_output->mode_output =
drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
+ if (!drmmode_output->mode_output)
+ return XF86OutputStatusDisconnected;
+
switch (drmmode_output->mode_output->connection) {
case DRM_MODE_CONNECTED:
status = XF86OutputStatusConnected;
@@ -624,6 +666,9 @@
drmModePropertyPtr props;
xf86MonPtr ddc_mon = NULL;
+ if (!koutput)
+ return NULL;
+
/* look for an EDID property */
for (i = 0; i < koutput->count_props; i++) {
props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
@@ -888,6 +933,9 @@
drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
}
+ if (!drmmode_output->mode_output)
+ return FALSE;
+
for (i = 0; i < drmmode_output->num_props; i++) {
drmmode_prop_ptr p = &drmmode_output->props[i];
if (p->atoms[0] != property)
@@ -1398,6 +1446,7 @@
if (drmmode->uevent_monitor) {
struct udev *u = udev_monitor_get_udev(drmmode->uevent_monitor);
+ RemoveGeneralSocket(udev_monitor_get_fd(drmmode->uevent_monitor));
udev_monitor_unref(drmmode->uevent_monitor);
udev_unref(u);
}
@@ -1485,6 +1534,12 @@
drmmode_screen_fini(ScreenPtr pScreen)
{
ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
+ drmmode_ptr drmmode = drmmode_from_scrn(scrn);
drmmode_uevent_fini(scrn);
+
+ /* Register a wakeup handler to get informed on DRM events */
+ RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA,
+ drmmode_wakeup_handler, scrn);
+ RemoveGeneralSocket(drmmode->fd);
}
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.6/src/nouveau_dri2.c new/xf86-video-nouveau-1.0.7/src/nouveau_dri2.c
--- old/xf86-video-nouveau-1.0.6/src/nouveau_dri2.c 2012-11-02 00:05:35.000000000 +0100
+++ new/xf86-video-nouveau-1.0.7/src/nouveau_dri2.c 2013-03-25 09:30:41.000000000 +0100
@@ -134,6 +134,7 @@
{
struct nouveau_dri2_buffer *src = nouveau_dri2_buffer(pSrcBuffer);
struct nouveau_dri2_buffer *dst = nouveau_dri2_buffer(pDstBuffer);
+ NVPtr pNv = NVPTR(xf86ScreenToScrn(pScreen));
RegionPtr pCopyClip;
GCPtr pGC;
DrawablePtr src_draw, dst_draw;
@@ -178,6 +179,23 @@
}
pGC->funcs->ChangeClip(pGC, CT_REGION, pCopyClip, 0);
ValidateGC(dst_draw, pGC);
+
+ /* If this is a full buffer swap or frontbuffer flush, throttle on
+ * the previous one.
+ */
+ if (dst->base.attachment == DRI2BufferFrontLeft &&
+ REGION_NUM_RECTS(pRegion) == 1) {
+ BoxPtr extents = REGION_EXTENTS(pScreen, pRegion);
+ if (extents->x1 == 0 && extents->y1 == 0 &&
+ extents->x2 == pDraw->width &&
+ extents->y2 == pDraw->height) {
+ PixmapPtr fpix = get_drawable_pixmap(dst_draw);
+ struct nouveau_bo *bo = nouveau_pixmap_bo(fpix);
+ if (bo)
+ nouveau_bo_wait(bo, NOUVEAU_BO_RD, pNv->client);
+ }
+ }
+
pGC->ops->CopyArea(src_draw, dst_draw, pGC, 0, 0,
pDraw->width, pDraw->height, off_x, off_y);
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.6/src/nouveau_exa.c new/xf86-video-nouveau-1.0.7/src/nouveau_exa.c
--- old/xf86-video-nouveau-1.0.6/src/nouveau_exa.c 2012-11-02 00:05:35.000000000 +0100
+++ new/xf86-video-nouveau-1.0.7/src/nouveau_exa.c 2013-03-27 09:49:43.000000000 +0100
@@ -139,6 +139,11 @@
return NULL;
}
+#ifdef NOUVEAU_PIXMAP_SHARING
+ if ((usage_hint & 0xffff) == CREATE_PIXMAP_USAGE_SHARED)
+ nvpix->shared = TRUE;
+#endif
+
return nvpix;
}
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.6/src/nv30_exa.c new/xf86-video-nouveau-1.0.7/src/nv30_exa.c
--- old/xf86-video-nouveau-1.0.6/src/nv30_exa.c 2012-07-26 03:16:20.000000000 +0200
+++ new/xf86-video-nouveau-1.0.7/src/nv30_exa.c 2013-03-05 17:21:25.000000000 +0100
@@ -820,146 +820,146 @@
PUSH_DATA (push, 4096<<16);
PUSH_DATAu(push, pNv->scratch, PFP_PASS, 2 * 4);
- PUSH_DATA (push, 0x18009e80); /* txph r0, a[tex0], t[0] */
- PUSH_DATA (push, 0x1c9dc801);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x3fe1c800);
- PUSH_DATA (push, 0x1802be83); /* txph r1, a[tex1], t[1] */
- PUSH_DATA (push, 0x1c9dc801); /* exit */
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x3fe1c800);
+ PUSH_DATAs(push, 0x18009e80); /* txph r0, a[tex0], t[0] */
+ PUSH_DATAs(push, 0x1c9dc801);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x3fe1c800);
+ PUSH_DATAs(push, 0x1802be83); /* txph r1, a[tex1], t[1] */
+ PUSH_DATAs(push, 0x1c9dc801); /* exit */
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x3fe1c800);
PUSH_DATAu(push, pNv->scratch, PFP_NV12_BILINEAR, 8 * 4);
- PUSH_DATA (push, 0x17028200); /* texr r0.x, a[tex0], t[1] */
- PUSH_DATA (push, 0x1c9dc801);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x3fe1c800);
- PUSH_DATA (push, 0x04000e02); /* madr r1.xyz, r0.x, imm.x, imm.yzww */
- PUSH_DATA (push, 0x1c9c0000);
- PUSH_DATA (push, 0x00000002);
- PUSH_DATA (push, 0x0001f202);
- PUSH_DATA (push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
- PUSH_DATA (push, 0xbf5ee393);
- PUSH_DATA (push, 0x3f078fef);
- PUSH_DATA (push, 0xbf8a6762);
- PUSH_DATA (push, 0x1704ac80); /* texr r0.yz, a[tex1], t[2] */
- PUSH_DATA (push, 0x1c9dc801);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x3fe1c800);
- PUSH_DATA (push, 0x04000e02); /* madr r1.xyz, r0.y, imm, r1 */
- PUSH_DATA (push, 0x1c9cab00);
- PUSH_DATA (push, 0x0001c802);
- PUSH_DATA (push, 0x0001c804);
- PUSH_DATA (push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
- PUSH_DATA (push, 0xbec890d6);
- PUSH_DATA (push, 0x40011687);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x04000e81); /* madr r0.xyz, r0.z, imm, r1 */
- PUSH_DATA (push, 0x1c9d5500);
- PUSH_DATA (push, 0x0001c802);
- PUSH_DATA (push, 0x0001c804);
- PUSH_DATA (push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
- PUSH_DATA (push, 0xbf501a37);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x00000000);
+ PUSH_DATAs(push, 0x17028200); /* texr r0.x, a[tex0], t[1] */
+ PUSH_DATAs(push, 0x1c9dc801);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x3fe1c800);
+ PUSH_DATAs(push, 0x04000e02); /* madr r1.xyz, r0.x, imm.x, imm.yzww */
+ PUSH_DATAs(push, 0x1c9c0000);
+ PUSH_DATAs(push, 0x00000002);
+ PUSH_DATAs(push, 0x0001f202);
+ PUSH_DATAs(push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
+ PUSH_DATAs(push, 0xbf5ee393);
+ PUSH_DATAs(push, 0x3f078fef);
+ PUSH_DATAs(push, 0xbf8a6762);
+ PUSH_DATAs(push, 0x1704ac80); /* texr r0.yz, a[tex1], t[2] */
+ PUSH_DATAs(push, 0x1c9dc801);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x3fe1c800);
+ PUSH_DATAs(push, 0x04000e02); /* madr r1.xyz, r0.y, imm, r1 */
+ PUSH_DATAs(push, 0x1c9cab00);
+ PUSH_DATAs(push, 0x0001c802);
+ PUSH_DATAs(push, 0x0001c804);
+ PUSH_DATAs(push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
+ PUSH_DATAs(push, 0xbec890d6);
+ PUSH_DATAs(push, 0x40011687);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x04000e81); /* madr r0.xyz, r0.z, imm, r1 */
+ PUSH_DATAs(push, 0x1c9d5500);
+ PUSH_DATAs(push, 0x0001c802);
+ PUSH_DATAs(push, 0x0001c804);
+ PUSH_DATAs(push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
+ PUSH_DATAs(push, 0xbf501a37);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x00000000);
PUSH_DATAu(push, pNv->scratch, PFP_NV12_BICUBIC, 24 * 4);
- PUSH_DATA (push, 0x01008604); /* movr r2.xy, a[tex0] */
- PUSH_DATA (push, 0x1c9dc801);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x03000600); /* addr r0.xy, r2, imm.x */
- PUSH_DATA (push, 0x1c9dc808);
- PUSH_DATA (push, 0x00000002);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x3f000000); /* { 0.50, 0.00, 0.00, 0.00 } */
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x17000e06); /* texr r3.xyz, r0, t[0] */
- PUSH_DATA (push, 0x1c9dc800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x17000e00); /* texr r0.xyz, r0.y, t[0] */
- PUSH_DATA (push, 0x1c9caa00);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x02000a02); /* mulr r1.xz, r3.xxyy, imm.xxyy */
- PUSH_DATA (push, 0x1c9ca00c);
- PUSH_DATA (push, 0x0000a002);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
- PUSH_DATA (push, 0x3f800000);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x02001402); /* mulr r1.yw, r0.xxyy, imm.xxyy */
- PUSH_DATA (push, 0x1c9ca000);
- PUSH_DATA (push, 0x0000a002);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
- PUSH_DATA (push, 0x3f800000);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x03001e04); /* addr r2, r2.xyxy, r1 */
- PUSH_DATA (push, 0x1c9c8808);
- PUSH_DATA (push, 0x0001c804);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x17020200); /* texr r0.x, r2, t[1] */
- PUSH_DATA (push, 0x1c9dc808);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x17020402); /* texr r1.y, r2.xwxw, t[1] */
- PUSH_DATA (push, 0x1c9d9808);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x17020202); /* texr r1.x, r2.zyxy, t[1] */
- PUSH_DATA (push, 0x1c9c8c08);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x1f400280); /* lrph r0.x, r0.z, r0, r1.y */
- PUSH_DATA (push, 0x1c9d5400);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0000aa04);
- PUSH_DATA (push, 0x17020400); /* texr r0.y, r2.zwzz, t[1] */
- PUSH_DATA (push, 0x1c9d5c08);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x1f400480); /* lrph r0.y, r0.z, r1.x, r0 */
- PUSH_DATA (push, 0x1c9d5400);
- PUSH_DATA (push, 0x00000004);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x1f400280); /* lrph r0.x, r3.z, r0, r0.y */
- PUSH_DATA (push, 0x1c9d540c);
- PUSH_DATA (push, 0x0001c900);
- PUSH_DATA (push, 0x0000ab00);
- PUSH_DATA (push, 0x04400e80); /* madh r0.xyz, r0.x, imm.x, imm.yzww */
- PUSH_DATA (push, 0x1c9c0100);
- PUSH_DATA (push, 0x00000002);
- PUSH_DATA (push, 0x0001f202);
- PUSH_DATA (push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
- PUSH_DATA (push, 0xbf5ee393);
- PUSH_DATA (push, 0x3f078fef);
- PUSH_DATA (push, 0xbf8a6762);
- PUSH_DATA (push, 0x1704ac02); /* texr r1.yz, a[tex1], t[2] */
- PUSH_DATA (push, 0x1c9dc801);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x0001c800);
- PUSH_DATA (push, 0x04400e80); /* madh r0.xyz, r1.y, imm, r0 */
- PUSH_DATA (push, 0x1c9caa04);
- PUSH_DATA (push, 0x0001c802);
- PUSH_DATA (push, 0x0001c900);
- PUSH_DATA (push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
- PUSH_DATA (push, 0xbec890d6);
- PUSH_DATA (push, 0x40011687);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x04400e81); /* madh r0.xyz, r1.z, imm, r0 */
- PUSH_DATA (push, 0x1c9d5404);
- PUSH_DATA (push, 0x0001c802);
- PUSH_DATA (push, 0x0001c900);
- PUSH_DATA (push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
- PUSH_DATA (push, 0xbf501a37);
- PUSH_DATA (push, 0x00000000);
- PUSH_DATA (push, 0x00000000);
+ PUSH_DATAs(push, 0x01008604); /* movr r2.xy, a[tex0] */
+ PUSH_DATAs(push, 0x1c9dc801);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x03000600); /* addr r0.xy, r2, imm.x */
+ PUSH_DATAs(push, 0x1c9dc808);
+ PUSH_DATAs(push, 0x00000002);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x3f000000); /* { 0.50, 0.00, 0.00, 0.00 } */
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x17000e06); /* texr r3.xyz, r0, t[0] */
+ PUSH_DATAs(push, 0x1c9dc800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x17000e00); /* texr r0.xyz, r0.y, t[0] */
+ PUSH_DATAs(push, 0x1c9caa00);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x02000a02); /* mulr r1.xz, r3.xxyy, imm.xxyy */
+ PUSH_DATAs(push, 0x1c9ca00c);
+ PUSH_DATAs(push, 0x0000a002);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
+ PUSH_DATAs(push, 0x3f800000);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x02001402); /* mulr r1.yw, r0.xxyy, imm.xxyy */
+ PUSH_DATAs(push, 0x1c9ca000);
+ PUSH_DATAs(push, 0x0000a002);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0xbf800000); /* { -1.00, 1.00, 0.00, 0.00 } */
+ PUSH_DATAs(push, 0x3f800000);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x03001e04); /* addr r2, r2.xyxy, r1 */
+ PUSH_DATAs(push, 0x1c9c8808);
+ PUSH_DATAs(push, 0x0001c804);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x17020200); /* texr r0.x, r2, t[1] */
+ PUSH_DATAs(push, 0x1c9dc808);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x17020402); /* texr r1.y, r2.xwxw, t[1] */
+ PUSH_DATAs(push, 0x1c9d9808);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x17020202); /* texr r1.x, r2.zyxy, t[1] */
+ PUSH_DATAs(push, 0x1c9c8c08);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x1f400280); /* lrph r0.x, r0.z, r0, r1.y */
+ PUSH_DATAs(push, 0x1c9d5400);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0000aa04);
+ PUSH_DATAs(push, 0x17020400); /* texr r0.y, r2.zwzz, t[1] */
+ PUSH_DATAs(push, 0x1c9d5c08);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x1f400480); /* lrph r0.y, r0.z, r1.x, r0 */
+ PUSH_DATAs(push, 0x1c9d5400);
+ PUSH_DATAs(push, 0x00000004);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x1f400280); /* lrph r0.x, r3.z, r0, r0.y */
+ PUSH_DATAs(push, 0x1c9d540c);
+ PUSH_DATAs(push, 0x0001c900);
+ PUSH_DATAs(push, 0x0000ab00);
+ PUSH_DATAs(push, 0x04400e80); /* madh r0.xyz, r0.x, imm.x, imm.yzww */
+ PUSH_DATAs(push, 0x1c9c0100);
+ PUSH_DATAs(push, 0x00000002);
+ PUSH_DATAs(push, 0x0001f202);
+ PUSH_DATAs(push, 0x3f9507c8); /* { 1.16, -0.87, 0.53, -1.08 } */
+ PUSH_DATAs(push, 0xbf5ee393);
+ PUSH_DATAs(push, 0x3f078fef);
+ PUSH_DATAs(push, 0xbf8a6762);
+ PUSH_DATAs(push, 0x1704ac02); /* texr r1.yz, a[tex1], t[2] */
+ PUSH_DATAs(push, 0x1c9dc801);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x0001c800);
+ PUSH_DATAs(push, 0x04400e80); /* madh r0.xyz, r1.y, imm, r0 */
+ PUSH_DATAs(push, 0x1c9caa04);
+ PUSH_DATAs(push, 0x0001c802);
+ PUSH_DATAs(push, 0x0001c900);
+ PUSH_DATAs(push, 0x00000000); /* { 0.00, -0.39, 2.02, 0.00 } */
+ PUSH_DATAs(push, 0xbec890d6);
+ PUSH_DATAs(push, 0x40011687);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x04400e81); /* madh r0.xyz, r1.z, imm, r0 */
+ PUSH_DATAs(push, 0x1c9d5404);
+ PUSH_DATAs(push, 0x0001c802);
+ PUSH_DATAs(push, 0x0001c900);
+ PUSH_DATAs(push, 0x3fcc432d); /* { 1.60, -0.81, 0.00, 0.00 } */
+ PUSH_DATAs(push, 0xbf501a37);
+ PUSH_DATAs(push, 0x00000000);
+ PUSH_DATAs(push, 0x00000000);
return TRUE;
}
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.6/src/nv_accel_common.c new/xf86-video-nouveau-1.0.7/src/nv_accel_common.c
--- old/xf86-video-nouveau-1.0.6/src/nv_accel_common.c 2012-06-01 15:19:04.000000000 +0200
+++ new/xf86-video-nouveau-1.0.7/src/nv_accel_common.c 2013-03-05 17:21:25.000000000 +0100
@@ -35,10 +35,19 @@
NVPtr pNv = NVPTR(scrn);
Bool scanout = (usage_hint & NOUVEAU_CREATE_PIXMAP_SCANOUT);
Bool tiled = (usage_hint & NOUVEAU_CREATE_PIXMAP_TILED);
+ Bool shared = FALSE;
union nouveau_bo_config cfg = {};
int flags = NOUVEAU_BO_MAP | (bpp >= 8 ? NOUVEAU_BO_VRAM : 0);
int cpp = bpp / 8, ret;
+#ifdef NOUVEAU_PIXMAP_SHARING
+ shared = ((usage_hint & 0xffff) == CREATE_PIXMAP_USAGE_SHARED);
+#endif
+
+ flags = NOUVEAU_BO_MAP;
+ if (bpp >= 8)
+ flags |= shared ? NOUVEAU_BO_GART : NOUVEAU_BO_VRAM;
+
if (pNv->Architecture >= NV_ARCH_50) {
if (scanout) {
if (pNv->tiled_scanout) {
@@ -48,9 +57,9 @@
*pitch = NOUVEAU_ALIGN(width * cpp, 256);
}
} else {
- if (bpp >= 8)
+ if (bpp >= 8 && !shared)
tiled = TRUE;
- *pitch = NOUVEAU_ALIGN(width * cpp, 64);
+ *pitch = NOUVEAU_ALIGN(width * cpp, shared ? 256 : 64);
}
} else {
if (scanout && pNv->tiled_scanout)
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.6/src/nv_driver.c new/xf86-video-nouveau-1.0.7/src/nv_driver.c
--- old/xf86-video-nouveau-1.0.6/src/nv_driver.c 2013-01-07 05:12:55.000000000 +0100
+++ new/xf86-video-nouveau-1.0.7/src/nv_driver.c 2013-03-27 09:49:43.000000000 +0100
@@ -432,8 +432,8 @@
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVLeaveVT is called.\n");
ret = drmDropMaster(pNv->dev->fd);
- if (ret)
- ErrorF("Error dropping master: %d\n", ret);
+ if (ret && errno != EIO && errno != ENODEV)
+ ErrorF("Error dropping master: %i(%m)\n", -errno);
}
static void
@@ -452,7 +452,7 @@
{
RegionRec pixregion;
- PixmapRegionInit(&pixregion, dirty->slave_dst->master_pixmap);
+ PixmapRegionInit(&pixregion, dirty->slave_dst);
DamageRegionAppend(&dirty->slave_dst->drawable, &pixregion);
PixmapSyncDirtyHelper(dirty, &pixregion);
@@ -624,8 +624,9 @@
{
NVPtr pNv = NVPTR(pScrn);
- nouveau_device_del(&pNv->dev);
drmFree(pNv->drm_device_name);
+ nouveau_client_del(&pNv->client);
+ nouveau_device_del(&pNv->dev);
}
static Bool
@@ -676,7 +677,7 @@
if (value & DRM_PRIME_CAP_EXPORT)
pScrn->capabilities |= RR_Capability_SourceOutput;
if (value & DRM_PRIME_CAP_IMPORT)
- pScrn->capabilities |= RR_Capability_SourceOffload;
+ pScrn->capabilities |= RR_Capability_SourceOffload | RR_Capability_SinkOutput;
}
#endif
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org