git: bf2e205b04f5 - main - multimedia/libva-intel-media-driver: update to 23.4.3

From: Rodrigo Osorio <rodrigo_at_FreeBSD.org>
Date: Sat, 30 Mar 2024 09:30:09 UTC
The branch main has been updated by rodrigo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bf2e205b04f53cb69551014707028bb9cf612f2d

commit bf2e205b04f53cb69551014707028bb9cf612f2d
Author:     Rodrigo Osorio <rodrigo@FreeBSD.org>
AuthorDate: 2024-03-24 15:51:09 +0000
Commit:     Rodrigo Osorio <rodrigo@FreeBSD.org>
CommitDate: 2024-03-30 09:29:34 +0000

    multimedia/libva-intel-media-driver: update to 23.4.3
    
    Changelog: https://github.com/intel/media-driver/compare/intel-media-22.4.3...intel-media-23.4.3
    
    Supported Platforms:
        BDW (Broadwell)
        SKL (Skylake)
        BXTx (BXT: Broxton, APL: Apollo Lake, GLK: Gemini Lake)
        KBLx (KBL: Kaby Lake, CFL: Coffee Lake, WHL: Whiskey Lake, CML: Comet Lake, AML: Amber Lake)
        ICL (Ice Lake)
        JSL (Jasper Lake) / EHL (Elkhart Lake)
        TGLx (TGL: Tiger Lake, RKL: Rocket Lake, ADL-S/P/N: Alder Lake, RPL-S/P: Raptor Lake)
        DG1/SG1
        Alchemist(DG2)/ATSM
        MTLx (MTL: Meteor Lake, ARL-S: Arrow Lake)
---
 multimedia/libva-intel-media-driver/Makefile       |  31 +--
 multimedia/libva-intel-media-driver/distinfo       |  62 +++---
 .../libva-intel-media-driver/files/patch-revert    | 240 ---------------------
 .../libva-intel-media-driver/files/patch-userptr   |  31 ---
 4 files changed, 52 insertions(+), 312 deletions(-)

diff --git a/multimedia/libva-intel-media-driver/Makefile b/multimedia/libva-intel-media-driver/Makefile
index bcbc6a74f667..c14ec1b7720b 100644
--- a/multimedia/libva-intel-media-driver/Makefile
+++ b/multimedia/libva-intel-media-driver/Makefile
@@ -1,23 +1,26 @@
 PORTNAME=	media-driver
 DISTVERSIONPREFIX=	intel-media-
-DISTVERSION=	22.4.3
-PORTREVISION=	1
+DISTVERSION=	23.4.3
 CATEGORIES=	multimedia
 PKGNAMEPREFIX=	libva-intel-
 
 PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
