Hello everyone
The “drivers” for hardware video decoders on Intel GPUs have been split
into free and non-free packages.
https://packages.debian.org/en/sid/intel-media-va-driver
https://packages.debian.org/en/sid/intel-media-va-driver-non-free
The difference between the two is that the Intel source code contains
blobs (byte arrays in the C source) with pre-compiled GPU shaders.
The source code for the pre-complied shaders is not included and does
not appear to be available under a free license.
The list of affected files can be found in the Debian Copyright File:
media_driver/agnostic/Xe_M/Xe_HPM/codec/kernel/XE_HPM_VC1_OLP.c
media_driver/agnostic/Xe_M/Xe_HPM/codec/kernel/Xe_Hpm_Film_Grain.c
media_driver/agnostic/Xe_M/Xe_XPM/codec/kernelisa/Xe_XPM_Film_Grain.c
media_driver/agnostic/Xe_M/Xe_XPM/codec/kernelisa/Xe_XPM_VC1_OLP.c
media_driver/agnostic/Xe_M/Xe_XPM/vp/kernel/cmfcpatch/igvpkrn_xe_xpm_cmfcpatch.c
media_driver/agnostic/Xe_M/Xe_XPM/vp/kernel/igvpkrn_isa_xe_xpm.c
media_driver/agnostic/Xe_M/Xe_XPM/vp/kernel/igvpkrn_xe_xpm.c
media_driver/agnostic/Xe_M/Xe_XPM_plus/codec/kernel/Xe_XPM_plus_Film_Grain.c
media_driver/agnostic/Xe_M/Xe_XPM_plus/vp/kernel/cmfcpatch/igvpkrn_xe_xpm_plus_cmfcpatch.c
media_driver/agnostic/Xe_M/Xe_XPM_plus/vp/kernel/igvpkrn_xe_xpm_plus.c
media_driver/agnostic/gen11/codec/kernel/igcodeckrn_g11.c
media_driver/agnostic/gen11_icllp/codec/kernel/igcodeckrn_g11_icllp.c
media_driver/agnostic/gen11_icllp/vp/kernel/igvpkrn_g11_icllp.c
media_driver/agnostic/gen11_icllp/vp/kernel/igvpkrn_isa_g11_icllp.c
media_driver/agnostic/gen12/codec/kernel/igcodeckrn_g12.c
media_driver/agnostic/gen12/codec/kernelisa/*.c
media_driver/agnostic/gen12_tgllp/vp/kernel/cmfc/igvpkrn_g12_tgllp_cmfc.c
media_driver/agnostic/gen12_tgllp/vp/kernel/cmfccmlpch/igvpkrn_g12_tgllp_cmfccmlpch.c
media_driver/agnostic/gen12_tgllp/vp/kernel/cmfcpatch/igvpkrn_g12_tgllp_cmfcpatch.c
media_driver/agnostic/gen12_tgllp/vp/kernel/igvpkrn_g12_tgllp.c
media_driver/agnostic/gen12_tgllp/vp/kernel/igvpkrn_isa_g12_tgllp.c
media_driver/agnostic/gen12_tgllp/vp/kernel/swsb/igvpkrn_g12_tgllp_swsb.c
media_driver/agnostic/gen8/codec/kernel/igcodeckrn_g8.c
media_driver/agnostic/gen8/vp/kernel/igvpkrn_g8.c
media_driver/agnostic/gen9/codec/kernel/igcodeckrn_g9.c
media_driver/agnostic/gen9/vp/kernel/igvpkrn_g9.c
media_driver/agnostic/gen9/vp/kernel/igvpkrn_isa_g9.c
media_driver/agnostic/gen9_bxt/codec/kernel/igcodeckrn_g9_bxt.c
media_driver/agnostic/gen9_cml/vp/kernel/igvpkrn_g9_cml.c
media_driver/agnostic/gen9_cml/vp/kernel/tgp/igvpkrn_g9_cml_tgp.c
media_driver/agnostic/gen9_cmpv/vp/kernel/igvpkrn_g9_cmpv.c
media_driver/agnostic/gen9_kbl/codec/kernel/igcodeckrn_g9_kbl.c
media_softlet/agnostic/Xe_R/Xe_HPG_Base/vp/kernel/cmfcpatch/igvpkrn_xe_hpg_cmfcpatch.c
media_softlet/agnostic/Xe_R/Xe_HPG_Base/vp/kernel/igvpkrn_isa_xe_hpg.c
media_softlet/agnostic/Xe_R/Xe_HPG_Base/vp/kernel/igvpkrn_xe_hpg.c
media_softlet/agnostic/Xe_R/Xe2_HPG/vp/kernel/cmfcpatch/igvpkrn_xe2_hpg_cmfcpatch.c
media_softlet/agnostic/Xe_R/Xe2_HPG/vp/kernel/igvpfc_420PL3_input_xe2.cpp
media_softlet/agnostic/Xe_R/Xe2_HPG/vp/kernel/igvpfc_444PL3_input_xe2.cpp
media_softlet/agnostic/Xe_R/Xe2_HPG/vp/kernel/igvpfc_common_xe2.cpp
media_softlet/agnostic/Xe_R/Xe2_HPG/vp/kernel/igvpfc_fp_xe2.cpp
media_softlet/agnostic/Xe_R/Xe2_HPG/vp/kernel/igvpkrn_xe2_hpg.c
Should they be considered non-free firmware rather than non-free
software?
Arguments for this:
1. The shaders are loaded into the GPU, very much like firmware.
2. They are not linked into any libraries or applications.
3. They are not loaded into the kernel (like kernel module or eBPF).
4. They are not running on the CPU, neither in kernel space, user
space or in a bytecode interpreter.
5. They are required by the operating system or applications to make
use of hardware capabilities.
Arguments against:
1. The shaders are mixed up with library code which load them into
the GPU.
2. That library code is linked into libraries and applications and
running on the CPU. (How ever, there appears to be consensus that
the library code is free, only the shaders are not.)
3. GPU shaders can have various purposes and origins other than the
hardware vendor.
Regards
Stephan
Attachment:
signature.asc
Description: This is a digitally signed message part