xserver-xorg-video-nouveau: Changes to 'debian-unstable'
ChangeLog | 51 +++++++++++++++++++++++++++++++++++++++++
configure.ac | 2 -
debian/changelog | 4 +--
debian/rules | 2 -
src/nouveau_exa.c | 12 ++++++---
src/nv10_exa.c | 4 +--
src/nv30_exa.c | 6 ++--
src/nv30_xv_tex.c | 2 -
src/nv40_exa.c | 6 ++--
src/nv40_xv_tex.c | 2 -
src/nv50_accel.h | 12 ++++-----
src/nvc0_accel.h | 28 +++++++++++++---------
src/nve0_shader.h | 66 ++++++++++++++++++------------------------------------
13 files changed, 117 insertions(+), 80 deletions(-)
New commits:
commit 9488006b049a6e7c7c4c92ce039191307cbe4dfe
Author: Sven Joachim <svenjoac@gmx.de>
Date: Tue Jun 19 17:15:00 2012 +0200
New upstream release
diff --git a/ChangeLog b/ChangeLog
index 5cd2248..c20438f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,54 @@
+commit 0d2b414aff634c996e0468bb0df1894d6c28c09e
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date: Tue Jun 19 10:12:37 2012 +1000
+
+ bump version to 1.0.1
+
+commit f84c28c9e6a0079e527655994689cb9c2ba51999
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date: Tue Jun 19 09:49:02 2012 +1000
+
+ exa: fix remaining signed datatype issues
+
+ Wasn't expecting this situation, apparently it happens..
+
+ Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+
+commit 794141f22179a09ba6b2a094ba72316c298fee8b
+Author: Maarten Maathuis <madman2003@gmail.com>
+Date: Tue Jun 19 00:28:59 2012 +0200
+
+ exa: fix various issues in transfer bo handling
+
+ Thanks to "Christoph Bumiller <e0425955@student.tuwien.ac.at>" for hinting
+ at the cause of the memory leak.
+
+ Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
+ Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+
+commit 661d0cf42219a063f8faa0518f3490ddd38209ff
+Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
+Date: Mon Jun 18 17:13:55 2012 +0200
+
+ nve0: fix and improve NV12 shader
+
+ Only the 1st set of coordinates is valid.
+ NVC0 was fixed in 9a3e579f637267b32efc46cfce5d1a36a41323b1.
+
+commit a907efe44177298cb1c42a236aab087c14b71657
+Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
+Date: Mon Jun 18 13:50:27 2012 +0200
+
+ nvc0/accel: oops fix method size in previous patch
+
+commit 8805e20bb9c1cfb7477f3eb7def64c5711fc91ea
+Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
+Date: Mon Jun 18 13:41:43 2012 +0200
+
+ nvc0/accel: use correct (signed) vertex data type in PUSH_VTX1/2s
+
+ Could have kept s16 but decided against mask and shift.
+
commit 6dbf4ea12600275775123f9f564469454415da55
Author: Ben Skeggs <bskeggs@redhat.com>
Date: Mon Jun 18 13:28:07 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index 70be625..b5663bc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,8 @@
-xserver-xorg-video-nouveau (1:1.0.0-1) UNRELEASED; urgency=low
+xserver-xorg-video-nouveau (1:1.0.1-1) UNRELEASED; urgency=low
[ Maarten Lankhorst ]
* New upstream snapshot.
- - Bump to 1.0.0 release.
+ - Bump to 1.0.1 release.
- Pick up a firefox tab draw fix for nv50 cards.
[ Sven Joachim ]
diff --git a/debian/rules b/debian/rules
index 13a65b3..9ba69fd 100755
--- a/debian/rules
+++ b/debian/rules
@@ -34,7 +34,7 @@ get-orig-source:
git clone git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau && \
cd xf86-video-nouveau && git log > ChangeLog && \
REVISION=$$(git show --pretty=format:"%h" HEAD | head -n1) && cd .. && \
- PREFIX=xserver-xorg-video-nouveau_1.0.0+git$$(date +%Y%m%d)+$$REVISION && \
+ PREFIX=xserver-xorg-video-nouveau_1.0.1+git$$(date +%Y%m%d)+$$REVISION && \
rm -rf xf86-video-nouveau/.git && \
tar czf $$PREFIX.orig.tar.gz xf86-video-nouveau && \
rm -rf xf86-video-nouveau
commit 0d2b414aff634c996e0468bb0df1894d6c28c09e
Author: Ben Skeggs <bskeggs@redhat.com>
Date: Tue Jun 19 10:12:37 2012 +1000
bump version to 1.0.1
diff --git a/configure.ac b/configure.ac
index cc8732b..af126fb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ([2.60])
AC_INIT([xf86-video-nouveau],
- [1.0.0],
+ [1.0.1],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-nouveau])
commit f84c28c9e6a0079e527655994689cb9c2ba51999
Author: Ben Skeggs <bskeggs@redhat.com>
Date: Tue Jun 19 09:49:02 2012 +1000
exa: fix remaining signed datatype issues
Wasn't expecting this situation, apparently it happens..
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
diff --git a/src/nv10_exa.c b/src/nv10_exa.c
index a3f7df3..cb9eb7c 100644
--- a/src/nv10_exa.c
+++ b/src/nv10_exa.c
@@ -594,9 +594,9 @@ PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
BEGIN_NV04(push, NV10_3D(VERTEX_TX0_2I), 1);
- PUSH_DATA (push, (y1 << 16) | x1);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
BEGIN_NV04(push, NV10_3D(VERTEX_TX1_2I), 1);
- PUSH_DATA (push, (y2 << 16) | x2);
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV10_3D(VERTEX_POS_3F_X), 3);
PUSH_DATAf(push, dx);
PUSH_DATAf(push, dy);
diff --git a/src/nv30_exa.c b/src/nv30_exa.c
index 9be52e5..95509bc 100644
--- a/src/nv30_exa.c
+++ b/src/nv30_exa.c
@@ -545,10 +545,10 @@ PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(8)), 2);
- PUSH_DATA (push, (y1 << 16) | x1);
- PUSH_DATA (push, (y2 << 16) | x2);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
void
diff --git a/src/nv30_xv_tex.c b/src/nv30_xv_tex.c
index 33c5602..bf75cfa 100644
--- a/src/nv30_xv_tex.c
+++ b/src/nv30_xv_tex.c
@@ -167,7 +167,7 @@ NV30StopTexturedVideo(ScrnInfoPtr pScrn, pointer data, Bool Exit)
PUSH_DATAf(push, (sx)); PUSH_DATAf(push, (sy)); \
PUSH_DATAf(push, (sx)/2.0); PUSH_DATAf(push, (sy)/2.0); \
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1); \
- PUSH_DATA (push, ((dy)<<16)|(dx)); \
+ PUSH_DATA (push, (((dy)&0xffff)<<16)|((dx)&0xffff)); \
} while(0)
int
diff --git a/src/nv40_exa.c b/src/nv40_exa.c
index ce0d78a..977c855 100644
--- a/src/nv40_exa.c
+++ b/src/nv40_exa.c
@@ -527,10 +527,10 @@ PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(8)), 2);
- PUSH_DATA (push, (y1 << 16) | x1);
- PUSH_DATA (push, (y2 << 16) | x2);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
void
diff --git a/src/nv40_xv_tex.c b/src/nv40_xv_tex.c
index 9f2e336..79ef1fc 100644
--- a/src/nv40_xv_tex.c
+++ b/src/nv40_xv_tex.c
@@ -167,7 +167,7 @@ NV40StopTexturedVideo(ScrnInfoPtr pScrn, pointer data, Bool Exit)
PUSH_DATAf(push, (sx)); PUSH_DATAf(push, (sy)); \
PUSH_DATAf(push, (sx)/2.0); PUSH_DATAf(push, (sy)/2.0); \
BEGIN_NV04(push, NV30_3D(VTX_ATTR_2I(0)), 1); \
- PUSH_DATA (push, ((dy)<<16)|(dx)); \
+ PUSH_DATA (push, (((dy)&0xffff)<<16)|((dx)&0xffff)); \
} while(0)
int
diff --git a/src/nv50_accel.h b/src/nv50_accel.h
index 24f0fa8..87c88a3 100644
--- a/src/nv50_accel.h
+++ b/src/nv50_accel.h
@@ -53,20 +53,18 @@ PUSH_VTX1s(struct nouveau_pushbuf *push, float sx, float sy, int dx, int dy)
PUSH_DATAf(push, sx);
PUSH_DATAf(push, sy);
BEGIN_NV04(push, NV50_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
static __inline__ void
PUSH_VTX2s(struct nouveau_pushbuf *push,
int x1, int y1, int x2, int y2, int dx, int dy)
{
- BEGIN_NV04(push, NV50_3D(VTX_ATTR_2F_X(8)), 4);
- PUSH_DATAf(push, x1);
- PUSH_DATAf(push, y1);
- PUSH_DATAf(push, x2);
- PUSH_DATAf(push, y2);
+ BEGIN_NV04(push, NV50_3D(VTX_ATTR_2I(8)), 2);
+ PUSH_DATA (push, ((y1 & 0xffff) << 16) | (x1 & 0xffff));
+ PUSH_DATA (push, ((y2 & 0xffff) << 16) | (x2 & 0xffff));
BEGIN_NV04(push, NV50_3D(VTX_ATTR_2I(0)), 1);
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, ((dy & 0xffff) << 16) | (dx & 0xffff));
}
static __inline__ void
commit 794141f22179a09ba6b2a094ba72316c298fee8b
Author: Maarten Maathuis <madman2003@gmail.com>
Date: Tue Jun 19 00:28:59 2012 +0200
exa: fix various issues in transfer bo handling
Thanks to "Christoph Bumiller <e0425955@student.tuwien.ac.at>" for hinting
at the cause of the memory leak.
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
index 55dce99..9b6b1f3 100644
--- a/src/nouveau_exa.c
+++ b/src/nouveau_exa.c
@@ -175,20 +175,24 @@ nouveau_exa_scratch(NVPtr pNv, int size, struct nouveau_bo **pbo, int *off)
ret = nouveau_bo_new(pNv->dev, NOUVEAU_BO_GART | NOUVEAU_BO_MAP,
0, NOUVEAU_ALIGN(size, 1 * 1024 * 1024),
NULL, &bo);
- if (ret == 0)
- ret = nouveau_bo_map(bo, NOUVEAU_BO_RDWR, pNv->client);
if (ret != 0)
return ret;
+ ret = nouveau_bo_map(bo, NOUVEAU_BO_RDWR, pNv->client);
+ if (ret != 0) {
+ nouveau_bo_ref(NULL, &bo);
+ return ret;
+ }
+
nouveau_bo_ref(bo, &pNv->transfer);
+ nouveau_bo_ref(NULL, &bo);
pNv->transfer_offset = 0;
}
*off = pNv->transfer_offset;
*pbo = pNv->transfer;
- pNv->transfer_offset += size + 0xff;
- pNv->transfer_offset &= ~0xff;
+ pNv->transfer_offset += size;
return 0;
}
commit 661d0cf42219a063f8faa0518f3490ddd38209ff
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Mon Jun 18 17:13:55 2012 +0200
nve0: fix and improve NV12 shader
Only the 1st set of coordinates is valid.
NVC0 was fixed in 9a3e579f637267b32efc46cfce5d1a36a41323b1.
diff --git a/src/nve0_shader.h b/src/nve0_shader.h
index b727d68..4705075 100644
--- a/src/nve0_shader.h
+++ b/src/nve0_shader.h
@@ -399,7 +399,7 @@ NVE0FP_NV12[] = {
0x00000000,
0x00000000,
0x80000000,
- 0x00000a0a,
+ 0x0000000a,
0x00000000,
0x00000000,
0x00000000,
@@ -413,48 +413,28 @@ NVE0FP_NV12[] = {
0x00000000,
0x0000000f,
0x00000000,
- 0xfff09c00,
- 0xc07e007c,
- 0x10209c00,
- 0xc8000000,
- 0x0bf01c40,
- 0xc07e0080,
- 0x0bf05c40,
- 0xc07e0084,
- 0xfc001e86,
- 0x80120000,
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x00015c40,
- 0x58004000,
- 0x1050dc20,
- 0x50004000,
- 0x20511c20,
- 0x50004000,
- 0x30515c20,
- 0x50004000,
- 0x0bf01c40,
- 0xc07e0090,
- 0x0bf05c40,
- 0xc07e0094,
- 0xfc001e86,
- 0x80130001,
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x4000dc40,
- 0x30064000,
- 0x50011c40,
- 0x30084000,
- 0x60015c40,
- 0x300a4000,
- 0x70101c40,
- 0x30064000,
- 0x90109c40,
- 0x300a4000,
- 0x80105c40,
- 0x30084000,
- 0x00001de7,
- 0x80000000,
+ 0xe23282e7, 0x2c220202, /* sched 0x2e 0x28 0x23 0x2e 0x20 0x20 0xc2 */
+ 0xfff09c00, 0xc07e007c, /* interp pass f32 $r2 a[0x7c] */
+ 0x10209c00, 0xc8000000, /* rcp f32 $r2 $r2 */
+ 0x0bf01c40, 0xc07e0080, /* interp mul f32 $r0 a[0x80] $r2 0 */
+ 0x0bf05c40, 0xc07e0084, /* interp mul f32 $r1 a[0x84] $r2 0 */
+ 0xfc011e86, 0x80120000, /* tex t { # # # $r4 } t2d c[0x0] { $r0 $r1 } */
+ 0xfc001f06, 0x80130001, /* tex p { # # $r0 $r1 } t2d c[0x4] { $r0 $r1 } */
+ 0x04001de6, 0xf0000000, /* texbar 1 */
+ 0x02004287, 0x22004a22, /* sched 0x28 0x4 0x20 0x20 0xa2 0x4 0x20 */
+ 0x00415c40, 0x58004000, /* mul ftz rn f32 $r5 $r4 c0[0] */
+ 0x1050dc20, 0x50004000, /* add ftz rn f32 $r3 $r5 c0[0x4] */
+ 0x20511c20, 0x50004000, /* add ftz rn f32 $r4 $r5 c0[0x8] */
+ 0x30515c20, 0x50004000, /* add ftz rn f32 $r5 $r5 c0[0xc] */
+ 0x00001de6, 0xf0000000, /* texbar 0 */
+ 0x4000dc40, 0x30064000, /* fma ftz rn f32 $r3 $r0 c0[0x10] $r3 */
+ 0x50011c40, 0x30084000, /* fma ftz rn f32 $r4 $r0 c0[0x14] $r4 */
+ 0x42004287, 0x200002e0, /* sched 0x28 0x4 0x20 0x4 0x2e 0 0 */
+ 0x60015c40, 0x300a4000, /* fma ftz rn f32 $r5 $r0 c0[0x18] $r5 */
+ 0x70101c40, 0x30064000, /* fma ftz rn f32 $r0 $r1 c0[0x1c] $r3 */
+ 0x90109c40, 0x300a4000, /* fma ftz rn f32 $r2 $r1 c0[0x24] $r5 */
+ 0x80105c40, 0x30084000, /* fma ftz rn f32 $r1 $r1 c0[0x20] $r4 */
+ 0x00001de7, 0x80000000, /* exit */
};
#endif
commit a907efe44177298cb1c42a236aab087c14b71657
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Mon Jun 18 13:50:27 2012 +0200
nvc0/accel: oops fix method size in previous patch
diff --git a/src/nvc0_accel.h b/src/nvc0_accel.h
index 9ba8757..38c58fd 100644
--- a/src/nvc0_accel.h
+++ b/src/nvc0_accel.h
@@ -57,7 +57,7 @@ PUSH_VTX1s(struct nouveau_pushbuf *push, float sx, float sy, int dx, int dy)
PUSH_DATA (push, VTX_ATTR(1, 2, FLOAT, 4));
PUSH_DATAf(push, sx);
PUSH_DATAf(push, sy);
- BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 2);
+ BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 3);
PUSH_DATA (push, VTX_ATTR(0, 2, SSCALED, 4));
PUSH_DATA (push, dx);
PUSH_DATA (push, dy);
commit 8805e20bb9c1cfb7477f3eb7def64c5711fc91ea
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Mon Jun 18 13:41:43 2012 +0200
nvc0/accel: use correct (signed) vertex data type in PUSH_VTX1/2s
Could have kept s16 but decided against mask and shift.
diff --git a/src/nvc0_accel.h b/src/nvc0_accel.h
index 41cf477..9ba8757 100644
--- a/src/nvc0_accel.h
+++ b/src/nvc0_accel.h
@@ -58,23 +58,27 @@ PUSH_VTX1s(struct nouveau_pushbuf *push, float sx, float sy, int dx, int dy)
PUSH_DATAf(push, sx);
PUSH_DATAf(push, sy);
BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 2);
- PUSH_DATA (push, VTX_ATTR(0, 2, USCALED, 2));
- PUSH_DATA (push, (dy << 16) | dx);
+ PUSH_DATA (push, VTX_ATTR(0, 2, SSCALED, 4));
+ PUSH_DATA (push, dx);
+ PUSH_DATA (push, dy);
}
static __inline__ void
PUSH_VTX2s(struct nouveau_pushbuf *push,
int x0, int y0, int x1, int y1, int dx, int dy)
{
- BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 2);
- PUSH_DATA (push, VTX_ATTR(1, 2, USCALED, 2));
- PUSH_DATA (push, (y0 << 16) | x0);
- BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 2);
- PUSH_DATA (push, VTX_ATTR(2, 2, USCALED, 2));
- PUSH_DATA (push, (y1 << 16) | x1);
- BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 2);
- PUSH_DATA (push, VTX_ATTR(0, 2, USCALED, 2));
- PUSH_DATA (push, (dy << 16) | dx);
+ BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 3);
+ PUSH_DATA (push, VTX_ATTR(1, 2, SSCALED, 4));
+ PUSH_DATA (push, x0);
+ PUSH_DATA (push, y0);
+ BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 3);
+ PUSH_DATA (push, VTX_ATTR(2, 2, SSCALED, 4));
+ PUSH_DATA (push, x1);
+ PUSH_DATA (push, y1);
+ BEGIN_NVC0(push, NVC0_3D(VTX_ATTR_DEFINE), 3);
+ PUSH_DATA (push, VTX_ATTR(0, 2, SSCALED, 4));
+ PUSH_DATA (push, dx);
+ PUSH_DATA (push, dy);
}
static __inline__ void
Reply to: