with this, we have a full dri 1.4 implementation
struct amdgpu_dri3_syncobj - wraps DRM syncobj handle with:
syncobj_handle - DRM syncobj handle
owns_handle - whether we own and should destroy the handle
function pointers implemented:
amdgpu_dri3_syncobj_free() - frees the syncobj and destroys the DRM handle
amdgpu_dri3_syncobj_has_fence() - checks if syncobj has a fence
amdgpu_dri3_syncobj_is_signaled() - checks if syncobj is signaled
amdgpu_dri3_syncobj_export_fence() - exports syncobj to fence fd
amdgpu_dri3_syncobj_import_fence() - imports fence fd into syncobj
amdgpu_dri3_syncobj_signal() - signals the syncobj
amdgpu_dri3_syncobj_submitted_eventfd() - eventfd submission callback
amdgpu_dri3_syncobj_signaled_eventfd() - eventfd signaled callback
import function:
amdgpu_dri3_import_syncobj() - creates syncobj and optionally imports fence
Updated dri3_screen_info_rec to version 4 with import_syncobj function pointer.
Takes a DrawablePtr, format, and returns modifiers via num_modifiers and modifiers parameters
Returns TRUE on success, FALSE on allocation failure
Selects modifiers based on GPU family (GC 12.0.0+, GFX10+, GFX9+, or older)
Returns AMD-specific tiled modifiers (64K_S, 64K_D, 64K_2D) plus LINEAR
(cherry picked from commit 69becd71c29c98d97aa69a66246ca6bf6eeaf74f)
Takes a DrawablePtr, format, and returns modifiers via num_modifiers and modifiers parameters
Returns TRUE on success, FALSE on allocation failure
Selects modifiers based on GPU family (GC 12.0.0+, GFX10+, GFX9+, or older)
Returns AMD-specific tiled modifiers (64K_S, 64K_D, 64K_2D) plus LINEAR
(cherry picked from commit 69becd71c29c98d97aa69a66246ca6bf6eeaf74f)
determines which modifiers to advertise based on the GPU family:
GFX12+ (AMDGPU_FAMILY_GC_12_0_0 and newer): Returns GFX12 tiled modifiers
GFX10+ (AMDGPU_FAMILY_NV and newer): Returns GFX10 tiled modifiers
GFX9+ (AMDGPU_FAMILY_AI and newer): Returns GFX9 tiled modifiers
Older GPUs: Only LINEAR (DRM_FORMAT_MOD_INVALID)
supports:
Multi-plane buffers (e.g., NV12, P010) with DRM modifiers
Single-plane buffers with or without modifiers
All standard X server depths (15, 16, 24, 30, 32-bit)
Proper cleanup and error handling
upcoming commits need features from newer Xserver releases, that have
been recently added both in 25.0 and 25.1 lines.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Several extensions like randr and render are always built-in in the
Xserver, no need for having them optional here in any way.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
It's breaking with Xservers SDK's functions and not needed at all,
since the Xserver SDK already providing platform independent
functions for this. (actually we only need bswap_32() anyways)
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
On NetBSD (and possibly others) we don't have XSERVER_PLATFORM_BUS
enabled, due lack of udev & kms.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Using the new driver build actions in X11Libre/actions-build-driver repo,
instead of having lots of duplicated pipeline and script in all the
individual driver repos.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Reverts commits 6e65547 and 479df8e.
These commits caused the build to fail on DragonFlyBSD.
mesa-libs 21.3.9 is not by any means ancient, it is only 3 years old and
it is still receiving critical bug fixes, and most importantly it is
still being used on DragonFlyBSD, also these are relatively small and
harmless checks.
Signed-off-by: b-aaz <b-aazbsd.proton.me>
If HAVE_LIBUDEV isn't set, this function isn't needed, so also should
be ifdef'ed out.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
only used inside the same source file, so better make it static,
so we also get rid of missing prototype warning.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>