Commit Graph

3683 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
495f3d3689 replace PICT_x8r8g8b8 by PIXMAN_x8r8g8b8
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:35:47 +02:00
Enrico Weigelt, metux IT consult
df771ae3a0 replace PICT_a8r8g8b8 by PIXMAN_a8r8g8b8
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:35:47 +02:00
Enrico Weigelt, metux IT consult
a9c6061d7b replace PICT_x2b10g10r10 by PIXMAN_x2b10g10r10
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:35:47 +02:00
Enrico Weigelt, metux IT consult
19ae99e1b7 replace PICT_a2b10g10r10 by PIXMAN_a2b10g10r10
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:35:47 +02:00
Enrico Weigelt, metux IT consult
8e322df5aa replace PICT_x2r10g10b10 by PIXMAM_x2r10g10b10
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:35:47 +02:00
Enrico Weigelt, metux IT consult
63e18adf5a replace PICT_a2r10g10b10 by PIXMAN_a2r10g10b10
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:35:47 +02:00
Enrico Weigelt, metux IT consult
69eb546285 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-08-04 11:05:00 +02:00
Enrico Weigelt, metux IT consult
bdafcc009a use XNFalloc() instead of xnfalloc
xnfalloc is just an alias for XNFalloc() 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-08-04 11:05:00 +02:00
Enrico Weigelt, metux IT consult
445749d198 drop support for xserver version < 1.20.99
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 10:37:13 +02:00
Enrico Weigelt, metux IT consult
c209a55f0e drop support for xserver version < 1.19.99.1
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 10:37:13 +02:00
Enrico Weigelt, metux IT consult
84bc1933e7 drop support for xserver version < 1.18.3
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 10:37:13 +02:00
Enrico Weigelt, metux IT consult
5e1ad66f0d drop support for xserver < 1.17.99.901
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 10:37:13 +02:00
Enrico Weigelt, metux IT consult
ca1779c468 drop support for xserver < 1.16.99.901
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 10:37:13 +02:00
Enrico Weigelt, metux IT consult
f0f7efa606 drop support for Xserver < 1.15.99
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 10:37:13 +02:00
Enrico Weigelt, metux IT consult
dd0c9a6034 drop support for xserver < 1.14.99.2
No need to support really ancient Xserver versions - the lowest supported
one shall be 25.0.0.0.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-08-04 10:37:13 +02:00
Enrico Weigelt, metux IT consult
8528cb6146 radeon_glamor_wrappers: fix missing include of fbpict.h
We're calling fbComposite() and fbAddTraps() here, which are
defined in <fbpict.h>.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-30 13:48:31 +02:00
Enrico Weigelt, metux IT consult
648188b897 radeon_glamor_wrappers: fix missing include of fb.h
We're calling fbPixmapToRegion() here, which is defined in fb.h

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-30 10:41:18 +02:00
Enrico Weigelt, metux IT consult
e1557e2ab2 radeon_kms: fix missing include of "fb.h"
We're calling fbPictureInit() here, which is defined in fb.h

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-30 10:41:18 +02:00
Enrico Weigelt, metux IT consult
31f33b3503 configure: fix broken xserver version detection
Back a decade ago, somebody obviously idn't know how to check for xserver
version and abused a quite unrelated exported symbol instead. Since that
symbol isn't exported anymore (because no driver was using it), this black
magic now fails.

We're not trying to support more than a decade old Xservers, so there's
no point in this check at all, just drop it.

Fixes: ae92d1765f
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-29 10:01:04 +02:00
b-aaz
a1af1a3665 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>
2025-07-24 18:03:37 +02:00
Enrico Weigelt, metux IT consult
4d63acb2b5 .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-24 17:23:59 +02:00
Oleh Nykyforchyn
aefc66b389 radeon_kms.c: do not flush glamor operations for a closed screen
The function radeon_cs_flus_indirect() attempts to flush radeon
operations, which have already been flushed by glamor_close_screen().
This results in a segfault.

Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
2025-07-23 17:20:17 +02:00
Oleh Nykyforchyn
1fa0787cd4 radeon_glamor.c: remove a legacy glamor function support
The function glamor_egl_destroy_textured_pixmap() is absent
in glamor in recent X servers.

Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
2025-07-23 17:20:17 +02:00
Oleh Nykyforchyn
f35c980403 radeon_glamor.c: do not destroy a pixmap twice
In the function radeon_glamor_destroy_pixmap a check
if (screen->DestroyPixmap(pixmap)) was erroneously used instead of
if (screen->DestroyPixmap), which resulted in destroying a pixmap
twice and hence in a segfault.

Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
2025-07-23 17:20:17 +02:00
Joseph Crowell
1636af6405 fix: undefined symbol: glamor_egl_init_textured_pixmap
The function just returns true now so there is no point to this code which fails to find the function symbol any way.
2025-07-21 14:22:44 +02:00
callmetango
f35a6c771b .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 17:07:08 +02:00
Alan Coopersmith
d0ddf971d0 ati.man & radeon.man: Improve man page formatting
More closely follow common style as described on
https://man7.org/linux/man-pages/man7/man-pages.7.html
and fix warnings raised by `mandoc -T lint` and `groff -rCHECKSTYLE=10`

Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/30>
xfree-xf86-video-ati-22.0.0.1
2025-06-01 16:56:59 -07:00
Enrico Weigelt, metux IT consult
c610c03736 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
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/28>
2025-02-06 22:58:36 +00:00
Alan Coopersmith
888b33c679 configure: Update links to use gitlab instead of anongit & bugzilla
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/27>
2024-09-29 11:09:55 -07:00
Alan Coopersmith
d799dba35a radeon.man: Update links to use gitlab & oftc instead of cgit & freenode
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/27>
2024-09-29 11:07:23 -07:00
nia
b65036af74 Avoid namespace collision: rename bswap_XX to radeon_bswap_XX
xorg-server includes its own bswap_16, bswap_32 etc macros in
its misc.h. This is transcluded after radeon.h in some files.

If the operating system defines bswap_XX in a way that is
unsuitable for a function name (e.g. on NetBSD), this results
in build failures.

Signed-off-by: Nia Alarie <nia@NetBSD.org>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/23>
2024-06-02 18:41:52 +00:00
nia
1f81004bfc radeon_accel: Avoid unaligned access in RADEONCopySwap
from NetBSD (via Martin Husemann), this helps the radeon driver
work on sparc64 hardware.

Signed-off-by: Nia Alarie <nia@NetBSD.org>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/22>
2024-05-04 02:12:26 +02:00
Alan Coopersmith
8e5a43d248 radeon_dri2_create_buffer2: remove unused variable tiling
The code that used this was removed in commit 615033f2b5
Recent versions of clang flag this:
radeon_dri2.c:114:14: error: variable 'tiling' set but not used
 [-Werror,-Wunused-but-set-variable]
    uint32_t tiling = 0;
             ^

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/19>
2024-03-08 22:04:51 +00:00
Alan Coopersmith
47a145bb4a RADEONInit3DEngineInternal: remove unused variable gb_tile_config
Prior to commit 18d5ae3bd9
gb_tile_config was used in OUTREG(R300_GB_TILE_CONFIG, gb_tile_config);
but since then it's unused, and is flagged by recent clang versions:

radeon_accel.c:209:14: error: variable 'gb_tile_config' set but not used
 [-Werror,-Wunused-but-set-variable]
    uint32_t gb_tile_config, vap_cntl;
             ^

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/19>
2024-03-08 22:04:51 +00:00
Alan Coopersmith
adf7ca9fca Add xserver-21.1 branch to CI build matrix
Also updates build container from Debian buster (10) to bookworm (12),
which in turn requires working around glvnd shipping gl.pc with a much
lower version number than Mesa had.

