Skip to content

iGPU Intel HD Graphics 530

iGPU intégré au Intel Core i5-6400 (Skylake), utilisé pour transcoding matériel Jellyfin via VAAPI/Quick Sync.

État Actuel

Configuration :

  • CPU : Intel i5-6400 (Skylake, 2015)
  • Carte mère : Gigabyte GA-H170-HD3 (chipset H170)
  • Driver : intel-media-driver (iHD 25.4.4+)
  • API : VAAPI
  • Device : /dev/dri/renderD128

Utilisation :

  • Transcoding matériel Jellyfin (LXC 100)
  • Quick Sync Video 6.0
  • Hardware encode/decode H.264, H.265 8-bit

Spécifications Techniques

Architecture

Paramètre Valeur
Génération Skylake Gen9
Unités d'exécution (EU) 24
Fréquence base 350 MHz
Fréquence boost 1050 MHz
DirectX 12
OpenGL 4.5
Vulkan 1.3
Quick Sync Version 6.0

Quick Sync Video 6.0

Encodage hardware :

  • ✅ H.264 (Baseline, Main, High) - Jusqu'à 4K60
  • ✅ H.265/HEVC 8-bit - Jusqu'à 4K30
  • ✅ VP8 - Jusqu'à 1080p60
  • ✅ JPEG/Motion JPEG
  • ❌ HEVC 10-bit (nécessite Kaby Lake Gen7+)
  • ❌ AV1 (nécessite Intel Arc Alchemist+)

Décodage hardware :

  • ✅ H.264 (tous profils) - Jusqu'à 4K60
  • ✅ H.265/HEVC 8-bit - Jusqu'à 4K60
  • ✅ H.265/HEVC 10-bit - Jusqu'à 4K30
  • ✅ VP8, VP9 - Jusqu'à 4K60
  • ✅ MPEG2, VC-1 (via VAAPI uniquement)
  • ✅ JPEG/Motion JPEG

Limitations connues :

  • VC-1 : Non supporté par driver intel-media-driver (iHD)
    • Fallback software decode CPU
    • Impact : 1 fichier (0,5% bibliothèque Jellyfin)
  • HEVC 10-bit decode : OK jusqu'à 4K30
    • 43 fichiers (22,5% bibliothèque) nécessitent software encode

Configuration VAAPI

Installation Drivers

# Sur hôte Proxmox ou dans LXC
apt update
apt install intel-media-va-driver intel-gpu-tools vainfo

# Vérifier driver
vainfo
# libva info: VA-API version 1.22.0
# libva info: Driver version: Intel iHD driver - 25.4.4

Passthrough vers LXC 100

Configuration Proxmox :

Fichier /etc/pve/lxc/100.conf :

# GPU Passthrough Intel HD 530
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir

Vérification dans LXC :

# Device présent
ls -la /dev/dri/
# crw-rw---- 1 root video  226,   0 card0
# crw-rw---- 1 root render 226, 128 renderD128

# Permissions utilisateur Jellyfin
usermod -aG render,video jellyfin
groups jellyfin
# jellyfin : jellyfin render video

Configuration Jellyfin

Dashboard → Playback → Transcoding :

  • Hardware acceleration : VAAPI
  • VAAPI Device : /dev/dri/renderD128
  • Enable hardware decoding for : Tous les codecs supportés
  • Enable hardware encoding : Activé
  • Hardware encoding options :
    • Enable Low Power Encoding : ✅ (réduit consommation)
    • Enable Tonemapping : ❌ (pas de HDR)

Codecs activés :

  • H.264 : Hardware encode/decode
  • HEVC : Hardware encode/decode (8-bit seulement)
  • VP8/VP9 : Hardware decode
  • MPEG2 : Hardware decode

Codec désactivé :

  • VC-1 : Software fallback (driver iHD ne supporte pas)

Performances

Benchmarks Transcoding

Test 1080p → 720p H.264 :

# Hardware VAAPI
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \
  -i input.mkv -c:v h264_vaapi -b:v 4M output.mp4
# Vitesse: 6.8x temps réel
# CPU usage: 5-8%

# Software CPU
ffmpeg -i input.mkv -c:v libx264 -preset fast -b:v 4M output.mp4
# Vitesse: 0.6x temps réel
# CPU usage: 100%

Capacité multi-stream :

  • 1 stream 1080p : 6-8x temps réel (CPU 5-8%)
  • 2 streams 1080p : 4-5x temps réel (CPU 10-15%)
  • 4 streams 1080p : 2-3x temps réel (CPU 15-25%)

Latence utilisateur :

  • Démarrage stream : -60% vs software (2s vs 5s)
  • Seeking/scrubbing : instantané
  • Changement qualité : < 1s

Consommation Électrique

Mesures serveur complet :

  • Idle : ~60-70W
  • 1 stream transcoding : ~80-90W (+20W)
  • 4 streams simultanés : ~120W (+50W)

Comparaison vs i7-2600 software :

  • Idle : -20W (65W TDP vs 95W)
  • Transcoding 1 stream : -60W (hardware vs software)

Monitoring GPU

# Charge iGPU
intel_gpu_top
# Render/3D: 60-80% pendant transcoding
# Video Engine: 70-90%

# Fréquence GPU
cat /sys/class/drm/card0/gt_cur_freq_mhz
# ~800-1050 MHz (boost actif)

Compatibilité Bibliothèque Jellyfin

Analyse 191 Fichiers Média

Codec Fichiers % Support Hardware
H.264 142 74.3% ✅ Full (encode/decode)
HEVC 8-bit 6 3.1% ✅ Full (encode/decode)
HEVC 10-bit 43 22.5% ⚠️ Decode HW, encode SW
VC-1 1 0.5% ⚠️ Software fallback

Stratégie Optimisation

Acquisitions futures :

  • Profils Recyclarr privilégiant H.264/HEVC 8-bit
  • Éviter HEVC 10-bit sauf qualité critique
  • Pas de transcoding systématique des 43 fichiers HEVC 10-bit existants

Impact performance HEVC 10-bit :

  • Hardware decode : ✅ OK
  • Software encode : Acceptable (CPU 30-40%)
  • Résultat : 2-3x temps réel (vs 6-8x full hardware)

Dépannage

Vérifications

# 1. Device présent
ls -la /dev/dri/renderD128

# 2. Driver chargé
lsmod | grep i915

# 3. VAAPI fonctionnel
vainfo

# 4. Permissions utilisateur
ls -ln /dev/dri/renderD128
# Groupe 104 (render) ou 44 (video)
id jellyfin
# Doit inclure render et video

# 5. Test simple
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \
  -i test.mp4 -f null -

Problèmes Courants

Erreur : "Cannot load libva.so.2"

apt install libva2 intel-media-va-driver

Erreur : "Failed to initialize VAAPI"

# Vérifier permissions
usermod -aG render,video jellyfin
systemctl restart jellyfin

Erreur : "No matching codec parameters found"

  • Codec non supporté par Quick Sync
  • Utiliser software fallback (automatique dans Jellyfin)

Ressources

Documentation

Liens Externes