ChangeLog         |   30 +++++++++++++++++
 configure.ac      |    2 -
 debian/changelog  |    9 +++++
 src/Makefile.am   |   48 ++++++++++++++++++++--------
 src/nouveau_exa.c |   91 +++++++++++++++++++++++++++++++++---------------------
 src/nouveau_xv.c  |    5 --
 src/nv50_accel.h  |    8 ++--
 src/nv_driver.c   |   25 +-------------
 src/nv_type.h     |    7 +---
 9 files changed, 141 insertions(+), 84 deletions(-)

New commits:
commit ec72a0fb8df31ac71b56d4b5bf554dc60c1eb858
Author: Maarten Lankhorst <maarten.lankho...@canonical.com>
Date:   Mon Jun 18 09:23:20 2012 +0200

    New upstream snapshot.
    
    * New upstream snapshot.
      - Bump to 1.0.0 release.
      - Pick up a firefox tab draw fix on nv50.

diff --git a/ChangeLog b/ChangeLog
index d40e05b..5cd2248 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+commit 6dbf4ea12600275775123f9f564469454415da55
+Author: Ben Skeggs <bske...@redhat.com>
+Date:   Mon Jun 18 13:28:07 2012 +1000
+
+    bump version to 1.0.0
+    
+    Signed-off-by: Ben Skeggs <bske...@redhat.com>
+
+commit 5e74cee90eeb4e8e638b371a5f1a2c6737be70ff
+Author: Ben Skeggs <bske...@redhat.com>
+Date:   Mon Jun 18 15:36:47 2012 +1000
+
+    distcheck fixes
+
+commit 383aef5a8882a65efdf34e8d2681cd5ccec51b22
+Author: Ben Skeggs <bske...@redhat.com>
+Date:   Mon Jun 18 13:31:37 2012 +1000
+
+    exa: drop massive gart allocation in favour of smaller ones, as needed
+    
+    Signed-off-by: Ben Skeggs <bske...@redhat.com>
+
+commit 52836c15b1c0e4f28d92ca9e6c76872481917fd4
+Author: Ben Skeggs <bske...@redhat.com>
+Date:   Mon Jun 18 13:20:18 2012 +1000
+
+    nv50/exa: somehow fix firefox tabs not being drawn properly since vp xfrm
+    
+    Signed-off-by: Ben Skeggs <bske...@redhat.com>
+
 commit 36d3f8c28c55c05ccf4efa985831d2d249bad2fe
 Author: Ben Skeggs <bske...@redhat.com>
 Date:   Wed Jun 13 22:41:58 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index fc8a582..c69ac0b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+xserver-xorg-video-nouveau (1:1.0.0-1) UNRELEASED; urgency=low
+
+  [ Maarten Lankhorst ]
+  * New upstream snapshot.
+    - Bump to 1.0.0 release.
+    - Pick up a firefox tab draw fix for nv50 cards.
+
+ -- Maarten Lankhorst <maarten.lankho...@canonical.com>  Mon, 18 Jun 2012 
09:20:34 +0200
+
 xserver-xorg-video-nouveau (1:0.0.16+git20120614+36d3f8c-1) unstable; 
urgency=low
 
   [ Maarten Lankhorst ]

commit 6dbf4ea12600275775123f9f564469454415da55
Author: Ben Skeggs <bske...@redhat.com>
Date:   Mon Jun 18 13:28:07 2012 +1000

    bump version to 1.0.0
    
    Signed-off-by: Ben Skeggs <bske...@redhat.com>

diff --git a/configure.ac b/configure.ac
index afb6cde..cc8732b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-nouveau],
-        [0.0.16],
+        [1.0.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-nouveau])
 

commit 5e74cee90eeb4e8e638b371a5f1a2c6737be70ff
Author: Ben Skeggs <bske...@redhat.com>
Date:   Mon Jun 18 15:36:47 2012 +1000

    distcheck fixes

diff --git a/src/Makefile.am b/src/Makefile.am
index 6aeb486..bf9c967 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,19 +30,12 @@ nouveau_drv_la_LDFLAGS = -module -avoid-version 
@LIBDRM_NOUVEAU_LIBS@ \
 nouveau_drv_ladir = @moduledir@/drivers
 
 nouveau_drv_la_SOURCES = \
-                        nouveau_class.h nouveau_local.h \
                         nouveau_exa.c nouveau_xv.c nouveau_dri2.c \
                         nouveau_wfb.c \
-                        nv_accel_common.c nv04_accel.h \
-                        nv_const.h \
+                        nv_accel_common.c \
                         nv_dma.c \
-                        nv_dma.h \
                         nv_driver.c \
-                        nv_include.h \
-                        nv_proto.h \
-                        nv_rop.h \
                         nv_shadow.c \
