- fixed driver for current libva by switchting to gentoo patches

(boo#1234858)
  * intel-hybrid-codec-driver-2.0.0-gcc10-fix.patch
  * intel-hybrid-codec-driver-2.0.0-invalid-read-fix.patch
  * intel-hybrid-codec-driver-2.0.0-nullptr-fix.patch
  * intel-hybrid-codec-driver-2.0.0-vadriverinit-fix.patch
  * intel-hybrid-codec-driver-2.0.0-x11-fix.patch
- supersedes the following patches
  * U_Update-the-dependency-to-libva-2.0.patch
  * n_libva-2.0-ABI-header-fix.patch
  * u_gcc10.patch
- raised driver version number to 2.0.0

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/intel-hybrid-driver?expand=0&rev=12
This commit is contained in:
Stefan Dirsch 2025-01-03 22:42:22 +00:00 committed by Git OBS Bridge
commit 5a41c7b304
13 changed files with 420 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,55 @@
From dfa9c8eba29573e24f73b1890f8a67f0e46e3d7b Mon Sep 17 00:00:00 2001
From: "Xiang, Haihao" <haihao.xiang@intel.com>
Date: Sat, 14 Oct 2017 07:45:07 +0800
Subject: [PATCH] Update the dependency to libva 2.0
In addition, This fixes deprecated warning caused by libva 2.0
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
---
configure.ac | 6 +-----
src/va_backend_compat.h | 8 ++++++++
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
index 192c0db..6cf1431 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,8 +10,7 @@ m4_append([intel_driver_version], intel_driver_pre_version, [.pre])
])
# libva minimum version requirement
-m4_define([va_api_version], [0.38])
-m4_define([libva_package_version], [1.6.0])
+m4_define([va_api_version], [1.0.0])
# libdrm minimum version requirement
m4_define([libdrm_version], [2.4.45])
@@ -71,9 +70,6 @@ AC_SYS_LARGEFILE
AC_CHECK_LIB([m], [sin])
AC_CHECK_FUNCS([log2f])
-LIBVA_PACKAGE_VERSION=libva_package_version
-AC_SUBST(LIBVA_PACKAGE_VERSION)
-
dnl Check for recent enough DRM
LIBDRM_VERSION=libdrm_version
PKG_CHECK_MODULES([DRM], [libdrm >= $LIBDRM_VERSION])
diff --git a/src/va_backend_compat.h b/src/va_backend_compat.h
index f5c9f75..2894c90 100644
--- a/src/va_backend_compat.h
+++ b/src/va_backend_compat.h
@@ -45,4 +45,12 @@
# define VA_DRM_AUTH_CUSTOM VA_DUMMY
#endif
+#if VA_CHECK_VERSION(1,0,0)
+
+# define VAEncPackedHeaderMiscMask 0x80000000
+# define VAEncPackedHeaderH264_SEI (VAEncPackedHeaderMiscMask | 1)
+# define VAEncPackedHeaderHEVC_SEI (VAEncPackedHeaderMiscMask | 1)
+
+#endif
+
#endif /* VA_BACKEND_COMPAT_H */

View File

@ -0,0 +1,11 @@
--- intel-hybrid-driver/src/media_drv_common.h 2020-05-26 23:18:02.279795861 +0100
+++ intel-hybrid-driver-new/src/media_drv_common.h 2020-05-26 23:19:11.316101524 +0100
@@ -39,6 +39,6 @@
#define BRC_INIT_IGNORE_PICTURE_HEADER_SIZE 0x2000
#define BRC_INIT_DISABLE_MBBRC 0x8000
-UINT SEARCH_PATH_TABLE[2][8][16];
-UINT ME_CURBE_INIT_DATA[30];
+extern UINT SEARCH_PATH_TABLE[2][8][16];
+extern UINT ME_CURBE_INIT_DATA[30];
#endif

View File

