From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- ...xf86-video-vmware-13.0.1-damageunregister.patch | 38 +++++ .../xf86-video-vmware-13.0.1-xa-compat-2.patch | 26 +++ .../xf86-video-vmware-13.0.1-xatracker-2.patch | 179 +++++++++++++++++++++ .../xf86-video-vmware-13.0.2-fix-includes.patch | 41 +++++ 4 files changed, 284 insertions(+) create mode 100644 x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-damageunregister.patch create mode 100644 x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xa-compat-2.patch create mode 100644 x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xatracker-2.patch create mode 100644 x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.2-fix-includes.patch (limited to 'x11-drivers/xf86-video-vmware/files') diff --git a/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-damageunregister.patch b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-damageunregister.patch new file mode 100644 index 000000000000..0b2a8e6869b3 --- /dev/null +++ b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-damageunregister.patch @@ -0,0 +1,38 @@ +From e26dec8f5278df74a102493bf6d2d8444dab5d6d Mon Sep 17 00:00:00 2001 +From: Gaetan Nadon +Date: Mon, 28 Oct 2013 22:21:29 +0000 +Subject: vmwgfx: handle changes of DamageUnregister API in 1.14.99.2 + +Fix is inspired from the intel driver. + +Reviewed-by: Jakob Bornecrantz +Signed-off-by: Gaetan Nadon +Signed-off-by: Jakob Bornecrantz +--- +diff --git a/vmwgfx/vmwgfx_saa.c b/vmwgfx/vmwgfx_saa.c +index fd80682..346e7f4 100644 +--- a/vmwgfx/vmwgfx_saa.c ++++ b/vmwgfx/vmwgfx_saa.c +@@ -26,6 +26,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -76,7 +77,12 @@ vmwgfx_pixmap_remove_damage(PixmapPtr pixmap) + if (!spix->damage || vpix->hw || vpix->gmr || vpix->malloc) + return; + ++#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,14,99,2,0) ++ DamageUnregister(spix->damage); ++#else + DamageUnregister(&pixmap->drawable, spix->damage); ++#endif ++ + DamageDestroy(spix->damage); + spix->damage = NULL; + } +-- +cgit v0.9.0.2-2-gbebe diff --git a/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xa-compat-2.patch b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xa-compat-2.patch new file mode 100644 index 000000000000..15f603c3c569 --- /dev/null +++ b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xa-compat-2.patch @@ -0,0 +1,26 @@ +From 93228f3dd3355a25583d22dbb96791678b93be3e Mon Sep 17 00:00:00 2001 +From: Thomas Hellstrom +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 +Reviewed-by: Jakob Bornecrantz +--- +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 diff --git a/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xatracker-2.patch b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xatracker-2.patch new file mode 100644 index 000000000000..9435f06ddd7b --- /dev/null +++ b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.1-xatracker-2.patch @@ -0,0 +1,179 @@ +From 0945bea5fc32eacb7bf42639efbd45dcd43e7ab5 Mon Sep 17 00:00:00 2001 +From: Rob Clark +Date: Mon, 10 Jun 2013 17:31:31 +0000 +Subject: vmwgfx: update for XA API changes + +Signed-off-by: Rob Clark +Signed-off-by: Jakob Bornecrantz +Reviewed-by: Jakob Bornecrantz +Tested-by: Jakob Bornecrantz +--- +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, ®, &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 diff --git a/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.2-fix-includes.patch b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.2-fix-includes.patch new file mode 100644 index 000000000000..434cb679f761 --- /dev/null +++ b/x11-drivers/xf86-video-vmware/files/xf86-video-vmware-13.0.2-fix-includes.patch @@ -0,0 +1,41 @@ +From 4664412d7a5266d2b392957406b34abc5db95e48 Mon Sep 17 00:00:00 2001 +From: Stefan Dirsch +Date: Tue, 7 Oct 2014 11:29:32 +0200 +Subject: xf86xv.h cannot be included without first including xorg-server.h. + +Without this the build fails on systems with the latest glibc, +throwing this error: + +In file included from /usr/include/string.h:634:0, + from /usr/include/xorg/os.h:53, + from /usr/include/xorg/misc.h:115, + from /usr/include/xorg/screenint.h:50, + from /usr/include/xorg/scrnintstr.h:50, + from /usr/include/xorg/xvdix.h:55, + from /usr/include/xorg/xf86xv.h:32, + from vmwgfx_overlay.c:38: +/usr/include/xorg/os.h:579:1: error: expected identifier or '(' before '__extension__' +strndup(const char *str, size_t n); + +This is caused by HAVE_STRNDUP not being set (it is set from xorg-server.h), +causing os.h to redefine it. + +Signed-off-by: Stefan Dirsch +Reviewed-by: Daniel Stone +Acked-by: Thomas Hellstrom + +diff --git a/vmwgfx/vmwgfx_overlay.c b/vmwgfx/vmwgfx_overlay.c +index ef1d541..2b05b0e 100644 +--- a/vmwgfx/vmwgfx_overlay.c ++++ b/vmwgfx/vmwgfx_overlay.c +@@ -35,6 +35,7 @@ + */ + + ++#include "xorg-server.h" + #include "xf86xv.h" + #include "fourcc.h" + #define debug_printf(...) +-- +cgit v0.10.2 + -- cgit v1.2.3