fix(vaapi): force CQP on Intel xe driver where HuC is unavailable#1495
fix(vaapi): force CQP on Intel xe driver where HuC is unavailable#1495ssdnk wants to merge 3 commits into
Conversation
|
So are there other drivers for the arc series cards? Is this only affecting A770 or broader? |
There is i915 which does support HuC on DG2, so VAAPI works fine there. But i915 lacks VM_BIND, which breaks sparse residency in vkd3d-proton. For anyone gaming via Proton, xe is the only viable option. All DG2/Alchemist (Arc A-series). Intel has explicitly decided not to implement HuC for DG2 in xe. Older Intel cards (pre-DG2) and Arc B-series are unaffected. |
|
I see. is_xe_driver() would also affect Arc B-series which uses the xe driver but has working HuC. Working on a fix to check the actual HuC status. |
Intel Arc A-series (DG2/Alchemist) with the xe kernel driver lacks HuC firmware, causing CBR/VBR rate control to fail at encode time. Add a vaapi_force_cqp config option and corresponding UI toggle to explicitly force CQP rate control for affected hardware. Replaces the previous automatic xe driver detection approach which would have incorrectly affected Arc B-series (Battlemage) where HuC works correctly.
|
Initial xe driver detection would incorrectly affect Arc B-series and newer where HuC works fine. Replaced it with an explicit vaapi_force_cqp config option and UI toggle instead. |
Problem
Intel Arc A770 (DG2/XeHPG) with the
xekernel driver does not load HuC firmware, which causes CBR/VBR rate control to fail at encode time — even thoughvaGetConfigAttributes()incorrectly reports support for them.Solution
Added
is_xe_driver()which detects the kernel driver via sysfs. When thexedriver is detected,VA_RC_CBRandVA_RC_VBRare stripped from therc_attrbitmask before rate control selection. The existing fallback path then correctly selects CQP using the user-configuredqpvalue.Tested on
xekernel driverLog output