@ -0,0 +1,39 @@
diff --git a/src/media_drv_gen75_render.c b/src/media_drv_gen75_render.c
index a3d60ff..51b1442 100644
--- a/src/media_drv_gen75_render.c
+++ b/src/media_drv_gen75_render.c
@@ -1453,7 +1453,7 @@ media_drv_gen75_render_init(VADriverContextP ctx)
if (IS_HASWELL (drv_ctx->drv_data.device_id)) {
memcpy(render_state->render_kernels, render_kernels_gen7_haswell,
- sizeof(render_state->render_kernels));
+ sizeof(render_kernels_gen7_haswell));
render_state->render_put_surface = gen7_render_put_surface;
render_state->render_put_subpicture = gen7_render_put_subpicture;
} else {
diff --git a/src/media_drv_gen8_render.c b/src/media_drv_gen8_render.c
index 42005ea..da349cc 100644
--- a/src/media_drv_gen8_render.c
+++ b/src/media_drv_gen8_render.c
@@ -1741,7 +1741,7 @@ media_drv_gen8_render_init(VADriverContextP ctx)
render_state->max_wm_threads = 64;
memcpy(render_state->render_kernels, render_kernels_gen8,
- sizeof(render_state->render_kernels));
+ sizeof(render_kernels_gen8));
kernel_size = 4096;
diff --git a/src/media_drv_hw_g75.c b/src/media_drv_hw_g75.c
index 57eddbd..080cd86 100644
--- a/src/media_drv_hw_g75.c
+++ b/src/media_drv_hw_g75.c
@@ -3325,7 +3325,7 @@ media_set_curbe_vp8_me (VP8_ME_CURBE_PARAMS * params)
MEDIA_CURBE_DATA_ME *cmd = (MEDIA_CURBE_DATA_ME *) params->curbe_cmd_buff;
media_drv_memcpy (cmd, sizeof (MEDIA_CURBE_DATA_ME), ME_CURBE_INIT_DATA,
- sizeof (MEDIA_CURBE_DATA_ME));
+ sizeof (ME_CURBE_INIT_DATA));
me_mode =
params->
me_16x_enabled ? (params->me_16x ? ME16x_BEFORE_ME4x : ME4x_AFTER_ME16x) :

View File

