src/drmmode_display.c |   18 ++++++++++++++----
 src/nouveau_dri2.c    |    3 +--
 src/nv_driver.c       |    2 ++
 src/nvc0_accel.c      |   14 +-------------
 src/vl_hwmc.c         |   37 +++++++++++++++++++++++++++++--------
 5 files changed, 47 insertions(+), 27 deletions(-)

New commits:
commit 169512fbe91f0671a90dfee5e280357f0a4ef701
Author: Maxim Levitsky <[email protected]>
Date:   Tue Aug 23 13:10:59 2011 +0200

    dri2: Disable the "exchange" swapbuffers path for the moment (bug 35930).
    
    Allow page flipping only for scanout buffer for now as simple swapping
    between off-screen pixmaps confuses compiz because there is no
    syncronization method to tell it about that swap
    
    Signed-off-by: Francisco Jerez <[email protected]>

diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c
index 1a68ed3..2081ce2 100644
--- a/src/nouveau_dri2.c
+++ b/src/nouveau_dri2.c
@@ -153,8 +153,7 @@ can_exchange(DrawablePtr draw, PixmapPtr dst_pix, PixmapPtr 
src_pix)
 
        }
 
-       return (!nouveau_exa_pixmap_is_onscreen(dst_pix) ||
-               (DRI2CanFlip(draw) && pNv->has_pageflip)) &&
+       return ((DRI2CanFlip(draw) && pNv->has_pageflip)) &&
                dst_pix->drawable.width == src_pix->drawable.width &&
                dst_pix->drawable.height == src_pix->drawable.height &&
                dst_pix->drawable.depth == src_pix->drawable.depth &&

commit b806e3f97a73701f057c45b1f45233e69e19f113
Author: Bryan Cain <[email protected]>
Date:   Wed Jul 20 13:48:36 2011 -0500

    g3dvl: update for compatibility with latest pipe-video branch in Mesa
    
    Signed-off-by: Bryan Cain <[email protected]>
    Signed-off-by: Ben Skeggs <[email protected]>

diff --git a/src/vl_hwmc.c b/src/vl_hwmc.c
index d8d8860..6e9e0c7 100644
--- a/src/vl_hwmc.c
+++ b/src/vl_hwmc.c
@@ -35,12 +35,14 @@
 
 static int subpicture_index_list[] =
 {
-       FOURCC_RGB
+       FOURCC_RGB,
+       FOURCC_IA44,
+       FOURCC_AI44
 };
 
 static XF86MCImageIDList subpicture_list =
 {
-       1,
+       3,
        subpicture_index_list
 };
 
@@ -53,29 +55,48 @@ static XF86MCSurfaceInfoRec yv12_mpeg2_surface =
        2048,
        2048,
        2048,
-       /*XVMC_IDCT*/ XVMC_MOCOMP | XVMC_MPEG_2,
-       XVMC_INTRA_UNSIGNED | XVMC_SUBPICTURE_INDEPENDENT_SCALING | 
XVMC_BACKEND_SUBPICTURE,
+       XVMC_IDCT | XVMC_MOCOMP | XVMC_MPEG_2,
+       XVMC_SUBPICTURE_INDEPENDENT_SCALING | XVMC_BACKEND_SUBPICTURE,
+       &subpicture_list
+};
+
+static XF86MCSurfaceInfoRec uyvy_mpeg2_surface =
+{
+       FOURCC_UYVY,
+       XVMC_CHROMA_FORMAT_422,
+       0,
+       2048,
+       2048,
+       2048,
+       2048,
+       XVMC_IDCT | XVMC_MOCOMP | XVMC_MPEG_2,
+       XVMC_SUBPICTURE_INDEPENDENT_SCALING | XVMC_BACKEND_SUBPICTURE,
        &subpicture_list
 };
 
 static XF86MCSurfaceInfoPtr surfaces[] =
 {
-       (XF86MCSurfaceInfoPtr)&yv12_mpeg2_surface
+       (XF86MCSurfaceInfoPtr)&yv12_mpeg2_surface,
+       (XF86MCSurfaceInfoPtr)&uyvy_mpeg2_surface
 };
 
 static XF86ImageRec rgb_subpicture = XVIMAGE_RGB;
+static XF86ImageRec ia44_subpicture = XVIMAGE_IA44;
+static XF86ImageRec ai44_subpicture = XVIMAGE_AI44;
 
 static XF86ImagePtr subpictures[] =
 {
-       (XF86ImagePtr)&rgb_subpicture
+       (XF86ImagePtr)&rgb_subpicture,
+       (XF86ImagePtr)&ia44_subpicture,
+       (XF86ImagePtr)&ai44_subpicture
 };
 
 static XF86MCAdaptorRec adaptor_template =
 {
        "",
-       1,
+       2,
        surfaces,
-       1,
+       3,
        subpictures,
        (xf86XvMCCreateContextProcPtr)NULL,
        (xf86XvMCDestroyContextProcPtr)NULL,

commit de9d1ba7efeba64f319efa00df183d3cb78f24af
Author: Emil Velikov <[email protected]>
Date:   Tue Jul 19 00:35:38 2011 +0100

    drmmode_display: Resolve missing brackets
    
    Correct some missing/misplaced brackets in drmmode_pre_init()
    The issue was exposed when trying a 4 monitor desktop using two
    cards/gpus
    
    Resolves https://bugs.freedesktop.org/show_bug.cgi?id=39099
    
    Reported-By: Damian Nowak <[email protected]>
    Tested-By: Damian Nowak <[email protected]>
    Signed-off-by: Emil Velikov <[email protected]>
    Signed-off-by: Ben Skeggs <[email protected]>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index e5e4673..3afef66 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1185,8 +1185,8 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp)
        xf86CrtcSetSizeRange(pScrn, 320, 200, drmmode->mode_res->max_width,
                             drmmode->mode_res->max_height);
        for (i = 0; i < drmmode->mode_res->count_crtcs; i++) {
-               if (!xf86IsEntityShared(pScrn->entityList[0] ||
-                    pScrn->confScreen->device->screen == i))
+               if (!xf86IsEntityShared(pScrn->entityList[0]) ||
+                    (pScrn->confScreen->device->screen == i))
                        drmmode_crtc_init(pScrn, drmmode, i);
        }
 

