Commit graph

22 commits

Author SHA1 Message Date
Jeffy Chen
8684dc51fe hook: Fallback to eglGetPlatformDisplay() in eglGetDisplay()
Change-Id: Ia3a83523368270e0e811c8e3f15f415ca3288e78
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2025-07-28 12:15:32 +08:00
Jeffy Chen
1e45b0960a hook: Wrap GBM_BO_IMPORT_FD_MODIFIER for old mali
Tested on RK3399 EVB with:
chromium demo.mp4

Change-Id: Ic3f40a4a29bd6bf7a9630cd15866bfc778a07d2e
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2025-04-17 18:43:13 +08:00
Jeffy Chen
da4d604016 meson: Avoid building hook library when not needed
The hook library is for hacking GBM/EGL/X11 APIs.

Change-Id: I98c0d0a4fff4b1a56688e82367cf563700eec8f9
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2025-02-28 18:42:39 +08:00
Jeffy Chen
af1d910cd2 meson: Fix rpath error
Fix the issue where rpath introduces absolute paths when building
outside the source directory.

Change-Id: I4d5fd66211e0fea5ce0dc8fd0d1bb2e32bd0fc6f
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2025-02-26 08:34:59 +08:00
Jeffy Chen
0f3e1c0e84 hook: Disable chromium in-process-gpu workaround by default
Make it optional.

Change-Id: Id3ef4686122d2d3cecac2ae715501c544a2da2ef
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-10-12 10:54:45 +08:00
Jeffy Chen
d3603a8431 HACK: hook: Workaround chromium in-process-gpu error
Tested on RK3588 EVB with:
1/ Downgrade wayland to 1.21.0
2/ Run "chromium --in-process-gpu"

Change-Id: I128b83431797bbab457d2ff1f02173bcaab19225
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-07-24 18:12:58 +08:00
Jeffy Chen
3c3843198e hook: Fix crash in eglChooseConfig() without attrs
The attrs might be NULL.

Change-Id: If80c15f12f51cc739ee0177da97ac5ae8ec689d1
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-05-15 11:47:56 +08:00
Jeffy Chen
751535b76d hook: Link with libmali.so
To make sure that the libmali.so is loaded before the initial no-load
dlopen() here.

Fix dlopen() error when linking with libmali-hook.so alone:
FATAL: dlopen(libmali.so.1) failed((null))

Change-Id: I66599d9125322a956470189e926870bb6fcb635c
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-04-07 12:42:24 +08:00
Jeffy Chen
2520ec750e hook: Define EGL_NO_X11 when x11 is disabled
Change-Id: I89ac1474b96d3bb90f599469fdd4470529b3034d
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-03-28 09:59:02 +08:00
Jeffy Chen
260227ee55 hook: Fixup EGL_OPENGL_BIT in eglChooseConfig()
Tested on RK3588 EVB (Debian 11) with:
1/ export QT_XCB_GL_INTEGRATION=xcb_egl
2/ Run Qt application

Change-Id: I31d1ad9390c2b674f690c78d65362163951f0509
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-03-28 09:54:52 +08:00
Jeffy Chen
36422aee77 hook: Intercept all overridden functions in eglGetProcAddress
Change-Id: Iefe54515c6f9530261a43d2643c9a3f6c1129af0
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-03-28 09:54:52 +08:00
Jeffy Chen
6696882361 hook: Fix missing gbm functions error
Load all required gbm symbols dynamically.

Change-Id: Iccead1b2037e48f13ceac24fafce1fa13c7325c8
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2024-01-19 11:16:24 +08:00
Jeffy Chen
6d3d9606f6 hook: Unset current surface before destroying it
Change-Id: I9396a4a0559bcabbd4d0c9568122579ab8fe6c90
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2023-12-25 12:05:59 +08:00
Jeffy Chen
e64a7dacf4 hook: Stop linking with libmali library
Load all required symbols dynamically.

Change-Id: I6ac7ec57e7fdc7fc3018e418b914593cbbed60ba
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2023-12-25 12:00:56 +08:00
Jeffy Chen
3dcbe62f88 meson: Cleanup rpath
We don't need special rpath.

Change-Id: I818416e89900180bbf572b740da01b832023aca8
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2023-11-28 09:45:43 +08:00
Jeffy Chen
2997fe73f1 hook: Export EGL_EXT_platform_base APIs
It's part of EGL 1.5 features, some clients might call them directly.

Change-Id: I508d4c5afb73f2d8c1d9d781b2a64154296207b0
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2023-08-18 16:56:05 +08:00
Jeffy Chen
0e80946694 hook: Rename libmali_hook.so to libmali-hook.so
Change-Id: I236242792bba8d160d01128dcf81d094dd59785c
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2023-08-18 10:56:50 +08:00
Jeffy Chen
2f52a7c5f5 gbm: Bump to meson-23.1.3
Major changes:
1/ Add gbm_bo_create_with_modifiers2 and gbm_surface_create_with_modifiers2.
2/ Add headers for different versions of GBM.
3/ Detect platforms from library content.

Change-Id: Iaca158a926f5fe8c14698eb7e2ad5a427eb1632c
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2023-07-24 17:41:56 +08:00
Jeffy Chen
88506995ad hook: Hack gbm_bo_get_modifier to use linear for invalid modifier
The Mali vulkan would not accept invalid modifier:
https://github.com/vkmark/vkmark/pull/47

Tested on RK3588 EVB with:
vkmark --winsys kms

Change-Id: I995a91aca0c55d15fc67bb70fdbbfc5cb32ea198
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2023-04-13 13:25:30 +08:00
Jeffy Chen
adc896cfa3 hook: Support setting default winsys for eglGetDisplay()
Tested on RK3588 EVB with:
1/ Set MALI_DEFAULT_WINSYS env to gbm/wayland/x11.
2/ Check eglGetDisplay() and eglInitialize().

Change-Id: Id7c6af57b87f81fefc4166c9ef27e8411d2a7c25
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2022-10-21 14:57:56 +08:00
Jeffy Chen
6e1c5cbcf5 Refactor for mixed platforms
Major changes:
1/ Allow mixed platforms, e.g. x11-wayland-gbm.
2/ Move extra features, e.g. without-cl, from subversion to platform.
3/ Rename all libraries with GBM API to libmali-*-gbm.so

Change-Id: I9364f8298080788b41c5f3a3cf69aec9a2859ff5
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2022-07-14 17:13:02 +08:00
Jeffy Chen
ba714e875f Support force enabling thread support for X11
By adding a hook library to call XInitThreads() before getting egl
display.

Enabled by default, set env "MALI_X11_NO_FORCE_THREADS" to disable.

Change-Id: I0af8b29c90149bd7a920bfd54f06d5129b5e446c
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2022-03-25 14:58:08 +08:00