xf86-video-vmware: update patch for xorg-server-1.15.
This commit is contained in:
parent
85559bc948
commit
365868ccdc
3 changed files with 1584 additions and 179 deletions
|
@ -1,179 +0,0 @@
|
||||||
From 0945bea5fc32eacb7bf42639efbd45dcd43e7ab5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rob Clark <robdclark@gmail.com>
|
|
||||||
Date: Mon, 10 Jun 2013 17:31:31 +0000
|
|
||||||
Subject: vmwgfx: update for XA API changes
|
|
||||||
|
|
||||||
Signed-off-by: Rob Clark <robdclark@gmail.com>
|
|
||||||
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
|
|
||||||
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
|
|
||||||
Tested-by: Jakob Bornecrantz <jakob@vmware.com>
|
|
||||||
---
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 0631bcc..dccfb27 100644
|
|
||||||
--- configure.ac
|
|
||||||
+++ 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
|
|
||||||
--- vmwgfx/vmwgfx_dri2.c
|
|
||||||
+++ 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
|
|
||||||
--- vmwgfx/vmwgfx_driver.c
|
|
||||||
+++ 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
|
|
||||||
--- vmwgfx/vmwgfx_saa.c
|
|
||||||
+++ 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
|
|
||||||
--- vmwgfx/vmwgfx_tex_video.c
|
|
||||||
+++ 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, ®, &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
|
|
1583
srcpkgs/xf86-video-vmware/patches/xatracker-v2-fixes.patch
Normal file
1583
srcpkgs/xf86-video-vmware/patches/xatracker-v2-fixes.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -2,6 +2,7 @@
|
||||||
pkgname=xf86-video-vmware
|
pkgname=xf86-video-vmware
|
||||||
version=13.0.1
|
version=13.0.1
|
||||||
revision=4
|
revision=4
|
||||||
|
patch_args="-Np1"
|
||||||
only_for_archs="i686 x86_64"
|
only_for_archs="i686 x86_64"
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
configure_args="--enable-vmwarectrl-client"
|
configure_args="--enable-vmwarectrl-client"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue