chithanh    14/03/25 15:26:52

  Added:                xf86-video-vmware-13.0.1-xatracker-2.patch
                        xf86-video-vmware-13.0.1-xa-compat-2.patch
  Log:
  Fix building against newer mesa, bug #504252.
  
  (Portage version: 2.2.8-r1/cvs/Linux x86_64, unsigned Manifest commit)

Revision  Changes    Path
1.1                  
x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xatracker-2.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xatracker-2.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xatracker-2.patch?rev=1.1&content-type=text/plain

Index: xf86-video-vmware-13.0.1-xatracker-2.patch
===================================================================
>From 0945bea5fc32eacb7bf42639efbd45dcd43e7ab5 Mon Sep 17 00:00:00 2001
From: Rob Clark <robdcl...@gmail.com>
Date: Mon, 10 Jun 2013 17:31:31 +0000
Subject: vmwgfx: update for XA API changes

Signed-off-by: Rob Clark <robdcl...@gmail.com>
Signed-off-by: Jakob Bornecrantz <ja...@vmware.com>
Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
Tested-by: Jakob Bornecrantz <ja...@vmware.com>
---
diff --git a/configure.ac b/configure.ac
index 0631bcc..dccfb27 100644
--- a/configure.ac
+++ b/configure.ac
@@ -118,7 +118,7 @@ if test x$BUILD_VMWGFX = xyes; then
        PKG_CHECK_MODULES([LIBDRM], [libdrm],[],[BUILD_VMWGFX=no])
 fi
 if test x$BUILD_VMWGFX = xyes; then
-       PKG_CHECK_MODULES([XATRACKER], [xatracker >= 
0.4.0],[],[BUILD_VMWGFX=no])
+       PKG_CHECK_MODULES([XATRACKER], [xatracker >= 
2.0.0],[],[BUILD_VMWGFX=no])
 fi
 
 DRIVER_NAME=vmware
diff --git a/vmwgfx/vmwgfx_dri2.c b/vmwgfx/vmwgfx_dri2.c
index 7de0772..2f007f0 100644
--- a/vmwgfx/vmwgfx_dri2.c
+++ b/vmwgfx/vmwgfx_dri2.c
@@ -201,7 +201,8 @@ dri2_do_create_buffer(DrawablePtr pDraw, DRI2Buffer2Ptr 
buffer, unsigned int for
     }
 
     private->srf = srf;
-    if (xa_surface_handle(srf, &buffer->name, &buffer->pitch) != 0)
+    if (xa_surface_handle(srf, xa_handle_type_shared,
+           &buffer->name, &buffer->pitch) != 0)
        return FALSE;
 
     buffer->cpp = xa_format_depth(xa_surface_format(srf)) / 8;
@@ -222,7 +223,7 @@ dri2_do_destroy_buffer(DrawablePtr pDraw, DRI2BufferPtr 
buffer)
     struct vmwgfx_saa_pixmap *vpix = vmwgfx_saa_pixmap(private->pPixmap);
 
     if (--private->refcount == 0 && srf) {
-       xa_surface_destroy(srf);
+       xa_surface_unref(srf);
     }
 
     /*
diff --git a/vmwgfx/vmwgfx_driver.c b/vmwgfx/vmwgfx_driver.c
index 7863ba2..3002285 100644
--- a/vmwgfx/vmwgfx_driver.c
+++ b/vmwgfx/vmwgfx_driver.c
@@ -617,7 +617,8 @@ vmwgfx_scanout_present(ScreenPtr pScreen, int drm_fd,
        return FALSE;
     }
 
-    if (xa_surface_handle(vpix->hw, &handle, &dummy) != 0) {
+    if (xa_surface_handle(vpix->hw, xa_handle_type_shared,
+           &handle, &dummy) != 0) {
        LogMessage(X_ERROR, "Could not get present surface handle.\n");
        return FALSE;
     }
diff --git a/vmwgfx/vmwgfx_saa.c b/vmwgfx/vmwgfx_saa.c
index 63df3a1..ed3c1ee 100644
--- a/vmwgfx/vmwgfx_saa.c
+++ b/vmwgfx/vmwgfx_saa.c
@@ -140,7 +140,7 @@ vmwgfx_pixmap_free_storage(struct vmwgfx_saa_pixmap *vpix)
        vpix->malloc = NULL;
     }
     if (!(vpix->backing & VMWGFX_PIX_SURFACE) && vpix->hw) {
-       xa_surface_destroy(vpix->hw);
+       xa_surface_unref(vpix->hw);
        vpix->hw = NULL;
     }
     if (!(vpix->backing & VMWGFX_PIX_GMR) && vpix->gmr) {
@@ -286,7 +286,8 @@ vmwgfx_saa_dma(struct vmwgfx_saa *vsaa,
     if (vpix->gmr && vsaa->can_optimize_dma) {
        uint32_t handle, dummy;
 
-       if (xa_surface_handle(vpix->hw, &handle, &dummy) != 0)
+       if (xa_surface_handle(vpix->hw, xa_handle_type_shared,
+                &handle, &dummy) != 0)
            goto out_err;
        if (vmwgfx_dma(0, 0, reg, vpix->gmr, pixmap->devKind, handle,
                       to_hw) != 0)
@@ -305,6 +306,8 @@ vmwgfx_saa_dma(struct vmwgfx_saa *vsaa,
                             (int) to_hw,
                             (struct xa_box *) REGION_RECTS(reg),
                             REGION_NUM_RECTS(reg));
+       if (to_hw)
+           xa_context_flush(vsaa->xa_ctx);
        if (vpix->gmr)
            vmwgfx_dmabuf_unmap(vpix->gmr);
        if (ret)
@@ -441,7 +444,7 @@ vmwgfx_hw_kill(struct vmwgfx_saa *vsaa,
                                 &spix->dirty_hw))
        return FALSE;
 
-    xa_surface_destroy(vpix->hw);
+    xa_surface_unref(vpix->hw);
     vpix->hw = NULL;
 
     /*
@@ -683,7 +686,8 @@ vmwgfx_present_prepare(struct vmwgfx_saa *vsaa,
 
     (void) pScreen;
     if (src_vpix == dst_vpix || !src_vpix->hw ||
-       xa_surface_handle(src_vpix->hw, &vsaa->src_handle, &dummy) != 0)
+       xa_surface_handle(src_vpix->hw, xa_handle_type_shared,
+               &vsaa->src_handle, &dummy) != 0)
        return FALSE;
 
     REGION_NULL(pScreen, &vsaa->present_region);
@@ -784,7 +788,7 @@ vmwgfx_create_hw(struct vmwgfx_saa *vsaa,
     return TRUE;
 
 out_no_damage:
-    xa_surface_destroy(hw);
+    xa_surface_unref(hw);
     return FALSE;
 }
 
@@ -929,6 +933,7 @@ vmwgfx_copy_prepare(struct saa_driver *driver,
 
        if (!vmwgfx_hw_validate(src_pixmap, src_reg)) {
            xa_copy_done(vsaa->xa_ctx);
+           xa_context_flush(vsaa->xa_ctx);
            return FALSE;
        }
 
@@ -1029,6 +1034,7 @@ vmwgfx_copy_done(struct saa_driver *driver)
        return;
     }
     xa_copy_done(vsaa->xa_ctx);
+    xa_context_flush(vsaa->xa_ctx);
 }
 
 static Bool
@@ -1175,6 +1181,7 @@ vmwgfx_composite_done(struct saa_driver *driver)
    struct vmwgfx_saa *vsaa = to_vmwgfx_saa(driver);
 
    xa_composite_done(vsaa->xa_ctx);
+   xa_context_flush(vsaa->xa_ctx);
 }
 
 static void
@@ -1436,7 +1443,8 @@ vmwgfx_scanout_ref(struct vmwgfx_screen_entry  *entry)
             */
            if (!vmwgfx_hw_accel_validate(pixmap, 0, XA_FLAG_SCANOUT, 0, NULL))
                goto out_err;