-                        nv_type.h \
                         nv04_exa.c \
                         nv04_xv_ovl.c \
                         nv04_xv_blit.c \
@@ -52,15 +45,42 @@ nouveau_drv_la_SOURCES = \
                         nv30_xv_tex.c \
                         nv40_exa.c \
                         nv40_xv_tex.c \
-                        nv50_accel.c nv50_accel.h \
+                        nv50_accel.c \
                         nv50_exa.c \
                         nv50_xv.c \
-                        nv50_texture.h \
-                        nvc0_accel.c nvc0_accel.h \
+                        nvc0_accel.c \
                         nvc0_exa.c \
                         nvc0_xv.c \
                         drmmode_display.c \
-                        compat-api.h \
-                        vl_hwmc.c \
-                        vl_hwmc.h
+                        vl_hwmc.c
+
+EXTRA_DIST = hwdefs/nv_3ddefs.xml.h \
+            hwdefs/nv_m2mf.xml.h \
+            hwdefs/nv_object.xml.h \
+            hwdefs/nv01_2d.xml.h \
+            hwdefs/nv10_3d.xml.h \
+            hwdefs/nv30-40_3d.xml.h \
+            hwdefs/nv50_2d.xml.h \
+            hwdefs/nv50_3d.xml.h \
+            hwdefs/nv50_defs.xml.h \
+            hwdefs/nv50_texture.h \
+            hwdefs/nvc0_3d.xml.h \
+            hwdefs/nvc0_m2mf.xml.h \
+            nouveau_local.h \
+            nv_const.h \
+            nv_dma.h \
+            nv_include.h \
+            nv_proto.h \
+            nv_rop.h \
+            nv_type.h \
+            nv04_accel.h \
+            nv50_accel.h \
+            nvc0_accel.h \
+            nvc0_shader.h \
+            nve0_shader.h \
+            compat-api.h \
+            vl_hwmc.c \
+            vl_hwmc.h
+
+
 

commit 383aef5a8882a65efdf34e8d2681cd5ccec51b22
Author: Ben Skeggs <bske...@redhat.com>
Date:   Mon Jun 18 13:31:37 2012 +1000

    exa: drop massive gart allocation in favour of smaller ones, as needed
    
    Signed-off-by: Ben Skeggs <bske...@redhat.com>

diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
index fb27b1e..55dce99 100644
--- a/src/nouveau_exa.c
+++ b/src/nouveau_exa.c
@@ -164,6 +164,34 @@ nv50_style_tiled_pixmap(PixmapPtr ppix)
               nouveau_pixmap_bo(ppix)->config.nv50.memtype;
 }
 
+static int
+nouveau_exa_scratch(NVPtr pNv, int size, struct nouveau_bo **pbo, int *off)
+{
+       struct nouveau_bo *bo;
+       int ret;
+
+       if (!pNv->transfer ||
+            pNv->transfer->size <= pNv->transfer_offset + size) {
+               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;
+
+               nouveau_bo_ref(bo, &pNv->transfer);
+               pNv->transfer_offset = 0;
+       }
+
+       *off = pNv->transfer_offset;
+       *pbo = pNv->transfer;
+
+       pNv->transfer_offset += size + 0xff;
+       pNv->transfer_offset &= ~0xff;
+       return 0;
+}
+
 static Bool
 nouveau_exa_download_from_screen(PixmapPtr pspix, int x, int y, int w, int h,
                                 char *dst, int dst_pitch)
