Commit Graph

411 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
8e79291b74 replace PICT_FORMAT_TYPE by PIXMAN_FORMAT_TYPE
Try not to use old compat macros anymore, use the real ones instead.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-07 13:36:03 +02:00
Enrico Weigelt, metux IT consult
f104b52412 replace PICT_FORMAT_* by PIXMAN_FORMAT_*
Try not to use old compat macros anymore, use the real ones instead.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-07 13:36:03 +02:00
Enrico Weigelt, metux IT consult
dedde6b87b replace PICT_a8 by PIXMAN_a8
Try not to use old compat macros anymore, use the real ones instead.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-07 13:36:03 +02:00
Enrico Weigelt, metux IT consult
31238d8954 replace PICT_a1 by PIXMAN_a1
Try not to use old compat macros anymore, use the real ones instead.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-07 13:36:03 +02:00
Enrico Weigelt, metux IT consult
d671cd96ef Use PictFormatShort instead of enum _PictFormatShort
The raw enum is being dropped from the Xserver and aliased to
pixmap_format_code_t.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 19:34:34 +02:00
b-aaz
2bc72aa03f configure: Automatically detect the default xorg-module-dir.
The module directory has changed to a per ABI folder in the xlibre-xserver.
Now the default value of `xorg-module-dir` will be detected from the `moduledir` variable in xorg-server.pc.

Signed-off-by: b-aaz <b-aazbsd.proton.me>
xlibre-xf86-video-vmware-13.4.0.2
2025-07-29 18:43:37 +02:00
Enrico Weigelt, metux IT consult
20bc3f16b2 .github: add CI pipeline
This pipeline builds the driver against the latest Xserver stable
release as well as current master.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-29 18:33:54 +02:00
callmetango
e3dbbf045e .github: Add issue forms
Add the following forms for issue creation:

* Bug report
* Feature request
* Code change
* Documentation update
* Organizational task

* add issue type selection page on "New Issue" call
* mention Github Discussions and the mailing list where appropriate

Part-of: X11Libre/misc#156
Signed-off-by: callmetango <callmetango@users.noreply.github.com>
2025-07-07 16:46:09 +02:00
Enrico Weigelt, metux IT consult
90c79a5d26 use XNFstrdup() instead of xnfstrdup
xnfstrdup is just an alias for XNFstrdup() that doesn't seem to serve
any practical purpose, so it can go away once all drivers stopped using it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
xlibre-xf86-video-vmware-13.4.0.1
2025-06-20 18:56:57 +02:00
Enrico Weigelt, metux IT consult
50ac338a9d use XNFcallocarray() instead of xnfcalloc macro
xnfcalloc is just an alias for XNFcallocarray() that doesn't seem to serve
any practical purpose, so it can go away once all drivers stopped using it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-20 18:56:52 +02:00
Enrico Weigelt, metux IT consult
d59bd31c4d drop obsolete check for _X_EXPORT
We're relying on xserver >= 1.18, so need to check for this macro anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-20 18:56:45 +02:00
Enrico Weigelt, metux IT consult
3f45b624ef drop compat with ancient xserver versions
We're relying on at least 1.18 now.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-20 18:56:37 +02:00
Enrico Weigelt, metux IT consult
7d7aa65d64 fix FTBS on XSERVER_LIBPCIACCESS
Not all Xserver versions define that symbol with a numeric value
(1 or 0), some just might not define it at all when disabled.

Using #if instead of #ifdef (as most sites do) will lead to compile break:

    ../../src/vmware.c:1102:25: error: expected value in expression
    #if XSERVER_LIBPCIACCESS
                        ^

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-20 18:56:29 +02:00
Enrico Weigelt, metux IT consult
4f854bb179 drop unused check for _MSC_VER
This driver obviously doesn't work under Windows.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-11 14:28:57 +01:00
Enrico Weigelt, metux IT consult
1aa9991347 drop compat for ancient xserver versions
We're relying on at least 1.18 now.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-11 14:28:57 +01:00
Enrico Weigelt, metux IT consult
f52fb170fb drop compat with ancient xserver versions
We're relying on at least 1.18 now.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-11 14:28:57 +01:00
Enrico Weigelt, metux IT consult
3aa7bcc8d7 bump minimal xorg version to 1.18
1.18 was released a decade ago, so it seems reasonable stop supporting
older ones.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-11 14:28:57 +01:00
Enrico Weigelt, metux IT consult
92cc453414 use dixDestroyPixmap() instead of direct driver call
Direct calls to ScreenRec->DestroyPixmap() blocks cleaning up the wrapping
jungle, so use the proper dix function instead - except when calling down the
chain where we had wrapped ourselves - and protecting those against NULL, so
we can move subsys-provided functions out of that chain.

