From a30f7e0a74f89a22727e035d0f59817a8fe23219 Mon Sep 17 00:00:00 2001 From: Daniel Langbein Date: Sun, 15 May 2022 13:43:10 +0200 Subject: [PATCH] update de-p1st-gpu-amdgpu --- pkg/de-p1st-gpu-amdgpu/PKGBUILD | 23 ++-- pkg/de-p1st-gpu-amdgpu/README.md | 217 +++++++++++++++++++++++++++---- 2 files changed, 208 insertions(+), 32 deletions(-) diff --git a/pkg/de-p1st-gpu-amdgpu/PKGBUILD b/pkg/de-p1st-gpu-amdgpu/PKGBUILD index d8dac17..b434ef0 100644 --- a/pkg/de-p1st-gpu-amdgpu/PKGBUILD +++ b/pkg/de-p1st-gpu-amdgpu/PKGBUILD @@ -2,26 +2,33 @@ _pkgname=gpu-amdgpu _reponame=arch pkgname="de-p1st-$_pkgname" -pkgver=0.0.3 +pkgver=0.0.4 pkgrel=1 pkgdesc="AMDGPU" arch=('any') url="https://codeberg.org/privacy1st/${_reponame}" license=('MIT') -# "DRI driver for 3D acceleration" -depends=(mesa) -# "DDX driver for 2D acceleration" +depends=() +# DRI driver for 3D acceleration. +depends+=(mesa) +# DDX driver (which provides 2D acceleration in Xorg). depends+=(xf86-video-amdgpu) -# "Vulkan support" +# Vulkan support. depends+=(vulkan-radeon) -# "HW-vide-acceleration: VA-API" +# HW-vide-acceleration: VA-API. depends+=(libva-mesa-driver) -# "HW-vide-acceleration: VDPAU" +# HW-vide-acceleration: VDPAU. depends+=(mesa-vdpau) # holo depends+=('holo' 'git' 'base') # holo depends on base (otherwise "holo apply" may fail on initial system installation) and git (git-diff) +optdepends=() +optdepends+=('lib32-mesa: 32bit app support') +optdepends+=('lib32-vulkan-radeon: 32bit app support') +optdepends+=('lib32-libva-mesa-driver: 32bit app support') +optdepends+=('lib32-mesa-vdpau: 32bit app support') + makedepends=('git') provides=('de-p1st-gpu') # implicitly provides $pkgname install='.install' @@ -33,4 +40,4 @@ package() { # 10-$pkgname as this shall be applied before de-p1st-mkinitcpio install -Dm0544 mkinitcpio.conf.holoscript "$pkgdir"/usr/share/holo/files/10-"$pkgname"/etc/mkinitcpio.conf.holoscript -} \ No newline at end of file +} diff --git a/pkg/de-p1st-gpu-amdgpu/README.md b/pkg/de-p1st-gpu-amdgpu/README.md index b70b0aa..02cefa9 100644 --- a/pkg/de-p1st-gpu-amdgpu/README.md +++ b/pkg/de-p1st-gpu-amdgpu/README.md @@ -13,38 +13,47 @@ From gentoo wiki one should use AMDGPU e.g. for: ### AMDGPU (mandatory packages) -* archwiki -> AMDGPU -> Installation -* archwiki -> Xorg -> AMD -* archwiki -> Lenovo-IdeaPad-S540-13ARE (Ryzen 7 4800U CPU) -* archwiki -> Hardware_video_acceleration -> ATI/AMD +* [https://wiki.archlinux.org/title/Xorg#AMD]() + * which driver for which GPU architecture +* [https://wiki.archlinux.org/title/Lenovo_IdeaPad_S540_13ARE]() + * Laptop with Ryzen 7 4800U CPU -* HW-video-accel verification: - * run `vainfo` and `vdpauinfo` as non-root * `amdgpu` module - * https://wiki.archlinux.org/title/AMDGPU#Loading + * [https://wiki.archlinux.org/title/AMDGPU#Loading]() * The amdgpu kernel module is supposed to load automatically on system boot. * It is possible it loads, but late, after the X server requires it. In this case: * Include "amdgpu" in MODULES=(...) of `/etc/mkinitcpio.conf` - * https://wiki.archlinux.org/title/AMDGPU#Specify_the_correct_module_order + * [https://wiki.archlinux.org/title/AMDGPU#Specify_the_correct_module_order]() * `amdgpu` before `radeon` +--- + +* [https://wiki.archlinux.org/title/AMDGPU]() +* [https://wiki.archlinux.org/title/Hardware_video_acceleration#ATI/AMD]() + * VA-API, VDPAU, AMF + ```shell -# "DRI driver for 3D acceleration" -depends=(mesa) -# "DDX driver for 2D acceleration" +# DRI driver for 3D acceleration. +depends+=(mesa) +# DDX driver (which provides 2D acceleration in Xorg). depends+=(xf86-video-amdgpu) -# "Vulkan support" +# Vulkan support. depends+=(vulkan-radeon) -# "HW-vide-acceleration: VA-API" +# HW-vide-acceleration: VA-API. depends+=(libva-mesa-driver) -# "HW-vide-acceleration: VDPAU" +# HW-vide-acceleration: VDPAU. depends+=(mesa-vdpau) + +optdepends+=('lib32-mesa: 32bit app support') +optdepends+=('lib32-vulkan-radeon: 32bit app support') +optdepends+=('lib32-libva-mesa-driver: 32bit app support') +optdepends+=('lib32-mesa-vdpau: 32bit app support') ``` -**Verification**: +### AMDGPU Verification ```shell lspci -k | grep -EA3 'VGA|3D|Display' @@ -53,14 +62,163 @@ lspci -k | grep -EA3 'VGA|3D|Display' Example output: ``` - Kernel driver in use: amdgpu - Kernel modules: amdgpu +Kernel driver in use: amdgpu +Kernel modules: amdgpu ``` -### AMDGPU PRO (optional packages) +### HW-video-acceleration verification -* archwiki -> AMDGPU#AMDGPU_PRO -* archwiki -> AMDGPU_PRO +```shell +sudo pacman -S --needed libva-utils vdpauinfo +``` + +```shell +vainfo +``` +``` +vainfo: VA-API version: 1.14 (libva 2.14.0) +vainfo: Driver version: Mesa Gallium driver 22.0.3 for AMD RENOIR (LLVM 13.0.1, DRM 3.42, 5.15.38-1-lts) +vainfo: Supported profile and entrypoints + VAProfileMPEG2Simple : VAEntrypointVLD + VAProfileMPEG2Main : VAEntrypointVLD + VAProfileVC1Simple : VAEntrypointVLD + VAProfileVC1Main : VAEntrypointVLD + VAProfileVC1Advanced : VAEntrypointVLD + VAProfileH264ConstrainedBaseline: VAEntrypointVLD + VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice + VAProfileH264Main : VAEntrypointVLD + VAProfileH264Main : VAEntrypointEncSlice + VAProfileH264High : VAEntrypointVLD + VAProfileH264High : VAEntrypointEncSlice + VAProfileHEVCMain : VAEntrypointVLD + VAProfileHEVCMain : VAEntrypointEncSlice + VAProfileHEVCMain10 : VAEntrypointVLD + VAProfileHEVCMain10 : VAEntrypointEncSlice + VAProfileJPEGBaseline : VAEntrypointVLD + VAProfileVP9Profile0 : VAEntrypointVLD + VAProfileVP9Profile2 : VAEntrypointVLD + VAProfileNone : VAEntrypointVideoProc +``` + +```shell +vdpauinfo +``` +``` +yoda@yodaTux ~ % vdpauinfo +display: :0.0 screen: 0 +API version: 1 +Information string: G3DVL VDPAU Driver Shared Library version 1.0 + +Video surface: + +name width height types +------------------------------------------- +420 16384 16384 NV12 YV12 +422 16384 16384 UYVY YUYV +444 16384 16384 Y8U8V8A8 V8U8Y8A8 +420_16 16384 16384 +422_16 16384 16384 +444_16 16384 16384 + +Decoder capabilities: + +name level macbs width height +---------------------------------------------------- +MPEG1 --- not supported --- +MPEG2_SIMPLE 3 78336 4096 4906 +MPEG2_MAIN 3 78336 4096 4906 +H264_BASELINE 52 78336 4096 4906 +H264_MAIN 52 78336 4096 4906 +H264_HIGH 52 78336 4096 4906 +VC1_SIMPLE 1 78336 4096 4906 +VC1_MAIN 2 78336 4096 4906 +VC1_ADVANCED 4 78336 4096 4906 +MPEG4_PART2_SP 3 78336 4096 4906 +MPEG4_PART2_ASP 5 78336 4096 4906 +DIVX4_QMOBILE --- not supported --- +DIVX4_MOBILE --- not supported --- +DIVX4_HOME_THEATER --- not supported --- +DIVX4_HD_1080P --- not supported --- +DIVX5_QMOBILE --- not supported --- +DIVX5_MOBILE --- not supported --- +DIVX5_HOME_THEATER --- not supported --- +DIVX5_HD_1080P --- not supported --- +H264_CONSTRAINED_BASELINE 0 78336 4096 4906 +H264_EXTENDED --- not supported --- +H264_PROGRESSIVE_HIGH --- not supported --- +H264_CONSTRAINED_HIGH --- not supported --- +H264_HIGH_444_PREDICTIVE --- not supported --- +VP9_PROFILE_0 --- not supported --- +VP9_PROFILE_1 --- not supported --- +VP9_PROFILE_2 --- not supported --- +VP9_PROFILE_3 --- not supported --- +HEVC_MAIN 186 139264 8192 4352 +HEVC_MAIN_10 186 139264 8192 4352 +HEVC_MAIN_STILL --- not supported --- +HEVC_MAIN_12 --- not supported --- +HEVC_MAIN_444 --- not supported --- +HEVC_MAIN_444_10 --- not supported --- +HEVC_MAIN_444_12 --- not supported --- + +Output surface: + +name width height nat types +---------------------------------------------------- +B8G8R8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 +R8G8B8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 +R10G10B10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 +B10G10R10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 P010 P016 A8I8 I8A8 + +Bitmap surface: + +name width height +------------------------------ +B8G8R8A8 16384 16384 +R8G8B8A8 16384 16384 +R10G10B10A2 16384 16384 +B10G10R10A2 16384 16384 +A8 16384 16384 + +Video mixer: + +feature name sup +------------------------------------ +DEINTERLACE_TEMPORAL y +DEINTERLACE_TEMPORAL_SPATIAL - +INVERSE_TELECINE - +NOISE_REDUCTION y +SHARPNESS y +LUMA_KEY y +HIGH QUALITY SCALING - L1 y +HIGH QUALITY SCALING - L2 - +HIGH QUALITY SCALING - L3 - +HIGH QUALITY SCALING - L4 - +HIGH QUALITY SCALING - L5 - +HIGH QUALITY SCALING - L6 - +HIGH QUALITY SCALING - L7 - +HIGH QUALITY SCALING - L8 - +HIGH QUALITY SCALING - L9 - + +parameter name sup min max +----------------------------------------------------- +VIDEO_SURFACE_WIDTH y 48 4096 +VIDEO_SURFACE_HEIGHT y 48 4096 +CHROMA_TYPE y +LAYERS y 0 4 + +attribute name sup min max +----------------------------------------------------- +BACKGROUND_COLOR y +CSC_MATRIX y +NOISE_REDUCTION_LEVEL y 0.00 1.00 +SHARPNESS_LEVEL y -1.00 1.00 +LUMA_KEY_MIN_LUMA y +LUMA_KEY_MAX_LUMA y +``` + +### AMDGPU PRO (optional proprietary packages) + +* [https://wiki.archlinux.org/title/AMDGPU_PRO]() The `amdgpu-pro-installer` contains proprietary components for AMDGPU (it works on top of AMDGPU). (AUR: Search by `Package Base`, Keywords `amdgpu-pro-installer`) @@ -71,13 +229,24 @@ Quote about the opengl part (from archwiki -> AMDGPU): > When it comes to OpenGL games, the RadeonSI Gallium3D driver > simply dominates the proprietary AMD OpenGL driver. +--- + +* [https://wiki.archlinux.org/title/AMDGPU_PRO#Installation]() + ```shell -# proprietary OpenGL implementation +# Proprietary OpenGL implementation. depends+=(amdgpu-pro-libgl) -# proprietary OpenCL implementation +# Proprietary OpenCL implementation. +# Alternatively: `opencl-mesa`. depends+=(opencl-amd) -# proprietary Vulkan implementation +# Proprietary Vulkan implementation. depends+=(vulkan-amdgpu-pro) -# Advanced Media Framework implementation +# HW-video-acceleration: +# - AMDGPU PRO proprietary driver is built on top of AMDGPU driver and supports both VA-API and VDPAU in addition to AMF. +# +# Advanced Media Framework implementation. depends+=(amf-amdgpu-pro) + +optdepends+=('lib32-amdgpu-pro-libgl: 32bit app support') +optdepends+=('lib32-vulkan-amdgpu-pro: 32bit app support') ```