-           if (xa_surface_handle(vpix->hw, &handle, &dummy) != 0)
+           if (xa_surface_handle(vpix->hw, xa_handle_type_shared,
+                        &handle, &dummy) != 0)
                goto out_err;
            depth = xa_format_depth(xa_surface_format(vpix->hw));
 
diff --git a/vmwgfx/vmwgfx_tex_video.c b/vmwgfx/vmwgfx_tex_video.c
index 449266b..2971ed7 100644
--- a/vmwgfx/vmwgfx_tex_video.c
+++ b/vmwgfx/vmwgfx_tex_video.c
@@ -199,7 +199,7 @@ stop_video(ScrnInfoPtr pScrn, pointer data, Bool shutdown)
 
        for (i=0; i<3; ++i) {
           if (priv->yuv[i]) {
-              xa_surface_destroy(priv->yuv[i]);
+              xa_surface_unref(priv->yuv[i]);
               priv->yuv[i] = NULL;
           }
           for (j=0; j<2; ++j) {
@@ -539,7 +539,8 @@ copy_packed_data(ScrnInfoPtr pScrn,
               REGION_RESET(pScrn->pScreen, &reg, &box);
           }
 
-          if (xa_surface_handle(srf, &handle, &stride) != 0) {
+          if (xa_surface_handle(srf, xa_handle_type_shared,
+                       &handle, &stride) != 0) {
               ret = BadAlloc;
               break;
           }
--
cgit v0.9.0.2-2-gbebe



1.1                  
x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xa-compat-2.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xa-compat-2.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xa-compat-2.patch?rev=1.1&content-type=text/plain

Index: xf86-video-vmware-13.0.1-xa-compat-2.patch
===================================================================
>From 93228f3dd3355a25583d22dbb96791678b93be3e Mon Sep 17 00:00:00 2001
From: Thomas Hellstrom <thellst...@vmware.com>
Date: Wed, 11 Dec 2013 14:54:02 +0000
Subject: vmwgfx: Really allow XA version 2.

When XA starts to correctly advertise version 2, we didn't allow it.
Fix this.

Signed-off-by: Thomas Hellstrom <thellst...@vmware.com>
Reviewed-by: Jakob Bornecrantz <ja...@vmware.com>
---
diff --git a/vmwgfx/vmwgfx_driver.c b/vmwgfx/vmwgfx_driver.c
index 6301c29..4e28097 100644
--- a/vmwgfx/vmwgfx_driver.c
+++ b/vmwgfx/vmwgfx_driver.c
@@ -79,7 +79,7 @@ typedef uint8_t uint8;
 
 #define XA_VERSION_MINOR_REQUIRED 0
 #define XA_VERSION_MAJOR_REQUIRED 1
-#define XA_VERSION_MAJOR_COMPAT 1
+#define XA_VERSION_MAJOR_COMPAT 2
 
 #define DRM_VERSION_MAJOR_REQUIRED 2
 #define DRM_VERSION_MINOR_REQUIRED 3
--
cgit v0.9.0.2-2-gbebe




Reply via email to