@ -0,0 +1,21 @@
diff --git a/src/vp9hdec/decode_hybrid_vp9.cpp b/src/vp9hdec/decode_hybrid_vp9.cpp
index 1baf339..7a086e2 100644
--- a/src/vp9hdec/decode_hybrid_vp9.cpp
+++ b/src/vp9hdec/decode_hybrid_vp9.cpp
@@ -3289,9 +3289,16 @@ VAStatus Intel_HybridVp9Decode_HostVldRenderCb (
// Reset padding flag of current frame and update surface dimension
surface = SURFACE(pMdfDecodeFrame->ucCurrIndex);
+ if ((surface == NULL) || (surface->private_data == NULL))
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+
pFrameSource = (INTEL_DECODE_HYBRID_VP9_MDF_FRAME_SOURCE *)(surface->private_data);
pCurrFrame = &(pFrameSource->Frame);
pFrameSource->bHasPadding = false;
+
+ if (pCurrFrame->pMdfSurface == NULL)
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+
pCurrFrame->pMdfSurface->SetSurfaceStateDimensions(
pMdfDecodeFrame->dwWidth,
pMdfDecodeFrame->dwHeight);

View File

@ -0,0 +1,13 @@
--- intel-hybrid-driver/src/media_drv_init.c
+++ intel-hybrid-driver-new/src/media_drv_init.c
@@ -2764,9 +2764,9 @@ va_driver_init (VADriverContextP ctx)
return ret;
}
-VAStatus DLL_EXPORT __vaDriverInit_0_34 (VADriverContextP ctx);
+VAStatus DLL_EXPORT VA_DRIVER_INIT_FUNC (VADriverContextP ctx);
VAStatus
-__vaDriverInit_0_34 (VADriverContextP ctx)
+VA_DRIVER_INIT_FUNC (VADriverContextP ctx)
{
VAStatus ret = VA_STATUS_ERROR_UNKNOWN;

View File

@ -0,0 +1,54 @@
From b3b4d9a3a08d48bf6022723908a22255cc271ab7 Mon Sep 17 00:00:00 2001
From: Daniel Charles <daniel.charles@intel.com>
Date: Fri, 4 May 2018 09:56:10 -0700
Subject: [PATCH] driver_init: load libva-x11.so for any ABI version
with libva > 2.0.0 hybrid driver can operate with it as well
so make this load generic to libva installed version
Signed-off-by: Daniel Charles <daniel.charles@intel.com>
---
src/media_drv_output_dri.c | 10 ++++++++++
src/media_drv_output_dri.h | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/media_drv_output_dri.c b/src/media_drv_output_dri.c
index 42299b8..bbd9713 100644
--- a/src/media_drv_output_dri.c
+++ b/src/media_drv_output_dri.c
@@ -105,6 +105,15 @@ media_output_dri_init (VADriverContextP ctx)
struct dri_vtable *dri_vtable;
static const struct dso_symbol symbols[] = {
+#if VA_CHECK_VERSION(1,0,0)
+ {"va_dri_get_drawable",
+ offsetof (struct dri_vtable, get_drawable)},
+ {"va_dri_get_rendering_buffer",
+ offsetof (struct dri_vtable, get_rendering_buffer)},
+ {"va_dri_swap_buffer",
+ offsetof (struct dri_vtable, swap_buffer)},
+ {NULL,}
+#else
{"dri_get_drawable",
offsetof (struct dri_vtable, get_drawable)},
{"dri_get_rendering_buffer",
@@ -112,6 +121,7 @@ media_output_dri_init (VADriverContextP ctx)
{"dri_swap_buffer",
offsetof (struct dri_vtable, swap_buffer)},
{NULL,}
+#endif
};
drv_ctx->dri_output =
diff --git a/src/media_drv_output_dri.h b/src/media_drv_output_dri.h
index 0d6ccf0..889861c 100644
--- a/src/media_drv_output_dri.h
+++ b/src/media_drv_output_dri.h
@@ -30,7 +30,7 @@
#define _MEDIA__DRIVER_OUT_DRI_H
#include <stdbool.h>
#include "media_drv_defines.h"
-#define LIBVA_X11_NAME "libva-x11.so.1"
+#define LIBVA_X11_NAME "libva-x11.so.2"
VOID media_output_dri_terminate (VADriverContextP ctx);
BOOL media_output_dri_init (VADriverContextP ctx);

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:16cd66872e8043ce6c0e9a016a043c460e8a180fdc520f31c1f97ffef7828d7b
size 1331968

View File

@ -0,0 +1,59 @@
-------------------------------------------------------------------
Fri Jan 3 22:36:02 UTC 2025 - Stefan Dirsch <sndirsch@suse.com>
- fixed driver for current libva by switchting to gentoo patches
(boo#1234858)
* intel-hybrid-codec-driver-2.0.0-gcc10-fix.patch
* intel-hybrid-codec-driver-2.0.0-invalid-read-fix.patch
* intel-hybrid-codec-driver-2.0.0-nullptr-fix.patch
* intel-hybrid-codec-driver-2.0.0-vadriverinit-fix.patch
* intel-hybrid-codec-driver-2.0.0-x11-fix.patch
- supersedes the following patches
* U_Update-the-dependency-to-libva-2.0.patch
* n_libva-2.0-ABI-header-fix.patch
* u_gcc10.patch
- raised driver version number to 2.0.0
-------------------------------------------------------------------
Tue Jun 9 10:25:59 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- u_gcc10.patch
* fixes build against gcc10, which uses -fno-common as default
-------------------------------------------------------------------
Fri Apr 10 19:47:29 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
- Update URL to current home.
- Replace gcc-c++ with generic c++_compiler BuildRequires.
- Drop Group tag.
- Pass autogen.sh to bootstrap instead of manually calling
autoreconf.
-------------------------------------------------------------------
Tue Feb 19 11:08:21 UTC 2019 - bjorn.lie@gmail.com
- Add n_libva-2.0-ABI-header-fix.patch: Load libva-x11.so.2 for
libva-2.0 ABI version. This is a reworked patch from an upstream
merge request. Patch in it's current form is not upstreamable,
but works for us since we only have libva-2.0 to care about.
See https://github.com/01org/intel-hybrid-driver/pull/26 for more
context.
-------------------------------------------------------------------
Sat Jan 26 20:20:30 UTC 2019 - bjorn.lie@gmail.com
- Add U_Update-the-dependency-to-libva-2.0.patch: Update the
dependency to libva 2.0. In addition, this fixes deprecated
warning caused by libva 2.0.
- Add Group tag and use macros in spec for building.
-------------------------------------------------------------------
Thu Sep 21 12:21:31 UTC 2017 - sndirsch@suse.com
- fixed build on Leap (apparently there is no %make_build macro yet)
-------------------------------------------------------------------
Fri Aug 18 09:07:28 UTC 2017 - zaitor@opensuse.org
- Initial packaging for openSUSE, version 1.0.2.

75
intel-hybrid-driver.spec Normal file
View File

@ -0,0 +1,75 @@
#
# spec file for package intel-hybrid-driver
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2017 Bjørn Lie, Bryne, Norway.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: intel-hybrid-driver
Version: 2.0.0
Release: 0
Summary: VA driver for Intel G45 & HD Graphics family
License: MIT
URL: https://github.com/intel/intel-hybrid-driver
Source0: %{url}/archive/%{version}/%{name}-1.0.2.tar.gz
Patch1: intel-hybrid-codec-driver-2.0.0-gcc10-fix.patch
Patch2: intel-hybrid-codec-driver-2.0.0-invalid-read-fix.patch
Patch3: intel-hybrid-codec-driver-2.0.0-nullptr-fix.patch
Patch4: intel-hybrid-codec-driver-2.0.0-vadriverinit-fix.patch
Patch5: intel-hybrid-codec-driver-2.0.0-x11-fix.patch
BuildRequires: c++_compiler
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(libcmrt) >= 0.10.0
BuildRequires: pkgconfig(libdrm) >= 2.4.45
BuildRequires: pkgconfig(libva) >= 1.0.0
BuildRequires: pkgconfig(libva-wayland)
BuildRequires: pkgconfig(libva-x11)
BuildRequires: pkgconfig(wayland-client)
# Obviously only for intel platform
ExclusiveArch: %{ix86} x86_64 ia64
%description
This is the VA-API implementation for Intel G45 chipsets
and Intel HD Graphics for Intel Core processor family.
%prep
%autosetup -p1 -n %{name}-1.0.2
%build
NOCONFIGURE=1 ./autogen.sh
%configure \
--enable-drm \
--enable-x11 \
--enable-wayland \
%{nil}
%make_build
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license COPYING
%doc NEWS README
%dir %{_libdir}/dri
%{_libdir}/dri/hybrid_drv_video.so
%changelog

View File

@ -0,0 +1,55 @@
From b3b4d9a3a08d48bf6022723908a22255cc271ab7 Mon Sep 17 00:00:00 2001
From: Daniel Charles <daniel.charles@intel.com>
Date: Fri, 4 May 2018 09:56:10 -0700
Subject: [PATCH] driver_init: load libva-x11.so for any ABI version
with libva > 2.0.0 hybrid driver can operate with it as well
so make this load generic to libva installed version
Signed-off-by: Daniel Charles <daniel.charles@intel.com>
---
src/media_drv_output_dri.c | 10 ++++++++++
src/media_drv_output_dri.h | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/media_drv_output_dri.c b/src/media_drv_output_dri.c
index 42299b8..bbd9713 100644
--- a/src/media_drv_output_dri.c
+++ b/src/media_drv_output_dri.c
@@ -105,6 +105,15 @@ media_output_dri_init (VADriverContextP ctx)
struct dri_vtable *dri_vtable;
static const struct dso_symbol symbols[] = {
+#if VA_CHECK_VERSION(1,0,0)
+ {"va_dri_get_drawable",
+ offsetof (struct dri_vtable, get_drawable)},
+ {"va_dri_get_rendering_buffer",
+ offsetof (struct dri_vtable, get_rendering_buffer)},
+ {"va_dri_swap_buffer",
+ offsetof (struct dri_vtable, swap_buffer)},
+ {NULL,}
+#else
{"dri_get_drawable",
offsetof (struct dri_vtable, get_drawable)},
{"dri_get_rendering_buffer",
@@ -112,6 +121,7 @@ media_output_dri_init (VADriverContextP ctx)
{"dri_swap_buffer",
offsetof (struct dri_vtable, swap_buffer)},
{NULL,}
+#endif
};
drv_ctx->dri_output =
diff --git a/src/media_drv_output_dri.h b/src/media_drv_output_dri.h
index 0d6ccf0..889861c 100644
--- a/src/media_drv_output_dri.h
+++ b/src/media_drv_output_dri.h
@@ -30,7 +30,7 @@
#define _MEDIA__DRIVER_OUT_DRI_H
#include <stdbool.h>
#include "media_drv_defines.h"
-#define LIBVA_X11_NAME "libva-x11.so.1"
+#define LIBVA_X11_NAME "libva-x11.so.2"
VOID media_output_dri_terminate (VADriverContextP ctx);
BOOL media_output_dri_init (VADriverContextP ctx);

11
u_gcc10.patch Normal file
View File

@ -0,0 +1,11 @@
--- intel-hybrid-driver-1.0.2.orig/src/media_drv_common.h 2020-06-09 10:21:13.982454569 +0000
+++ intel-hybrid-driver-1.0.2/src/media_drv_common.h 2020-06-09 10:22:27.751970861 +0000
@@ -39,6 +39,6 @@
#define BRC_INIT_IGNORE_PICTURE_HEADER_SIZE 0x2000
#define BRC_INIT_DISABLE_MBBRC 0x8000
-UINT SEARCH_PATH_TABLE[2][8][16];
-UINT ME_CURBE_INIT_DATA[30];
+extern UINT SEARCH_PATH_TABLE[2][8][16];
+extern UINT ME_CURBE_INIT_DATA[30];
#endif