update de-p1st-gpu-amdgpu

This commit is contained in:
Daniel Langbein 2022-05-15 13:43:10 +02:00
parent d01f1eef78
commit a30f7e0a74
2 changed files with 208 additions and 32 deletions

View File

@ -2,26 +2,33 @@
_pkgname=gpu-amdgpu _pkgname=gpu-amdgpu
_reponame=arch _reponame=arch
pkgname="de-p1st-$_pkgname" pkgname="de-p1st-$_pkgname"
pkgver=0.0.3 pkgver=0.0.4
pkgrel=1 pkgrel=1
pkgdesc="AMDGPU" pkgdesc="AMDGPU"
arch=('any') arch=('any')
url="https://codeberg.org/privacy1st/${_reponame}" url="https://codeberg.org/privacy1st/${_reponame}"
license=('MIT') license=('MIT')
# "DRI driver for 3D acceleration" depends=()
depends=(mesa) # DRI driver for 3D acceleration.
# "DDX driver for 2D acceleration" depends+=(mesa)
# DDX driver (which provides 2D acceleration in Xorg).
depends+=(xf86-video-amdgpu) depends+=(xf86-video-amdgpu)
# "Vulkan support" # Vulkan support.
depends+=(vulkan-radeon) depends+=(vulkan-radeon)
# "HW-vide-acceleration: VA-API" # HW-vide-acceleration: VA-API.
depends+=(libva-mesa-driver) depends+=(libva-mesa-driver)
# "HW-vide-acceleration: VDPAU" # HW-vide-acceleration: VDPAU.
depends+=(mesa-vdpau) depends+=(mesa-vdpau)
# holo # holo
depends+=('holo' 'git' 'base') # holo depends on base (otherwise "holo apply" may fail on initial system installation) and git (git-diff) 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') makedepends=('git')
provides=('de-p1st-gpu') # implicitly provides $pkgname provides=('de-p1st-gpu') # implicitly provides $pkgname
install='.install' install='.install'

View File

@ -13,38 +13,47 @@ From gentoo wiki one should use AMDGPU e.g. for:
### AMDGPU (mandatory packages) ### AMDGPU (mandatory packages)
* archwiki -> AMDGPU -> Installation * [https://wiki.archlinux.org/title/Xorg#AMD]()
* archwiki -> Xorg -> AMD * which driver for which GPU architecture
* archwiki -> Lenovo-IdeaPad-S540-13ARE (Ryzen 7 4800U CPU) * [https://wiki.archlinux.org/title/Lenovo_IdeaPad_S540_13ARE]()
* archwiki -> Hardware_video_acceleration -> ATI/AMD * Laptop with Ryzen 7 4800U CPU
* HW-video-accel verification:
* run `vainfo` and `vdpauinfo` as non-root
* `amdgpu` module * `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 * The amdgpu kernel module is supposed to load automatically
on system boot. on system boot.
* It is possible it loads, but late, after the X server requires it. * It is possible it loads, but late, after the X server requires it.
In this case: In this case:
* Include "amdgpu" in MODULES=(...) of `/etc/mkinitcpio.conf` * 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` * `amdgpu` before `radeon`
---
* [https://wiki.archlinux.org/title/AMDGPU]()
* [https://wiki.archlinux.org/title/Hardware_video_acceleration#ATI/AMD]()
* VA-API, VDPAU, AMF
```shell ```shell
# "DRI driver for 3D acceleration" # DRI driver for 3D acceleration.
depends=(mesa) depends+=(mesa)
# "DDX driver for 2D acceleration" # DDX driver (which provides 2D acceleration in Xorg).
depends+=(xf86-video-amdgpu) depends+=(xf86-video-amdgpu)
# "Vulkan support" # Vulkan support.
depends+=(vulkan-radeon) depends+=(vulkan-radeon)
# "HW-vide-acceleration: VA-API" # HW-vide-acceleration: VA-API.
depends+=(libva-mesa-driver) depends+=(libva-mesa-driver)
# "HW-vide-acceleration: VDPAU" # HW-vide-acceleration: VDPAU.
depends+=(mesa-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 ```shell
lspci -k | grep -EA3 'VGA|3D|Display' lspci -k | grep -EA3 'VGA|3D|Display'
@ -57,10 +66,159 @@ Example output:
Kernel modules: amdgpu Kernel modules: amdgpu
``` ```
### AMDGPU PRO (optional packages) ### HW-video-acceleration verification
* archwiki -> AMDGPU#AMDGPU_PRO ```shell
* archwiki -> AMDGPU_PRO 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 The `amdgpu-pro-installer` contains proprietary components for
AMDGPU (it works on top of AMDGPU). (AUR: Search by `Package Base`, Keywords `amdgpu-pro-installer`) 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 > When it comes to OpenGL games, the RadeonSI Gallium3D driver
> simply dominates the proprietary AMD OpenGL driver. > simply dominates the proprietary AMD OpenGL driver.
---
* [https://wiki.archlinux.org/title/AMDGPU_PRO#Installation]()
```shell ```shell
# proprietary OpenGL implementation # Proprietary OpenGL implementation.
depends+=(amdgpu-pro-libgl) depends+=(amdgpu-pro-libgl)
# proprietary OpenCL implementation # Proprietary OpenCL implementation.
# Alternatively: `opencl-mesa`.
depends+=(opencl-amd) depends+=(opencl-amd)
# proprietary Vulkan implementation # Proprietary Vulkan implementation.
depends+=(vulkan-amdgpu-pro) 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) depends+=(amf-amdgpu-pro)
optdepends+=('lib32-amdgpu-pro-libgl: 32bit app support')
optdepends+=('lib32-vulkan-amdgpu-pro: 32bit app support')
``` ```