See: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1754

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-vmware/-/merge_requests/11>
2025-02-06 23:00:25 +00:00
Alan Coopersmith
3a7a8084fe common_compat.h: fix typo in header guard definition
Found by clang 13.0.1:

./common_compat.h:1:9: warning: '_COMMON_COMPAT_H_' is used as a header
 guard here, followed by #define of a different macro [-Wheader-guard]
#ifndef _COMMON_COMPAT_H_
        ^~~~~~~~~~~~~~~~~
./common_compat.h:2:9: note: '_COMMOM_COMPAT_H_' is defined here;
 did you mean '_COMMON_COMPAT_H_'?
#define _COMMOM_COMPAT_H_
        ^~~~~~~~~~~~~~~~~
        _COMMON_COMPAT_H_

Fixes: d8c2f85 ("vmware: Fix build warnings")
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-vmware/-/merge_requests/14>
2024-11-10 12:48:44 -08:00
Ian Forbes
6eba4505da Disable the kernel CRTC when DPMS Mode OFF is called
If the CRTC is supposed to be disabled we need to inform the kernel.

Fixes a bug where a secondary screen is left blank, but enabled, when
switching from two displays to one.

Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
2024-10-18 10:09:31 -05:00
Alan Coopersmith
a20aaf5823 configure: update bug link to use gitlab instead of bugzilla
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-vmware/-/merge_requests/12>
2024-09-30 18:01:18 -07:00
Alan Coopersmith
2da1af99bf gitlab CI: ensure libtool is installed in build container
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2023-10-07 09:28:09 -07:00
Alan Coopersmith
b93c1fcbbc gitlab CI: stop requiring Signed-off-by in commits
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2023-02-09 12:07:01 -08:00
Peter Hutterer
f82ce27f17 Bump the version number to 13.4.0
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
xf86-video-vmware-13.4.0
2023-01-24 12:03:30 +10:00
Ville Skyttä
3ec2fad6ed Man page syntax fix.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-09-29 18:05:19 -07:00
Ville Skyttä
c59c5d241a Spelling fixes.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-09-29 18:04:25 -07:00
Alan Coopersmith
f7d50aa328 Build xz tarballs instead of bzip2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-08-23 17:51:12 +00:00
Alan Coopersmith
790d641d1d gitlab CI: add a basic build test
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-07-18 17:16:33 -07:00
Martin Krastev
ff5637a14c Garbled XvPutImage output for FOURCC_YV12 when using 3D-accel-texture adaptor
A helper for the PutImage callback in adaptor 'XA G3D Textured Video' was not
taking into account the source data pitches for YV12 format, resulting in
garbled frames for misaligned frame widths. Issue reported by Doug Brown.
This patch is based off the patch proposed by Doug.

Repro of the original issue:
gst-launch-1.0 videotestsrc ! video/x-raw,format=YV12,width=449,height=240 ! xvimagesink

