Debian i915 硬體上的 VA-API

Debian i915 硬體上的 VA-API

我有一台舊的 Atom 筆記型電腦(VGA 裝置 ID22B1)我想用它作為視訊播放器。我依稀記得很多年前我曾經使用 Debian Stretch 來加速視頻,但我可能是錯的。該筆記型電腦目前安裝了 Debian Buster,並i915.ko加載了驅動程序,但 VA-API 拒絕工作:

user@machine:~/.config$ vainfo
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
vaInitialize failed with error code -1 (unknown libva error),exit

user@machine:~/.config$ LIBVADRIVERNAME=i915 vainfo
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns -1
libva info: User requested driver 'i915'
libva info: Trying to open /usr/lib/i386-linux-gnu/dri/i915_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

據我了解,i915_drv_video.so任何 Debian Buster 軟體包均未提供此功能。我嘗試使用i965_drv_video.soiHD_drv_video.so,但vainfo報告“init failed”,考慮到我有 i915,這並不奇怪。

我想知道我的選擇是什麼。是否值得嘗試升級到 Bullseye?或降級到 Stretch?據我所知,i915_drv_video.so這些都沒有提供。

這是驅動程式的活動配置i915

user@machine:~/.config$ sudo systool -m i915 -av
Module = "i915"

  Attributes:
    coresize            = "1331200"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "3"
    taint               = ""
    uevent              = <store method only>

  Parameters:
    alpha_support       = "N"
    disable_display     = "N"
    disable_power_well  = "1"
    dmc_firmware_path   = "(null)"
    edp_vswing          = "0"
    enable_dc           = "-1"
    enable_dp_mst       = "Y"
    enable_dpcd_backlight= "N"
    enable_fbc          = "0"
    enable_guc          = "0"
    enable_gvt          = "N"
    enable_hangcheck    = "Y"
    enable_ips          = "1"
    enable_ppgtt        = "2"
    enable_psr          = "-1"
    error_capture       = "Y"
    fastboot            = "N"
    force_reset_modeset_test= "N"
    guc_firmware_path   = "(null)"
    guc_log_level       = "0"
    huc_firmware_path   = "(null)"
    invert_brightness   = "0"
    load_detect_test    = "N"
    lvds_channel_mode   = "0"
    mmio_debug          = "0"
    modeset             = "-1"
    nuclear_pageflip    = "N"
    panel_use_ssc       = "-1"
    prefault_disable    = "N"
    reset               = "2"
    vbt_firmware        = "(null)"
    vbt_sdvo_panel_type = "-1"
    verbose_state_checks= "Y"

答案1

看來 VAAPI 僅支援英特爾® GMA X4500HD 及更高版本而你的英特爾GMA900可能只支持以前的化身稱為X 視訊運動補償(XvMC)。

聽起來任何可用的視訊加速都僅限於 MPEG-2。雖然您可以播放 DVD,但您將無法獲得藍光和現代網路影片的硬體加速。來自英特爾GMA900維基百科資訊:

與先前的英特爾整合式顯示卡零件一樣,GMA 900 具有 MPEG-2 運動補償、色彩空間轉換和 DirectDraw 疊加的硬體支援。

Arch Linux 有一些關於 XvMC 的信息,但我只能找到關於 Debian 的模糊論壇帖子

答案2

你實際上並沒有 i915 – 這只是核心驅動程式的名稱;同一個巨大的i915.ko驅動程式可以處理過去大約 17 年左右生產的所有英特爾 GPU,儘管沒有任何其中除了原始的 Intel GMA 9xx 系列(比 HD Graphics 早幾代)之外,實際上都被稱為「i915」。

不過,命名只是相似的,但核心驅動程式和各種類型的用戶空間驅動程式之間並不相同,因此在核心端看到 i915.ko 而在 VAAPI 中看到 i965.so 是完全正常的。

例如,Mesa 專案針對不同代的 Intel GPU 有單獨的 DRI 驅動程式i915_dri.soi965_dri.so(以及crocus_driiris_dri)——所有四個驅動程式都希望在核心端與 i915.ko 進行通訊。

VA-API 也是如此; VA i965_drv_video.so-API 驅動程式對於大多數較舊的 Intel GPU 來說,正確的驅動程式是正確的,而iHD_drv_video.so對於 Skylake 及更高版本來說是正確的,但它們仍然會使用 i915.ko 核心驅動程式。

(據我所知,沒有 i915_drv_video.so 因為實際的「i915」GPU 根本沒有加速視訊解碼功能。

相關內容