@@ -171,38 +199,36 @@ nouveau_exa_download_from_screen(PixmapPtr pspix, int x, 
int y, int w, int h,
        ScrnInfoPtr pScrn = xf86ScreenToScrn(pspix->drawable.pScreen);
        NVPtr pNv = NVPTR(pScrn);
        struct nouveau_bo *bo;
-       int src_pitch, tmp_pitch, cpp, offset;
-       int max_lines, lines, i;
+       int src_pitch, tmp_pitch, cpp, i;
        const char *src;
        Bool ret;
 
-       src_pitch  = exaGetPixmapPitch(pspix);
        cpp = pspix->drawable.bitsPerPixel >> 3;
-       offset = (y * src_pitch) + (x * cpp);
-
-       if (!pNv->GART)
-               goto memcpy;
-
+       src_pitch  = exaGetPixmapPitch(pspix);
        tmp_pitch = w * cpp;
-       max_lines = pNv->GART->size / tmp_pitch;
+
        while (h) {
-               lines = max_lines;
-               if (lines > h)
-                       lines = h;
+               const int lines = (h > 2047) ? 2047 : h;
+               struct nouveau_bo *tmp;
+               int tmp_offset;
 
-               if (!NVAccelM2MF(pNv, w, lines, cpp, 0, 0,
+               if (nouveau_exa_scratch(pNv, lines * tmp_pitch,
+                                       &tmp, &tmp_offset))
+                       goto memcpy;
+
+               if (!NVAccelM2MF(pNv, w, lines, cpp, 0, tmp_offset,
                                 nouveau_pixmap_bo(pspix), NOUVEAU_BO_VRAM,
                                 src_pitch, pspix->drawable.height, x, y,
-                                pNv->GART, NOUVEAU_BO_GART, tmp_pitch,
+                                tmp, NOUVEAU_BO_GART, tmp_pitch,
                                 lines, 0, 0))
                        goto memcpy;
 
-               nouveau_bo_map(pNv->GART, NOUVEAU_BO_RD, pNv->client);
+               nouveau_bo_wait(tmp, NOUVEAU_BO_RD, pNv->client);
                if (src_pitch == tmp_pitch) {
-                       memcpy(dst, pNv->GART->map, dst_pitch * lines);
+                       memcpy(dst, tmp->map + tmp_offset, dst_pitch * lines);
                        dst += dst_pitch * lines;
                } else {
-                       src = pNv->GART->map;
+                       src = tmp->map + tmp_offset;
                        for (i = 0; i < lines; i++) {
                                memcpy(dst, src, tmp_pitch);
                                src += tmp_pitch;
@@ -219,7 +245,7 @@ memcpy:
        bo = nouveau_pixmap_bo(pspix);
        if (nouveau_bo_map(bo, NOUVEAU_BO_RD, pNv->client))
                return FALSE;
-       src = (char *)bo->map + offset;
+       src = (char *)bo->map + (y * src_pitch) + (x * cpp);
        ret = NVAccelMemcpyRect(dst, src, h, dst_pitch, src_pitch, w*cpp);
        return ret;
 }
@@ -230,14 +256,14 @@ nouveau_exa_upload_to_screen(PixmapPtr pdpix, int x, int 
y, int w, int h,
 {
        ScrnInfoPtr pScrn = xf86ScreenToScrn(pdpix->drawable.pScreen);
        NVPtr pNv = NVPTR(pScrn);
-       int dst_pitch, tmp_pitch, cpp;
-       int max_lines, lines, i;
+       int dst_pitch, tmp_pitch, cpp, i;
        struct nouveau_bo *bo;
        char *dst;
        Bool ret;
 
-       dst_pitch  = exaGetPixmapPitch(pdpix);
        cpp = pdpix->drawable.bitsPerPixel >> 3;
+       dst_pitch  = exaGetPixmapPitch(pdpix);
+       tmp_pitch = w * cpp;
 
        /* try hostdata transfer */
        if (w * h * cpp < 16*1024) /* heuristic */
@@ -264,23 +290,20 @@ nouveau_exa_upload_to_screen(PixmapPtr pdpix, int x, int 
y, int w, int h,
                }
        }
 
-       /* try gart-based transfer */
-       if (!pNv->GART)
-               goto memcpy;
-
-       tmp_pitch = w * cpp;
-       max_lines = pNv->GART->size / tmp_pitch;
        while (h) {
-               lines = max_lines;
-               if (lines > h)
-                       lines = h;
+               const int lines = (h > 2047) ? 2047 : h;
+               struct nouveau_bo *tmp;
+               int tmp_offset;
+
+               if (nouveau_exa_scratch(pNv, lines * tmp_pitch,
+                                       &tmp, &tmp_offset))
+                       goto memcpy;
 
-               nouveau_bo_map(pNv->GART, NOUVEAU_BO_WR, pNv->client);
                if (src_pitch == tmp_pitch) {
-                       memcpy(pNv->GART->map, src, src_pitch * lines);
+                       memcpy(tmp->map + tmp_offset, src, src_pitch * lines);
                        src += src_pitch * lines;
                } else {
-                       dst = pNv->GART->map;
+                       dst = tmp->map + tmp_offset;
                        for (i = 0; i < lines; i++) {
                                memcpy(dst, src, tmp_pitch);
                                src += src_pitch;
@@ -288,7 +311,7 @@ nouveau_exa_upload_to_screen(PixmapPtr pdpix, int x, int y, 
int w, int h,
                        }
                }
 
-               if (!NVAccelM2MF(pNv, w, lines, cpp, 0, 0, pNv->GART,
+               if (!NVAccelM2MF(pNv, w, lines, cpp, tmp_offset, 0, tmp,
                                 NOUVEAU_BO_GART, tmp_pitch, lines, 0, 0,
                                 nouveau_pixmap_bo(pdpix), NOUVEAU_BO_VRAM,
                                 dst_pitch, pdpix->drawable.height, x, y))
diff --git a/src/nouveau_xv.c b/src/nouveau_xv.c
index 11248e6..f7dc2bc 100644
--- a/src/nouveau_xv.c
+++ b/src/nouveau_xv.c
@@ -1054,12 +1054,7 @@ NVPutImage(ScrnInfoPtr pScrn, short src_x, short src_y, 
short drw_x,
        if (pPriv->currentHostBuffer != NO_PRIV_HOST_BUFFER_AVAILABLE) {
                destination_buffer =
                        pPriv->TT_mem_chunk[pPriv->currentHostBuffer];
-       } else {
-               /* Otherwise we fall back on DDX's GARTScratch */
-               destination_buffer = pNv->GART;
        }
-
-       /* If we have no GART at all... */
        if (!destination_buffer) {
                if (pNv->Architecture >= NV_ARCH_50) {
                        NOUVEAU_ERR("No scratch buffer for tiled upload\n");
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 9a7b9c2..beef789 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -935,8 +935,7 @@ static Bool
 NVMapMem(ScrnInfoPtr pScrn)
 {
        NVPtr pNv = NVPTR(pScrn);
-       struct nouveau_device *dev = pNv->dev;
-       int ret, pitch, size;
+       int ret, pitch;
 
        ret = nouveau_allocate_surface(pScrn, pScrn->virtualX, pScrn->virtualY,
                                       pScrn->bitsPerPixel,
@@ -953,25 +952,6 @@ NVMapMem(ScrnInfoPtr pScrn)
        if (pNv->NoAccel)
                return TRUE;
 
-       xf86DrvMsg(pScrn->scrnIndex, X_INFO, "GART: %dMiB available\n",
-                  (unsigned int)(dev->gart_size >> 20));
-       if (dev->gart_size > (16 * 1024 * 1024))
-               size = 16 * 1024 * 1024;
-       else
-               /* always leave 512kb for other things like the fifos */
-               size = dev->gart_size - 512*1024;
-
-       if (nouveau_bo_new(dev, NOUVEAU_BO_GART | NOUVEAU_BO_MAP,
-                          0, size, NULL, &pNv->GART)) {
-               xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                          "Unable to allocate GART memory\n");
-       }
-       if (pNv->GART) {
-               xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                          "GART: Allocated %dMiB as a scratch buffer\n",
-                          (unsigned int)(pNv->GART->size >> 20));
-       }
-
        return TRUE;
 }
 
@@ -986,9 +966,8 @@ NVUnmapMem(ScrnInfoPtr pScrn)
 
        drmmode_remove_fb(pScrn);
 
+       nouveau_bo_ref(NULL, &pNv->transfer);
        nouveau_bo_ref(NULL, &pNv->scanout);
-       nouveau_bo_ref(NULL, &pNv->offscreen);
-       nouveau_bo_ref(NULL, &pNv->GART);
        return TRUE;
 }
 
diff --git a/src/nv_type.h b/src/nv_type.h
index 02fa383..e1ea494 100644
--- a/src/nv_type.h
+++ b/src/nv_type.h
@@ -35,11 +35,7 @@ typedef struct _NVRec {
     Bool                Primary;
     Bool               Secondary;
 
-    /* Various pinned memory regions */
     struct nouveau_bo * scanout;
-    struct nouveau_bo * offscreen;
-    void *              offscreen_map;
-    struct nouveau_bo * GART;
 
     Bool                NoAccel;
     Bool                HWCursor;
@@ -83,6 +79,9 @@ typedef struct _NVRec {
        /* GPU context */
        struct nouveau_client *client;
 
+       struct nouveau_bo *transfer;
+       CARD32 transfer_offset;
+
        struct nouveau_object *channel;
        struct nouveau_pushbuf *pushbuf;
        struct nouveau_bufctx *bufctx;

commit 52836c15b1c0e4f28d92ca9e6c76872481917fd4
Author: Ben Skeggs <bske...@redhat.com>
Date:   Mon Jun 18 13:20:18 2012 +1000

    nv50/exa: somehow fix firefox tabs not being drawn properly since vp xfrm
    
    Signed-off-by: Ben Skeggs <bske...@redhat.com>

diff --git a/src/nv50_accel.h b/src/nv50_accel.h
index 6a09fbe..24f0fa8 100644
--- a/src/nv50_accel.h
+++ b/src/nv50_accel.h
@@ -60,9 +60,11 @@ 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_2I(8)), 2);
-       PUSH_DATA (push, (y1 << 16) | x1);
-       PUSH_DATA (push, (y2 << 16) | x2);
+       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(0)), 1);
        PUSH_DATA (push, (dy << 16) | dx);
 }


-- 
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/e1sgwln-0006l0...@vasks.debian.org

Reply via email to