Reported-by: Doug Brown <doug@schmorgal.com>
Signed-off-by: Martin Krastev <krastevm@vmware.com>
Reviewed-by: Zack Rusin <zackr@vmware.com>
2022-06-21 11:31:11 -04:00
Rudi Heitbaum
77b8183b33 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]) {
      |                    ^~~~
2022-05-08 03:00:10 +00:00
Martin Krastev
50ab008cb9 vmwgfx: Change header inclusion order to avoid xorg headers catching stdbool.h
libdrm commit e641e2a632d779f638ac2ba983b9fceb20b3fac4 added
stdbool.h to the library headers which conflicts with xorg headers.

Signed-off-by: Martin Krastev <krastevm@vmware.com>
Reviewed-by: Zack Rusin <zackr@vmware.com>
Signed-off-by: Zack Rusin <zackr@vmware.com>
2021-11-30 15:48:18 -05:00
Thomas Hellstrom
5569f16a14 vmwgfx: Unify style in scanout_update and present functions
Since the functions are pretty similar, Make them look more similar in terms
of memory allocation methods and variable names

Reported-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
2019-01-28 14:47:55 +01:00
Thomas Hellstrom
0a7c3570c9 vmwgfx: Limit the number of cliprects in a drm present_readback command v3
The drm present readback command number of cliprects should not exceed
DRM_MODE_FB_DIRTY_MAX_CLIPS. If that number is exceeded, split
the command up.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com> #v1
2019-01-28 14:47:55 +01:00
Thomas Hellstrom
357ce6e48c vmwgfx: Limit the number of cliprects in a drm present command v3
The drm present command number of cliprects should not exceed
DRM_MODE_FB_DIRTY_MAX_CLIPS. If that number is exceeded, split
the command up.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com> #v2
Reviewed-by: Deepak Rawat < drawat@vmware.com> #v1
2019-01-28 14:47:55 +01:00
Thomas Hellstrom
86189966c3 vmwgfx: Limit the number of cliprects in a drm dirtyfb command v3
The drm dirtyfb command would error if the number of cliprects were larger
than DRM_MODE_FB_DIRTY_MAX_CLIPS. If that number is exceeded, split the
command up.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com> #v2
Reviewed-by: Deepak Rawat <drawat@vmware.com> #v1
2019-01-28 14:47:55 +01:00
Thomas Hellstrom
ba4ef498fd vmwgfx: Don't exceed the device command size limit v3
With a huge number of DMA clip rects we could exceed the device command
buffer command size limit. Fix this by sending multiple DMA commands
when we exceed the limit.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com> #v1
2019-01-28 14:47:55 +01:00
Thomas Hellstrom
d31e8e77e1 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>
2018-11-29 10:18:46 +01:00
Thomas Hellstrom
79d066da48 saa: Make sure damage destruction happens at the correct location
Incorrect DestroyPixmap wrapping previously made the destruction of damage
objects typically happen in damageDestroyPixmap(), leaving a dangling
damage pointer in saa_destroy_pixmap() which was only cleared. However in
some cases that caused us to leak damage objects.

Rework saa initialization somewhat to make sure saa_destroy_pixmap happens
before damageDestroyPixmap and destroy the damage object in saa_destroy_pixmap.
Also add a damage object destruction notifier callback that clears the
saa pixmap damage pointer should the damage object destruction accidentally
happen elsewhere.

This makes sure we don't leak damage objects.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
2018-11-29 10:18:39 +01:00
Thomas Hellstrom
53e87117bb vmwgfx: Use libdrm to obtain the drm device node name v2
We were relying on a linux-specific way to do this. Now that the code is
used also on FreeBSD and there is functionality in libdrm to do this,
Use that functionality.

v2:
Remove unused variable warning in the !VMWGFX_LIBDRM_DEVICENAME case.

Co-authored-by: Johannes Lundberg <johalun0@gmail.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com> #v1
2018-11-29 10:17:38 +01:00
Thomas Hellstrom
0b34df288f 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>
2018-11-28 09:26:15 +01:00
Thomas Hellstrom
4ec3d67da8 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>
2018-11-28 09:25:39 +01:00
Alan Coopersmith
71c85a70f1 Remove obsolete B16 & B32 tags in struct definitions
They were defined as empty strings on all platforms except for the
long unsupported Cray systems which needed to use bitfields to define
any type smaller than 64-bits.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
2018-11-12 13:35:21 +01:00
Thomas Hellstrom
a5815ba3eb Bump version number for release
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
2018-05-17 09:19:12 +02:00
Thomas Hellstrom
7b163c018b Require at least XA version 2.4 to enable dri3
The XA version was bumped from 2.3 to 2.4 to signal that there were no
significant correctness or performance regressions when running dri3
compared to dri2 on the vmware driver stack.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
2018-05-17 09:17:45 +02:00
Thomas Hellstrom
6b7dc2f930 vmwgfx: Clear the DRM mode before use
Avoid sending partially uninitialized data to the kernel.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
2018-04-26 11:48:37 +02:00
Adam Jackson
0f90e2ed52 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>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
2018-03-14 21:49:14 +01:00
Thomas Hellstrom
3cdeaa5db7 Fix a couple of shadowed declaration warnings
In some enviroments, "index", "y1" and "y2" are defined globally causing
warnings about shadowed declarations. Fix this.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
2018-02-20 09:36:20 +01:00
Thomas Hellstrom
4ea5c4d5fa Build fixes
A couple of more build fixes for older X servers.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
2018-02-20 09:35:41 +01:00
Thomas Hellstrom
1899b0896d vmwgfx: Fix server termination due to a mesa loader bug
Some versions of the Gallium loader close our drm file descriptor if
xa_tracker_create() fails (typically 2D VMs.) While this is mostly fixed
everywhere, we implement a workaround to avoid tracking down the same bug
again and again on those setups where this is not fixed in mesa.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
2018-02-15 08:33:48 +01:00
Thomas Hellstrom
ea77ce3a20 legacy: Silence a warning about an unused constant
VMWAREBuildStr was only used in the !LIBPCIACCESS path.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
2018-02-15 08:32:38 +01:00