-PATCHFILES+=	7debae1bd149.patch:-p1 # https://github.com/intel/media-driver/pull/1492
-PATCHFILES+=	3ee693b2bad3.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	a4313cae8533.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	4980335d82c4.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	fcfc4431f4b7.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	77382f10e352.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	4440a982d235.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	8249202403a4.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	ab1209a220eb.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	acf5314930d3.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	9acd334c50a7.patch:-p1 # https://github.com/intel/media-driver/pull/819
-PATCHFILES+=	a338a45f0675.patch:-p1 # https://github.com/intel/media-driver/pull/819
+PATCHFILES+=	d54347296.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	7e26e598e.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	6e1f5e635.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	7485cf796.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	3297302d8.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	0f3012331.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	695b56fe0.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	be6bd904b.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	daaa7172e.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	59c560101.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	2933bb51e.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	4ec9b2bd6.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	17d384458.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	abb792cad.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	7d261abf2.patch:-p1 #https://github.com/intel/media-driver/pull/1785
+PATCHFILES+=	67961a267.patch:-p1 #https://github.com/intel/media-driver/pull/1785
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	VAAPI driver for Intel HD 5000 (Gen8) or newer
diff --git a/multimedia/libva-intel-media-driver/distinfo b/multimedia/libva-intel-media-driver/distinfo
index cbfa28f0ff5c..2745ab7bd091 100644
--- a/multimedia/libva-intel-media-driver/distinfo
+++ b/multimedia/libva-intel-media-driver/distinfo
@@ -1,27 +1,35 @@
-TIMESTAMP = 1653561072
-SHA256 (intel-media-driver-intel-media-22.4.3_GH0.tar.gz) = c30a63414d4aaf1a3b5c09db02b6c4da23b5998620ff8c950bb8258104576568
-SIZE (intel-media-driver-intel-media-22.4.3_GH0.tar.gz) = 27415572
-SHA256 (7debae1bd149.patch) = 1da22fd6a97e00f5014d48b4a240cd107e2430689759bfc793dd90cea5064b48
-SIZE (7debae1bd149.patch) = 1969
-SHA256 (3ee693b2bad3.patch) = 565445b42b6edd39c73fc0b3689da0753366787f5c22b5daf0f648245ae9ae0c
-SIZE (3ee693b2bad3.patch) = 1241
-SHA256 (a4313cae8533.patch) = c52bf061c693dc2eb7ba64117b8f84c2894c42017d1f186c9f3757aeae8f95a8
-SIZE (a4313cae8533.patch) = 1265
-SHA256 (4980335d82c4.patch) = 7895e6b537c626b8c77cf6308d9d3b5c1b35105735e98d1d2e0e41b42af1dbe4
-SIZE (4980335d82c4.patch) = 2188
-SHA256 (fcfc4431f4b7.patch) = 3df3eb048b3d1e77acb08813469979cc3f44af4abbeabce5b2bceeea45ad494a
-SIZE (fcfc4431f4b7.patch) = 2192
-SHA256 (77382f10e352.patch) = bdfbbefba9cbc977bc6e61ab2b1c743e921823a44ca20f54e1382f6cb23aa3ce
-SIZE (77382f10e352.patch) = 1162
-SHA256 (4440a982d235.patch) = 71c152cafd791754dc69ee1ed7201f77bdd33d45cae061363a408970d409a3b3
-SIZE (4440a982d235.patch) = 3417
-SHA256 (8249202403a4.patch) = 203f9ee6ad2101a703550a69447329cda29b75d4eef07c407205e6e724124f84
-SIZE (8249202403a4.patch) = 6044
-SHA256 (ab1209a220eb.patch) = 8b18466fc773dce8573c378a76fde6d45dfbe77379722a1b1104eb27beb7f0fa
-SIZE (ab1209a220eb.patch) = 2404
-SHA256 (acf5314930d3.patch) = 602e86cb5f65439ca192c95c69e9a76c4abc15781fb3dcc9dc40584ccc3e2f60
-SIZE (acf5314930d3.patch) = 3280
-SHA256 (9acd334c50a7.patch) = eb35c49b04ebc8f817587b7a025cd1225efec5979e45a7330c86d31cc87574c7
-SIZE (9acd334c50a7.patch) = 802
-SHA256 (a338a45f0675.patch) = 55b1379dc0702968217f059ee07d34fe8d31dff6ebf29c8743e1ba7e48ff929b
-SIZE (a338a45f0675.patch) = 2869
+TIMESTAMP = 1711293145
+SHA256 (intel-media-driver-intel-media-23.4.3_GH0.tar.gz) = 83b95eefe86c9d58d92c2a77793541ea3cb643dff419599ffa87899fd58738cd
+SIZE (intel-media-driver-intel-media-23.4.3_GH0.tar.gz) = 25805389
+SHA256 (67961a267.patch) = be88e1a492b5b03d8dd516135fff4eb07e97a2f32d9b3ec7bd1a9a57f9c78cde
+SIZE (67961a267.patch) = 846
+SHA256 (7d261abf2.patch) = 68d24418ead81595ea4729764abd51e930d99e45ac5023790f3bcea37c02cbc6
+SIZE (7d261abf2.patch) = 1950
+SHA256 (abb792cad.patch) = 32c71ff1849e161b77833f8b3925644756de80779fae3497a31e1a95cfd52a5b
+SIZE (abb792cad.patch) = 1596
+SHA256 (17d384458.patch) = 846da2dd019172cb4ab64c8d094dceae9ab21483378c8ea35e5fe81f0182ab20
+SIZE (17d384458.patch) = 7680
+SHA256 (4ec9b2bd6.patch) = 3fadd418328cda433788ead1cf911003023e3dab79c29120de99b1939feb20a2
+SIZE (4ec9b2bd6.patch) = 1040
+SHA256 (2933bb51e.patch) = 4013d2a2a0b03d80e20580930246505e268e5a16057e07dfcdc229a81e6d8b45
+SIZE (2933bb51e.patch) = 1417
+SHA256 (59c560101.patch) = 38f7c9081e6c35e7550e34fad5075a547febc788e76d31bea78915a35c861cfc
+SIZE (59c560101.patch) = 807
+SHA256 (daaa7172e.patch) = 0ff9dff3cbf0344368a1d5ec313d5ba5c38a482e7c9cfcb8b513b8972b898cb8
+SIZE (daaa7172e.patch) = 3305
+SHA256 (be6bd904b.patch) = 23e3c93a92fd03aac75b53a99d6edf8a9ed31ac046b1bf3266e041559b1836fc
+SIZE (be6bd904b.patch) = 2378
+SHA256 (695b56fe0.patch) = e190823ee8c45437bda97ee0acbf07e6ee02197e8bc8f7e137080953e0c7a769
+SIZE (695b56fe0.patch) = 5997
+SHA256 (0f3012331.patch) = ad7862e7717db30d6e1295e49737a06425bcc00bd286fe4b2fa480e44d4e7855
+SIZE (0f3012331.patch) = 3421
+SHA256 (3297302d8.patch) = 8b029a88e44567d120dec6a940c9ecf3e71cc387c026942668d7e6e12d254be5
+SIZE (3297302d8.patch) = 1162
+SHA256 (7485cf796.patch) = 34d85d997c25ed2a6d6e8f426e137c517950276b8b9681dfa125fd7e2550183d
+SIZE (7485cf796.patch) = 2027
+SHA256 (6e1f5e635.patch) = d14fff98319669fc6aef8aff830f34ee28a50a32f2466ced69582f40308b33cd
+SIZE (6e1f5e635.patch) = 2197
+SHA256 (7e26e598e.patch) = 703f78ec4ec117fa67b224c5989a08b5c95b71db08d2b8bece16ef131caa9db3
+SIZE (7e26e598e.patch) = 1265
+SHA256 (d54347296.patch) = b02fa57c0eee1f0d9d388a1cce649841b4902c297ed3c3f609ec5ae03f1131c4
+SIZE (d54347296.patch) = 1241
diff --git a/multimedia/libva-intel-media-driver/files/patch-revert b/multimedia/libva-intel-media-driver/files/patch-revert
deleted file mode 100644
index ff6d3c1ca303..000000000000
--- a/multimedia/libva-intel-media-driver/files/patch-revert
+++ /dev/null
@@ -1,240 +0,0 @@
-Temporarily revert https://github.com/intel/media-driver/commit/53405da4ad2d
-until bundled libdrm is ported
-
-In file included from media_driver/linux/common/os/mos_interface.cpp:37:
-cmrtlib/linux/hardware/drm_device.h:268:19: error: use of undeclared identifier 'DRM_MAJOR'
-    return maj == DRM_MAJOR;
-                  ^
-
---- cmrtlib/linux/hardware/drm_device.h.orig	2022-05-08 00:14:20 UTC
-+++ cmrtlib/linux/hardware/drm_device.h
-@@ -53,7 +53,6 @@
- #endif
- #include <math.h>
- #include <string>
--#include <cstring>
- 
- #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
- 
-@@ -125,7 +124,7 @@ typedef void          *drmAddress, **drmAddressPtr; /*
- #define MAX3( A, B, C ) ((A) > (B) ? MAX2(A, C) : MAX2(B, C))
- 
- #define __align_mask(value, mask)  (((value) + (mask)) & ~(mask))
--#define ALIGN_CEIL(value, alignment)    __align_mask(value, (__typeof__(value))((alignment) - 1))
-+#define ALIGN(value, alignment)    __align_mask(value, (__typeof__(value))((alignment) - 1))
- #define DRM_PLATFORM_DEVICE_NAME_LEN 512
- 
- typedef struct _drmPciBusInfo {
-@@ -231,21 +230,6 @@ drm_device_validate_flags(uint32_t flags)
-     return (flags & ~DRM_DEVICE_GET_PCI_REVISION);
- }
- 
--static bool
--drm_device_has_rdev(drmDevicePtr device, dev_t find_rdev)
--{
--    struct stat sbuf;
--
--    for (int i = 0; i < DRM_NODE_MAX; i++) {
--        if (device->available_nodes & 1 << i) {
--            if (stat(device->nodes[i], &sbuf) == 0 &&
--                sbuf.st_rdev == find_rdev)
--                return true;
--        }
--    }
--    return false;
--}
--
- static int drmGetMaxNodeName(void)
- {
-     return sizeof(DRM_DIR_NAME) +
-@@ -305,7 +289,7 @@ static drmDevicePtr drmDeviceAlloc(unsigned int type, 
-     unsigned int i;
-     char *ptr;
- 
--    max_node_length = ALIGN_CEIL(drmGetMaxNodeName(), sizeof(void *));
-+    max_node_length = ALIGN(drmGetMaxNodeName(), sizeof(void *));
- 
-     extra = DRM_NODE_MAX * (sizeof(void *) + max_node_length);
- 
-@@ -1192,105 +1176,6 @@ int drmGetDevices(drmDevicePtr devices[], int max_devi
-     return drmGetDevices2(DRM_DEVICE_GET_PCI_REVISION, devices, max_devices);
- }
- 
--/**
-- * Get information about the opened drm device
-- *
-- * \param fd file descriptor of the drm device
-- * \param flags feature/behaviour bitmask
-- * \param device the address of a drmDevicePtr where the information
-- *               will be allocated in stored
-- *
-- * \return zero on success, negative error code otherwise.
-- *
-- * \note Unlike drmGetDevice it does not retrieve the pci device revision field
-- * unless the DRM_DEVICE_GET_PCI_REVISION \p flag is set.
-- */
--int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device)
--{
--    drmDevicePtr local_devices[MAX_DRM_NODES];
--    drmDevicePtr d;
--    DIR *sysdir;
--    struct dirent *dent;
--    struct stat sbuf;
--    int subsystem_type;
--    int maj, min;
--    int ret, i, node_count;
--    dev_t find_rdev;
--
--    if (drm_device_validate_flags(flags))
--        return -EINVAL;
--
--    if (fd == -1 || device == NULL)
--        return -EINVAL;
--
--    if (fstat(fd, &sbuf))
--        return -errno;
--
--    find_rdev = sbuf.st_rdev;
--    maj = major(sbuf.st_rdev);
--    min = minor(sbuf.st_rdev);
--
--    if (!drmNodeIsDRM(maj, min) || !S_ISCHR(sbuf.st_mode))
--        return -EINVAL;
--
--    subsystem_type = drmParseSubsystemType(maj, min);
--    if (subsystem_type < 0)
--        return subsystem_type;
--
--    sysdir = opendir(DRM_DIR_NAME);
--    if (!sysdir)
--        return -errno;
--
--    i = 0;
--    while ((dent = readdir(sysdir))) {
--        ret = process_device(&d, dent->d_name, subsystem_type, true, flags);
--        if (ret)
--            continue;
--
--        if (i >= MAX_DRM_NODES) {
--            fprintf(stderr, "More than %d drm nodes detected. "
--                    "Please report a bug - that should not happen.\n"
--                    "Skipping extra nodes\n", MAX_DRM_NODES);
--            break;
--        }
--        local_devices[i] = d;
--        i++;
--    }
--    node_count = i;
--
--    drmFoldDuplicatedDevices(local_devices, node_count);
--
--    *device = NULL;
--
--    for (i = 0; i < node_count; i++) {
--        if (!local_devices[i])
--            continue;
--
--        if (drm_device_has_rdev(local_devices[i], find_rdev))
--            *device = local_devices[i];
--        else
--            drmFreeDevice(&local_devices[i]);
--    }
--
--    closedir(sysdir);
--    if (*device == NULL)
--        return -ENODEV;
--    return 0;
--}
--
--/**
-- * Get information about the opened drm device
-- *
-- * \param fd file descriptor of the drm device
-- * \param device the address of a drmDevicePtr where the information
-- *               will be allocated in stored
-- *
-- * \return zero on success, negative error code otherwise.
-- */
--int drmGetDevice(int fd, drmDevicePtr *device)
--{
--    return drmGetDevice2(fd, DRM_DEVICE_GET_PCI_REVISION, device);
--}
- 
- static int32_t GetRendererFileDescriptor(char * drm_node)
- {
---- media_driver/linux/common/os/i915/include/xf86drm.h.orig	2022-04-22 04:04:55 UTC
-+++ media_driver/linux/common/os/i915/include/xf86drm.h
-@@ -713,6 +713,39 @@ extern char *drmGetRenderDeviceNameFromFd(int fd);
- 
- #define DRM_BUS_PCI   0
- 
-+typedef struct _drmPciBusInfo {
-+    uint16_t domain;
-+    uint8_t bus;
-+    uint8_t dev;
-+    uint8_t func;
-+} drmPciBusInfo, *drmPciBusInfoPtr;
-+
-+typedef struct _drmPciDeviceInfo {
-+    uint16_t vendor_id;
-+    uint16_t device_id;
-+    uint16_t subvendor_id;
-+    uint16_t subdevice_id;
-+    uint8_t revision_id;
-+} drmPciDeviceInfo, *drmPciDeviceInfoPtr;
-+
-+typedef struct _drmDevice {
-+    char **nodes; /* DRM_NODE_MAX sized array */
-+    int available_nodes; /* DRM_NODE_* bitmask */
-+    int bustype;
-+    union {
-+        drmPciBusInfoPtr pci;
-+    } businfo;
-+    union {
-+        drmPciDeviceInfoPtr pci;
-+    } deviceinfo;
-+} drmDevice, *drmDevicePtr;
-+
-+extern int drmGetDevice(int fd, drmDevicePtr *device);
-+extern void drmFreeDevice(drmDevicePtr *device);
-+
-+extern int drmGetDevices(drmDevicePtr devices[], int max_devices);
-+extern void drmFreeDevices(drmDevicePtr devices[], int count);
-+
- #if defined(__cplusplus)
- }
- #endif
---- media_driver/linux/common/os/media_srcs.cmake.orig	2022-04-22 04:04:55 UTC
-+++ media_driver/linux/common/os/media_srcs.cmake
-@@ -27,10 +27,6 @@ endif()
-     media_include_subdirectory(i915_production)
- endif()
- 
--# This is to include drm_device.h in cmrtlib, no cpp file needed.
--include_directories(${BS_DIR_MEDIA}/cmrtlib/linux/hardware)
--
--
- set(TMP_SOURCES_
-     ${CMAKE_CURRENT_LIST_DIR}/hwinfo_linux.c
-     ${CMAKE_CURRENT_LIST_DIR}/mos_context_specific.cpp
---- media_driver/linux/common/os/mos_interface.cpp.orig	2022-04-22 04:04:55 UTC
-+++ media_driver/linux/common/os/mos_interface.cpp
-@@ -34,7 +34,6 @@
- #include "mos_os_virtualengine_scalability_specific_next.h"
- #include "mos_graphicsresource_specific_next.h"
- #include "mos_bufmgr_priv.h"
--#include "drm_device.h"
- 
- #if (_DEBUG || _RELEASE_INTERNAL)
- #include <stdlib.h>   //for simulate random OS API failure
---- media_driver/media_top_cmake.cmake.orig	2022-05-08 00:14:20 UTC
-+++ media_driver/media_top_cmake.cmake
-@@ -198,7 +198,7 @@ if (NOT DEFINED INCLUDED_LIBS OR "${INCLUDED_LIBS}" ST
-     endif()
- 
-     target_compile_options( ${LIB_NAME} PUBLIC ${LIBGMM_CFLAGS_OTHER})
--    target_link_libraries ( ${LIB_NAME} ${LIBGMM_LIBRARIES})
-+    target_link_libraries ( ${LIB_NAME} ${LIBGMM_LIBRARIES} drm)
- 
-     include(${MEDIA_EXT_CMAKE}/ext/media_feature_include_ext.cmake OPTIONAL)
- 
diff --git a/multimedia/libva-intel-media-driver/files/patch-userptr b/multimedia/libva-intel-media-driver/files/patch-userptr
deleted file mode 100644
index 0be32504c772..000000000000
--- a/multimedia/libva-intel-media-driver/files/patch-userptr
+++ /dev/null
@@ -1,31 +0,0 @@
-Try unsynchronized userptr if regular one fails.
-https://github.com/FreeBSDDesktop/kms-drm/issues/197
-
---- media_driver/linux/common/os/i915/mos_bufmgr.c.orig	2019-12-10 08:54:00 UTC
-+++ media_driver/linux/common/os/i915/mos_bufmgr.c
-@@ -945,10 +945,15 @@ mos_gem_bo_alloc_userptr(struct mos_bufmgr *bufmgr,
-     userptr.user_size = size;
-     userptr.flags = 0;
- 
-+retry:
-     ret = drmIoctl(bufmgr_gem->fd,
-             DRM_IOCTL_I915_GEM_USERPTR,
-             &userptr);
-     if (ret != 0) {
-+        if (errno == ENODEV && userptr.flags == 0) {
-+            userptr.flags = I915_USERPTR_UNSYNCHRONIZED;
-+            goto retry;
-+        }
-         MOS_DBG("bo_create_userptr: "
-             "ioctl failed with user ptr %p size 0x%lx, "
-             "user flags 0x%lx\n", addr, size, flags);
-@@ -1021,6 +1026,9 @@ retry:
-         if (errno == ENODEV && userptr.flags == 0) {
-             userptr.flags = I915_USERPTR_UNSYNCHRONIZED;
-             goto retry;
-+        }
-+        if (geteuid() != 0) {
-+            fprintf(stderr, "%s", "ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability.\n");
-         }
-         free(ptr);
-         return false;