diff --git a/0001-saa-Build-compatibility-with-xserver-1.20.patch b/0001-saa-Build-compatibility-with-xserver-1.20.patch deleted file mode 100644 index 924add8..0000000 --- a/0001-saa-Build-compatibility-with-xserver-1.20.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7e5237dd08f2a469d0bc699cbcde763cc93c7407 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 7 Nov 2017 15:42:59 -0500 -Subject: [PATCH xf86-video-vmware] saa: Build compatibility with xserver 1.20 - -fbGetRotatedPixmap went away with 24bpp support, just treat it as NULL -and we'll do the right thing. - -Signed-off-by: Adam Jackson ---- - saa/saa.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/saa/saa.c b/saa/saa.c -index be9520e..d956853 100644 ---- a/saa/saa.c -+++ b/saa/saa.c -@@ -370,6 +370,11 @@ saa_op_reads_destination(CARD8 op) - } - } - -+/* compatibility with xserver >= 1.20 */ -+#ifndef fbGetRotatedPixmap -+#define fbGetRotatedPixmap(pGC) NULL -+#endif -+ - static void - saa_validate_gc(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable) - { --- -2.16.2 - diff --git a/0002-vmwgfx-Fix-XVideo-memory-leaks.patch b/0002-vmwgfx-Fix-XVideo-memory-leaks.patch deleted file mode 100644 index 30b111f..0000000 --- a/0002-vmwgfx-Fix-XVideo-memory-leaks.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 4ec3d67da829f4e7a35ab08427002b9d7e4e5f4b Mon Sep 17 00:00:00 2001 -From: Thomas Hellstrom -Date: Tue, 27 Nov 2018 16:20:32 +0100 -Subject: [PATCH 02/11] vmwgfx: Fix XVideo memory leaks - -We were not properly freeing the port privates. -In order to access those at CloseScreen time, don't free the adaptor pointers -at XV screen init, but hold on to them until CloseScreen. - -Also properly free the new_adaptors pointer. - -Signed-off-by: Thomas Hellstrom -Reviewed-by: Brian Paul ---- - vmwgfx/vmwgfx_driver.c | 2 ++ - vmwgfx/vmwgfx_driver.h | 9 +++++++- - vmwgfx/vmwgfx_overlay.c | 11 ++++------ - vmwgfx/vmwgfx_tex_video.c | 44 ++++++++++++++++++++++++++------------- - 4 files changed, 44 insertions(+), 22 deletions(-) - -diff --git a/vmwgfx/vmwgfx_driver.c b/vmwgfx/vmwgfx_driver.c -index 665f620..ccddb6f 100644 ---- a/vmwgfx/vmwgfx_driver.c -+++ b/vmwgfx/vmwgfx_driver.c -@@ -1327,6 +1327,8 @@ drv_close_screen(CLOSE_SCREEN_ARGS_DECL) - pScrn->LeaveVT(VT_FUNC_ARGS); - - vmwgfx_uevent_fini(pScrn, ms); -+ vmw_xv_close(pScreen); -+ - pScrn->vtSema = FALSE; - - vmwgfx_unwrap(ms, pScrn, EnterVT); -diff --git a/vmwgfx/vmwgfx_driver.h b/vmwgfx/vmwgfx_driver.h -index 05abebe..cfd2ed2 100644 ---- a/vmwgfx/vmwgfx_driver.h -+++ b/vmwgfx/vmwgfx_driver.h -@@ -157,6 +157,11 @@ typedef struct _modesettingRec - Bool xa_dri3; - Bool dri3_available; - #endif -+ -+ /* Video */ -+ XF86VideoAdaptorPtr overlay; -+ XF86VideoAdaptorPtr textured; -+ - } modesettingRec, *modesettingPtr; - - #define modesettingPTR(p) ((modesettingPtr)((p)->driverPrivate)) -@@ -231,7 +236,9 @@ xorg_xv_init(ScreenPtr pScreen); - XF86VideoAdaptorPtr - vmw_video_init_adaptor(ScrnInfoPtr pScrn); - void --vmw_video_free_adaptor(XF86VideoAdaptorPtr adaptor, Bool free_ports); -+vmw_video_free_adaptor(XF86VideoAdaptorPtr adaptor); -+void -+vmw_xv_close(ScreenPtr pScreen); - - void - vmw_ctrl_ext_init(ScrnInfoPtr pScrn); -diff --git a/vmwgfx/vmwgfx_overlay.c b/vmwgfx/vmwgfx_overlay.c -index c35cebd..94d738c 100644 ---- a/vmwgfx/vmwgfx_overlay.c -+++ b/vmwgfx/vmwgfx_overlay.c -@@ -258,15 +258,12 @@ vmwgfx_overlay_port_create(int drm_fd, ScreenPtr pScreen) - } - - void --vmw_video_free_adaptor(XF86VideoAdaptorPtr adaptor, Bool free_ports) -+vmw_video_free_adaptor(XF86VideoAdaptorPtr adaptor) - { -- if (free_ports) { -- int i; -+ int i; - -- for(i=0; inPorts; ++i) { -- free(adaptor->pPortPrivates[i].ptr); -- } -- } -+ for (i = 0; i < adaptor->nPorts; ++i) -+ free(adaptor->pPortPrivates[i].ptr); - - free(adaptor->pPortPrivates); - xf86XVFreeVideoAdaptorRec(adaptor); -diff --git a/vmwgfx/vmwgfx_tex_video.c b/vmwgfx/vmwgfx_tex_video.c -index e42a4c6..acc2b56 100644 ---- a/vmwgfx/vmwgfx_tex_video.c -+++ b/vmwgfx/vmwgfx_tex_video.c -@@ -904,15 +904,12 @@ port_priv_create(struct xa_tracker *xat, struct xa_context *r, - } - - static void --vmwgfx_free_textured_adaptor(XF86VideoAdaptorPtr adaptor, Bool free_ports) -+vmwgfx_free_textured_adaptor(XF86VideoAdaptorPtr adaptor) - { -- if (free_ports) { -- int i; -+ int i; - -- for(i=0; inPorts; ++i) { -- free(adaptor->pPortPrivates[i].ptr); -- } -- } -+ for (i = 0; i < adaptor->nPorts; ++i) -+ free(adaptor->pPortPrivates[i].ptr); - - free(adaptor->pAttributes); - free(adaptor->pPortPrivates); -@@ -986,6 +983,23 @@ xorg_setup_textured_adapter(ScreenPtr pScreen) - return adapt; - } - -+void -+vmw_xv_close(ScreenPtr pScreen) -+{ -+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); -+ modesettingPtr ms = modesettingPTR(pScrn); -+ -+ if (ms->overlay) { -+ vmw_video_free_adaptor(ms->overlay); -+ ms->overlay = NULL; -+ } -+ -+ if (ms->textured) { -+ vmwgfx_free_textured_adaptor(ms->textured); -+ ms->textured = NULL; -+ } -+} -+ - void - xorg_xv_init(ScreenPtr pScreen) - { -@@ -1025,17 +1039,19 @@ xorg_xv_init(ScreenPtr pScreen) - adaptors[num_adaptors++] = overlay_adaptor; - - if (num_adaptors) { -- Bool ret; -- ret = xf86XVScreenInit(pScreen, adaptors, num_adaptors); -- if (textured_adapter) -- vmwgfx_free_textured_adaptor(textured_adapter, !ret); -- if (overlay_adaptor) -- vmw_video_free_adaptor(overlay_adaptor, !ret); -- if (!ret) -+ if (xf86XVScreenInit(pScreen, adaptors, num_adaptors)) { -+ ms->overlay = overlay_adaptor; -+ ms->textured = textured_adapter; -+ } else { -+ ms->overlay = NULL; -+ ms->textured = NULL; - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Failed to initialize Xv.\n"); -+ } - } else { - xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "Disabling Xv because no adaptors could be initialized.\n"); - } -+ -+ free(new_adaptors); - } --- -2.23.0 - diff --git a/0003-vmwgfx-Fix-a-memory-leak.patch b/0003-vmwgfx-Fix-a-memory-leak.patch deleted file mode 100644 index 13c3b17..0000000 --- a/0003-vmwgfx-Fix-a-memory-leak.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0b34df288f0e163750962e0e59f5e329642ca457 Mon Sep 17 00:00:00 2001 -From: Thomas Hellstrom -Date: Tue, 27 Nov 2018 16:36:21 +0100 -Subject: [PATCH 03/11] vmwgfx: Fix a memory leak - -We were leaking a pointer to a drm encoder. - -Signed-off-by: Thomas Hellstrom -Reviewed-by: Brian Paul ---- - vmwgfx/vmwgfx_output.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/vmwgfx/vmwgfx_output.c b/vmwgfx/vmwgfx_output.c -index ec31e2c..f589226 100644 ---- a/vmwgfx/vmwgfx_output.c -+++ b/vmwgfx/vmwgfx_output.c -@@ -642,6 +642,7 @@ xorg_output_init(ScrnInfoPtr pScrn) - if (drm_encoder) { - output->possible_crtcs = drm_encoder->possible_crtcs; - output->possible_clones = drm_encoder->possible_clones; -+ drmModeFreeEncoder(drm_encoder); - } else { - output->possible_crtcs = 0; - output->possible_clones = 0; --- -2.23.0 - diff --git a/0006-vmwgfx-Fix-invalid-memory-accesses-in-CloseScreen.patch b/0006-vmwgfx-Fix-invalid-memory-accesses-in-CloseScreen.patch deleted file mode 100644 index f70a56c..0000000 --- a/0006-vmwgfx-Fix-invalid-memory-accesses-in-CloseScreen.patch +++ /dev/null @@ -1,44 +0,0 @@ -From d31e8e77e1453c26a02f24b26d96b4660d29e1df Mon Sep 17 00:00:00 2001 -From: Thomas Hellstrom -Date: Tue, 27 Nov 2018 08:37:13 +0100 -Subject: [PATCH 06/11] vmwgfx: Fix invalid memory accesses in CloseScreen - -Some of the CloseScreen callbacks were referencing XA objects so move the -destruction of the XA state tracker to the end of drv_close_screen to avoid -referencing freed resources. - -Signed-off-by: Thomas Hellstrom -Reviewed-by: Deepak Rawat ---- - vmwgfx/vmwgfx_driver.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/vmwgfx/vmwgfx_driver.c b/vmwgfx/vmwgfx_driver.c -index ccddb6f..e5f0caf 100644 ---- a/vmwgfx/vmwgfx_driver.c -+++ b/vmwgfx/vmwgfx_driver.c -@@ -1314,6 +1314,7 @@ drv_close_screen(CLOSE_SCREEN_ARGS_DECL) - { - ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); - modesettingPtr ms = modesettingPTR(pScrn); -+ Bool ret; - - if (ms->cursor) { - FreeCursor(ms->cursor, None); -@@ -1339,10 +1340,12 @@ drv_close_screen(CLOSE_SCREEN_ARGS_DECL) - vmwgfx_unwrap(ms, pScreen, BlockHandler); - vmwgfx_unwrap(ms, pScreen, CreateScreenResources); - -+ ret = (*pScreen->CloseScreen) (CLOSE_SCREEN_ARGS); -+ - if (ms->xat) - xa_tracker_destroy(ms->xat); - -- return (*pScreen->CloseScreen) (CLOSE_SCREEN_ARGS); -+ return ret; - } - - static ModeStatus --- -2.23.0 - diff --git a/backport-vmwgfx-fix-missing-array-notation.patch b/backport-vmwgfx-fix-missing-array-notation.patch deleted file mode 100644 index 1321ed7..0000000 --- a/backport-vmwgfx-fix-missing-array-notation.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 77b8183b3395333d5d4c73e25c2d011748f15eda Mon Sep 17 00:00:00 2001 -From: Rudi Heitbaum -Date: Sun, 8 May 2022 03:00:10 +0000 -Subject: [PATCH] vmwgfx: fix missing array notation - - Fixes error identified by gcc-12.1.0 compiler - -make - CC libvmwgfx_la-vmwgfx_tex_video.lo -vmwgfx_tex_video.c: In function 'stop_video': -vmwgfx_tex_video.c:240:20: error: the comparison will always evaluate as 'true' for the address of 'yuv' will never be NULL [-Werror=address] - 240 | if (priv->yuv[i]) { - | ^~~~ ---- - vmwgfx/vmwgfx_tex_video.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/vmwgfx/vmwgfx_tex_video.c b/vmwgfx/vmwgfx_tex_video.c -index acc2b56..480a5f1 100644 ---- a/vmwgfx/vmwgfx_tex_video.c -+++ b/vmwgfx/vmwgfx_tex_video.c -@@ -237,7 +237,7 @@ stop_video(ScrnInfoPtr pScrn, pointer data, Bool shutdown) - - for (i=0; i<3; ++i) { - for (j=0; j<2; ++j) { -- if (priv->yuv[i]) { -+ if (priv->yuv[j][i]) { - xa_surface_destroy(priv->yuv[j][i]); - priv->yuv[j][i] = NULL; - } --- -GitLab diff --git a/xf86-video-vmware-13.3.0.tar.bz2 b/xf86-video-vmware-13.3.0.tar.bz2 deleted file mode 100644 index 39e60fd..0000000 Binary files a/xf86-video-vmware-13.3.0.tar.bz2 and /dev/null differ diff --git a/xf86-video-vmware-13.4.0.tar.xz b/xf86-video-vmware-13.4.0.tar.xz new file mode 100644 index 0000000..8a9c4df Binary files /dev/null and b/xf86-video-vmware-13.4.0.tar.xz differ diff --git a/xorg-x11-drv-vmware.spec b/xorg-x11-drv-vmware.spec index 018ada7..db67e27 100644 --- a/xorg-x11-drv-vmware.spec +++ b/xorg-x11-drv-vmware.spec @@ -4,18 +4,12 @@ %undefine _hardened_build Name: xorg-x11-drv-vmware -Version: 13.3.0 -Release: 3 +Version: 13.4.0 +Release: 1 Summary: Xorg X11 vmware video driver License: MIT URL: http://www.x.org -Source0: https://ftp.x.org/pub/individual/driver/xf86-video-vmware-%{version}.tar.bz2 - -Patch0: 0001-saa-Build-compatibility-with-xserver-1.20.patch -Patch1: 0002-vmwgfx-Fix-XVideo-memory-leaks.patch -Patch2: 0003-vmwgfx-Fix-a-memory-leak.patch -Patch3: 0006-vmwgfx-Fix-invalid-memory-accesses-in-CloseScreen.patch -Patch4: backport-vmwgfx-fix-missing-array-notation.patch +Source0: https://ftp.x.org/pub/individual/driver/xf86-video-vmware-%{version}.tar.xz ExclusiveArch: %{ix86} x86_64 ia64 @@ -55,6 +49,12 @@ autoreconf -v --install || exit 1 %{_mandir}/man4/vmware.4* %changelog +* Sat Jan 28 2023 Chenxi Mao - 13.4.0-1 +- Type:update +- ID:NA +- SUG:NA +- DESC: upgrade to 13.4.0 + * Mon Oct 24 2022 zhouyihang - 13.3.0-3 - Type:bugfix - ID:NA