commit ef4957492956df54fafa6c75d576a07ce678ea0a
Author: Ben Skeggs <[email protected]>
Date:   Mon Jul 11 12:48:34 2011 +1000

    kms: fix multiple rotations in noaccel mode

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 204d9e8..e5e4673 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -504,8 +504,7 @@ drmmode_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr 
rotate_pixmap, void *dat
        if (data) {
                drmModeRmFB(drmmode->fd, drmmode_crtc->rotate_fb_id);
                drmmode_crtc->rotate_fb_id = 0;
-               if (!pNv->NoAccel)
-                       nouveau_bo_ref(NULL, &drmmode_crtc->rotate_bo);
+               nouveau_bo_ref(NULL, &drmmode_crtc->rotate_bo);
                drmmode_crtc->rotate_pixmap = NULL;
        }
 }

commit ab89aa022f0c78154e525b5f5787feee8024171f
Author: Ben Skeggs <[email protected]>
Date:   Fri Jun 17 10:10:09 2011 +1000

    nvc0: accept 0xdx chipsets
    
    Signed-off-by: Ben Skeggs <[email protected]>

diff --git a/src/nv_driver.c b/src/nv_driver.c
index f503c39..f0bdb58 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -261,6 +261,7 @@ NVPciProbe(DriverPtr drv, int entity_num, struct pci_device 
*pci_dev,
        case 0x90:
        case 0xa0:
        case 0xc0:
+       case 0xd0:
                break;
        default:
                xf86DrvMsg(-1, X_ERROR, "Unknown chipset: NV%02x\n", chipset);
@@ -686,6 +687,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
                pNv->Architecture = NV_ARCH_50;
                break;
        case 0xc0:
+       case 0xd0:
                pNv->Architecture = NV_ARCH_C0;
                break;
        default:

commit 7dd8987b8b69f56d04a199207122d2e51b9caa6e
Author: Ben Skeggs <[email protected]>
Date:   Fri Jun 17 10:07:36 2011 +1000

    nvc0: assume 0x9097's presence on all chipsets
    
    This appears to be the case thus far, and is what the 3D driver does.
    
    Signed-off-by: Ben Skeggs <[email protected]>

diff --git a/src/nvc0_accel.c b/src/nvc0_accel.c
index c37b30c..40bb2ef 100644
--- a/src/nvc0_accel.c
+++ b/src/nvc0_accel.c
@@ -87,22 +87,10 @@ NVAccelInit3D_NVC0(ScrnInfoPtr pScrn)
        struct nouveau_channel *chan = pNv->chan;
        struct nouveau_grobj *fermi, *m2mf;
        struct nouveau_bo *bo;
-       uint32_t tclClass;
        int ret, i;
 
-       switch (pNv->dev->chipset) {
-       case 0xc0:
-       case 0xc1:
-       case 0xc3:
-       case 0xc4:
-               tclClass = 0x9097;
-               break;
-       default:
-               return FALSE;
-       }
-
        if (!pNv->Nv3D) {
-               ret = nouveau_grobj_alloc(chan, tclClass, tclClass, &pNv->Nv3D);
+               ret = nouveau_grobj_alloc(chan, 0x9097, 0x9097, &pNv->Nv3D);
                if (ret)
                        return FALSE;
 

commit 98ee2105dbd8685e59c1967a587fccb6135743ac
Author: Ben Skeggs <[email protected]>
Date:   Mon May 30 10:10:58 2011 +1000

    kms: clear new fb to black on fb resize

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 43a2672..204d9e8 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1124,6 +1124,17 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int 
height)
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 9
        scrn->pixmapPrivate.ptr = ppix->devPrivate.ptr;
 #endif
+
+       if (!pNv->NoAccel) {
+               nouveau_bo_unmap(pNv->scanout);
+               pNv->EXADriverPtr->PrepareSolid(ppix, GXcopy, ~0, 0);
+               pNv->EXADriverPtr->Solid(ppix, 0, 0, width, height);
+               pNv->EXADriverPtr->DoneSolid(ppix);
+               nouveau_bo_map(pNv->scanout, NOUVEAU_BO_RDWR);
+       } else {
+               memset(pNv->scanout->map, 0x00, pNv->scanout->size);
+       }
+
        nouveau_bo_unmap(pNv->scanout);
 
        for (i = 0; i < xf86_config->num_crtc; i++) {


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to