v2: use Debian bookworm (12) instead of bullseye (11)

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/merge_requests/19>
2024-03-08 22:04:51 +00:00
Alan Coopersmith
7ed3b8e582 README.md: updates to match the style of the xf86-video-amdgpu README
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2024-02-24 14:42:21 -08:00
Douglas R. Reno
c99d634132 Update README.md to use proper bug URL 2024-02-24 14:39:12 -08:00
Matt Turner
0c01893774 Bump version for 22.0.0 release
Signed-off-by: Matt Turner <mattst88@gmail.com>
xf86-video-ati-22.0.0
2023-04-25 14:40:08 -04:00
Matthieu Herrb
7a6a34af02 Don't set SourceValidate pointer to NULL
inspired from similar code in amdgpu, fixes a crash when xrandr(1)
is invoqued with X server 21.1.1

Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
2022-07-30 17:37:48 +00:00
Alan Coopersmith
983a779b7a radeon_glamor_wrappers.c: Convert from ISO-8859-1 to UTF-8
Allows Flawfinder to analyze source instead of erroring out on encoding

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-07-23 18:58:08 -07:00
Alan Coopersmith
a25ca015e6 gitlab CI: enable gitlab's builtin static analysis
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-07-23 18:58:08 -07:00
Alan Coopersmith
7b94009754 gitlab CI: enable commit & merge request checks
Uses ci-fairy from freedesktop/ci-templates

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-07-23 18:58:08 -07:00
Alan Coopersmith
8fc442d6a6 Fix spelling/wording issues
Found by using:
    codespell --builtin clear,rare,usage,informal,code,names

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-04-06 23:37:35 +00:00
Alan Coopersmith
11d549d591 Build xz tarballs instead of bzip2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2022-01-22 09:24:46 -08:00
Michel Dänzer
5eba006e41 Only include dri.h with older versions of xserver
Not needed anymore with current versions.
2021-05-10 10:46:53 +02:00
Michel Dänzer
ecced3b3c6 Add GitLab CI pipeline
Based on xf86-video-amdgpu, but applying experience gained in the
meantime in other projects and taking advantage of new features
available with current versions of GitLab.
2021-03-26 17:55:04 +01:00
Michel Dänzer
77d9ab03ca Guard local variable info only used with glamor
Fixes compiler warning with glamor disabled:

radeon_dri2.c: In function 'radeon_dri2_exchange_buffers':
radeon_dri2.c:732:19: error: unused variable 'info' [-Werror=unused-variable]
     RADEONInfoPtr info = RADEONPTR(xf86ScreenToScrn(screen));
                   ^~~~
2021-03-26 17:42:50 +01:00
Michel Dänzer
3c7c84ed49 Guard local variable priv only used with glamor
Fixes compile errors with glamor disabled:

../../src/radeon_present.c: In function ‘radeon_present_check_flip’:
../../src/radeon_present.c:281:21: error: invalid use of undefined type ‘struct radeon_pixmap’
  281 |     if (priv && priv->fb_failed)
      |                     ^~
../../src/radeon_present.c:288:19: error: invalid use of undefined type ‘struct radeon_pixmap’
  288 |  if (priv && !priv->fb_failed) {
      |                   ^~
../../src/radeon_present.c:292:10: error: invalid use of undefined type ‘struct radeon_pixmap’
  292 |      priv->fb_failed = TRUE;
      |          ^~
2021-03-26 17:42:50 +01:00
Dave Airlie
8da3e4561e ati: cleanup terminology to use primary/secondary
The X server changed some API/ABIs here.

Based on amdgpu patch by Michel
2020-07-13 09:16:47 +10:00
Niclas Zeising
3845392426 Fix return value check of drmIoctl()
When the drmModeSetCursor2() call was replaced with bare drmIoctl() call in
92df7097, a bug was introduced.  With the use of drmModeSetCursor2(),
the return value from drmIoctl() (which calls ioctl()) were mangled, if
they were negative, they were replaced by -errno by a wrapper function
in xf86drMode.c in libdrm.  After replacing drmModeSetCursor2() with the
call to drmIoctl(), this mangling no longer happens, and we need to
explicitly check if the call to drmIoctl() fails, which is indicated by
returning -1, and then why it failed, by checking errno.
If the error indicated by errno is EINVAL, then we can't use the
DRM_IOCTL_MODE_CURSOR2 ioctl(), and need to fall back to the
DRM_IOCTL_MODE_CURSOR ioctl().

This bug can manifest itself by an invisible hw cursor on systems where the
DRM_IOCTL_MODE_CURSOR2 is not implemented by the graphics driver.

Credit also to Alexey Dokuchaev for help with developing the fix and
testing.

This fixes #190

Signed-off-by: Niclas Zeising <zeising@daemonic.se>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2020-04-14 18:53:26 +02:00