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

Reply via email to