!13 [sync] PR-12: 升级版本至13.4.0
From: @openeuler-sync-bot Reviewed-by: @dwl301 Signed-off-by: @dwl301
This commit is contained in:
commit
8f977e95ed
@ -1,32 +0,0 @@
|
|||||||
From 7e5237dd08f2a469d0bc699cbcde763cc93c7407 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Adam Jackson <ajax@redhat.com>
|
|
||||||
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 <ajax@redhat.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
@ -1,162 +0,0 @@
|
|||||||
From 4ec3d67da829f4e7a35ab08427002b9d7e4e5f4b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hellstrom <thellstrom@vmware.com>
|
|
||||||
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 <thellstrom@vmware.com>
|
|
||||||
Reviewed-by: Brian Paul <brianp@vmware.com>
|
|
||||||
---
|
|
||||||
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; i<adaptor->nPorts; ++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; i<adaptor->nPorts; ++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
|
|
||||||
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
From 0b34df288f0e163750962e0e59f5e329642ca457 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hellstrom <thellstrom@vmware.com>
|
|
||||||
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 <thellstrom@vmware.com>
|
|
||||||
Reviewed-by: Brian Paul <brianp@vmware.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
From d31e8e77e1453c26a02f24b26d96b4660d29e1df Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Hellstrom <thellstrom@vmware.com>
|
|
||||||
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 <thellstrom@vmware.com>
|
|
||||||
Reviewed-by: Deepak Rawat <drawat@vmware.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
From 77b8183b3395333d5d4c73e25c2d011748f15eda Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rudi Heitbaum <rudi@heitbaum.com>
|
|
||||||
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
|
|
||||||
Binary file not shown.
BIN
xf86-video-vmware-13.4.0.tar.xz
Normal file
BIN
xf86-video-vmware-13.4.0.tar.xz
Normal file
Binary file not shown.
@ -4,18 +4,12 @@
|
|||||||
%undefine _hardened_build
|
%undefine _hardened_build
|
||||||
|
|
||||||
Name: xorg-x11-drv-vmware
|
Name: xorg-x11-drv-vmware
|
||||||
Version: 13.3.0
|
Version: 13.4.0
|
||||||
Release: 3
|
Release: 1
|
||||||
Summary: Xorg X11 vmware video driver
|
Summary: Xorg X11 vmware video driver
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
Source0: https://ftp.x.org/pub/individual/driver/xf86-video-vmware-%{version}.tar.bz2
|
Source0: https://ftp.x.org/pub/individual/driver/xf86-video-vmware-%{version}.tar.xz
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
ExclusiveArch: %{ix86} x86_64 ia64
|
ExclusiveArch: %{ix86} x86_64 ia64
|
||||||
|
|
||||||
@ -55,6 +49,12 @@ autoreconf -v --install || exit 1
|
|||||||
%{_mandir}/man4/vmware.4*
|
%{_mandir}/man4/vmware.4*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Jan 28 2023 Chenxi Mao <chenxi.mao@suse.com> - 13.4.0-1
|
||||||
|
- Type:update
|
||||||
|
- ID:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC: upgrade to 13.4.0
|
||||||
|
|
||||||
* Mon Oct 24 2022 zhouyihang <zhouyihang3@h-partners.com> - 13.3.0-3
|
* Mon Oct 24 2022 zhouyihang <zhouyihang3@h-partners.com> - 13.3.0-3
|
||||||
- Type:bugfix
|
- Type:bugfix
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user