Hide Forgot
As we are moving to crocus instead of i965, libva needs a small patch to support that transition.
actually I think we should probably rebase libva to 2.13.0 + the patch, since I think 2.5.0 is broken since the iris transition since it has not dri2 name mapping.
Hi Tom, do your team have capacity and equipment to test it for 8.7? If not, David, will you be willing to help us with testing, please?
Just for the completeness here is the output of `abipkgdiff`. The rebase is doable, my observations are inline. ``` $ abipkgdiff libva-2.5.0-2.el8.x86_64.rpm libva-2.13.0-1.el8.x86_64.rpm --d1 libva-debuginfo-2.5.0-2.el8.x86_64.rpm --d2 libva-debuginfo-2.13.0-1.el8.x86_64.rpm --devel1 libva-devel-2.5.0-2.el8.x86_64.rpm --devel2 libva-devel-2.13.0-1.el8.x86_64.rpm ================ changes of 'libva.so.2.500.0'=============== Functions changes summary: 0 Removed, 5 Changed (19 filtered out), 8 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 8 Added functions: [A] 'function VAStatus vaAttachProtectedSession(VADisplay, VAContextID, VAProtectedSessionID)' {vaAttachProtectedSession} [A] 'function VAStatus vaCopy(VADisplay, VACopyObject*, VACopyObject*, VACopyOption)' {vaCopy} [A] 'function VAStatus vaCreateProtectedSession(VADisplay, VAConfigID, VAProtectedSessionID*)' {vaCreateProtectedSession} [A] 'function VAStatus vaDestroyProtectedSession(VADisplay, VAProtectedSessionID)' {vaDestroyProtectedSession} [A] 'function VAStatus vaDetachProtectedSession(VADisplay, VAContextID)' {vaDetachProtectedSession} [A] 'function VAStatus vaProtectedSessionExecute(VADisplay, VAProtectedSessionID, VABufferID)' {vaProtectedSessionExecute} [A] 'function VAStatus vaSyncBuffer(VADisplay, VABufferID, uint64_t)' {vaSyncBuffer} [A] 'function VAStatus vaSyncSurface2(VADisplay, VASurfaceID, uint64_t)' {vaSyncSurface2} 5 functions with some indirect sub-type change: [C] 'function VAStatus vaBufferInfo(VADisplay, VAContextID, VABufferID, VABufferType*, unsigned int*, unsigned int*)' at va.c:1489:1 has some indirect sub-type changes: parameter 4 of type 'VABufferType*' has sub-type changes: in pointed to type 'typedef VABufferType' at va.h:2048:1: underlying type 'enum VABufferType' at va.h:1597:1 changed: type size hasn't changed 3 enumerator insertions: 'VABufferType::VAContextParameterUpdateBufferType' value '58' 'VABufferType::VAProtectedSessionExecuteBufferType' value '59' 'VABufferType::VAEncryptionParameterBufferType' value '60' 1 enumerator change: 'VABufferType::VABufferTypeMax' from value '58' to '61' at va.h:1924:1 ``` (1) 3 enumeration constants were added at the end of `enum VABufferType` but before `VABufferType::VABufferTypeMax`. My assumption is that this and similar enumaration constants serve as an upper-bound in loops and should be used only by `libva` internals. ``` [C] 'function const char* vaConfigAttribTypeStr(VAConfigAttribType)' at va_str.c:95:1 has some indirect sub-type changes: parameter 1 of type 'typedef VAConfigAttribType' has sub-type changes: underlying type 'enum VAConfigAttribType' at va.h:458:1 changed: type size hasn't changed 13 enumerator insertions: 'VAConfigAttribType::VAConfigAttribPredictionDirection' value '39' 'VAConfigAttribType::VAConfigAttribMultipleFrame' value '40' 'VAConfigAttribType::VAConfigAttribContextPriority' value '41' 'VAConfigAttribType::VAConfigAttribDecAV1Features' value '42' 'VAConfigAttribType::VAConfigAttribTEEType' value '43' 'VAConfigAttribType::VAConfigAttribTEETypeClient' value '44' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherAlgorithm' value '45' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherBlockSize' value '46' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherMode' value '47' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherSampleType' value '48' 'VAConfigAttribType::VAConfigAttribProtectedContentUsage' value '49' 'VAConfigAttribType::VAConfigAttribEncHEVCFeatures' value '50' 'VAConfigAttribType::VAConfigAttribEncHEVCBlockSizes' value '51' 1 enumerator change: 'VAConfigAttribType::VAConfigAttribTypeMax' from value '39' to '52' at va.h:605:1 ``` (2) similarly as (1) ``` [C] 'function VAStatus vaCreateSurfaces(VADisplay, unsigned int, unsigned int, unsigned int, VASurfaceID*, unsigned int, VASurfaceAttrib*, unsigned int)' at va.c:1162:1 has some indirect sub-type changes: parameter 7 of type 'VASurfaceAttrib*' has sub-type changes: in pointed to type 'typedef VASurfaceAttrib' at va.h:1643:1: underlying type 'struct _VASurfaceAttrib' at va.h:1308:1 changed: type size hasn't changed 1 data member change: type of 'VASurfaceAttribType type' changed: underlying type 'enum VASurfaceAttribType' at va.h:1270:1 changed: type size hasn't changed 1 enumerator insertion: 'VASurfaceAttribType::VASurfaceAttribDRMFormatModifiers' value '9' 1 enumerator change: 'VASurfaceAttribType::VASurfaceAttribCount' from value '9' to '10' at va.h:1592:1 ``` (3) similarly as (1) ``` [C] 'function VAStatus vaQueryVideoProcFilterCaps(VADisplay, VAContextID, VAProcFilterType, void*, unsigned int*)' at va.c:2254:1 has some indirect sub-type changes: parameter 3 of type 'typedef VAProcFilterType' has sub-type changes: underlying type 'enum _VAProcFilterType' at va_vpp.h:238:1 changed: type size hasn't changed 1 enumerator insertion: '_VAProcFilterType::VAProcFilter3DLUT' value '9' 1 enumerator change: '_VAProcFilterType::VAProcFilterCount' from value '9' to '10' at va_vpp.h:238:1 ``` (4) similarly as (1) ``` [C] 'function VADisplayContextP va_newDisplayContext()' at va.c:281:1 has some indirect sub-type changes: return type changed: underlying type 'VADisplayContext*' changed: in pointed to type 'struct VADisplayContext' at va_backend.h:649:1: type size hasn't changed 2 data member insertions: 'typedef VAStatus (typedef VADisplayContextP, int*)* vaGetNumCandidates', at offset 832 (in bits) at va_backend.h:676:1 'typedef VAStatus (typedef VADisplayContextP, char**, int)* vaGetDriverNameByIndex', at offset 896 (in bits) at va_backend.h:681:1 2 data member changes (4 filtered): type of 'VADriverContextP pDriverContext' changed: underlying type 'VADriverContext*' changed: in pointed to type 'struct VADriverContext' at va_backend.h:509:1: type size hasn't changed 1 data member insertion: 'VADriverVTableProt* vtable_prot', at offset 1408 (in bits) at va_backend.h:643:1 2 data member changes (3 filtered): type of 'VADriverVTable* vtable' changed: in pointed to type 'struct VADriverVTable' at va_backend.h:56:1: type size hasn't changed 3 data member insertions: 'typedef VAStatus (typedef VADriverContextP, typedef VASurfaceID, typedef uint64_t)* vaSyncSurface2', at offset 3584 (in bits) at va_backend.h:486:1 'typedef VAStatus (typedef VADriverContextP, typedef VABufferID, typedef uint64_t)* vaSyncBuffer', at offset 3648 (in bits) at va_backend.h:492:1 'typedef VAStatus (typedef VADriverContextP, VACopyObject*, VACopyObject*, typedef VACopyOption)* vaCopy', at offset 3712 (in bits) at va_backend.h:499:1 1 data member changes (56 filtered): type of 'unsigned long int reserved[57]' changed: type name changed from 'unsigned long int[57]' to 'unsigned long int[54]' array type size changed from 3648 to 3456 array type subrange 1 changed length from 57 to 54 and offset changed from 3584 to 3776 (in bits) (by +192 bits) type of 'unsigned long int reserved[38]' changed: type name changed from 'unsigned long int[38]' to 'unsigned long int[37]' array type size changed from 2432 to 2368 array type subrange 1 changed length from 38 to 37 and offset changed from 1408 to 1472 (in bits) (by +64 bits) type of 'unsigned long int reserved[32]' changed: type name changed from 'unsigned long int[32]' to 'unsigned long int[30]' array type size changed from 2048 to 1920 array type subrange 1 changed length from 32 to 30 and offset changed from 832 to 960 (in bits) (by +128 bits) ``` (5) new members has been added to structs to the reserved area, size and layout of structs remains unchanged, the backward compatibility should be preserved ``` ================ end of changes of 'libva.so.2.500.0'=============== ================ changes of 'libva-x11.so.2.500.0'=============== Functions changes summary: 0 Removed, 1 Changed (5 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: [C] 'function void va_dri_free_drawable(VADriverContextP, dri_drawable*)' at va_dricommon.c:90:1 has some indirect sub-type changes: parameter 1 of type 'typedef VADriverContextP' has sub-type changes: underlying type 'VADriverContext*' changed: in pointed to type 'struct VADriverContext' at va_backend.h:509:1: type size hasn't changed 1 data member insertion: 'VADriverVTableProt* vtable_prot', at offset 1408 (in bits) at va_backend.h:643:1 2 data member changes (2 filtered): type of 'VADriverVTable* vtable' changed: in pointed to type 'struct VADriverVTable' at va_backend.h:56:1: type size hasn't changed 3 data member insertions: 'typedef VAStatus (typedef VADriverContextP, typedef VASurfaceID, typedef uint64_t)* vaSyncSurface2', at offset 3584 (in bits) at va_backend.h:486:1 'typedef VAStatus (typedef VADriverContextP, typedef VABufferID, typedef uint64_t)* vaSyncBuffer', at offset 3648 (in bits) at va_backend.h:492:1 'typedef VAStatus (typedef VADriverContextP, VACopyObject*, VACopyObject*, typedef VACopyOption)* vaCopy', at offset 3712 (in bits) at va_backend.h:499:1 4 data member changes (53 filtered): type of 'typedef VAStatus (typedef VADriverContextP, typedef VAProfile, typedef VAEntrypoint, VAConfigAttrib*, int, VAConfigID*)* vaCreateConfig' changed: in pointed to type 'function type typedef VAStatus (typedef VADriverContextP, typedef VAProfile, typedef VAEntrypoint, VAConfigAttrib*, int, VAConfigID*)': parameter 4 of type 'VAConfigAttrib*' has sub-type changes: in pointed to type 'typedef VAConfigAttrib' at va.h:1012:1: underlying type 'struct _VAConfigAttrib' at va.h:774:1 changed: type size hasn't changed 1 data member change: type of 'VAConfigAttribType type' changed: underlying type 'enum VAConfigAttribType' at va.h:458:1 changed: type size hasn't changed 13 enumerator insertions: 'VAConfigAttribType::VAConfigAttribPredictionDirection' value '39' 'VAConfigAttribType::VAConfigAttribMultipleFrame' value '40' 'VAConfigAttribType::VAConfigAttribContextPriority' value '41' 'VAConfigAttribType::VAConfigAttribDecAV1Features' value '42' 'VAConfigAttribType::VAConfigAttribTEEType' value '43' 'VAConfigAttribType::VAConfigAttribTEETypeClient' value '44' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherAlgorithm' value '45' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherBlockSize' value '46' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherMode' value '47' 'VAConfigAttribType::VAConfigAttribProtectedContentCipherSampleType' value '48' 'VAConfigAttribType::VAConfigAttribProtectedContentUsage' value '49' 'VAConfigAttribType::VAConfigAttribEncHEVCFeatures' value '50' 'VAConfigAttribType::VAConfigAttribEncHEVCBlockSizes' value '51' 1 enumerator change: 'VAConfigAttribType::VAConfigAttribTypeMax' from value '39' to '52' at va.h:605:1 type of 'typedef VAStatus (typedef VADriverContextP, typedef VABufferID, VABufferType*, unsigned int*, unsigned int*)* vaBufferInfo' changed: in pointed to type 'function type typedef VAStatus (typedef VADriverContextP, typedef VABufferID, VABufferType*, unsigned int*, unsigned int*)': parameter 3 of type 'VABufferType*' has sub-type changes: in pointed to type 'typedef VABufferType' at va.h:2048:1: underlying type 'enum VABufferType' at va.h:1597:1 changed: type size hasn't changed 3 enumerator insertions: 'VABufferType::VAContextParameterUpdateBufferType' value '58' 'VABufferType::VAProtectedSessionExecuteBufferType' value '59' 'VABufferType::VAEncryptionParameterBufferType' value '60' 1 enumerator change: 'VABufferType::VABufferTypeMax' from value '58' to '61' at va.h:1924:1 type of 'typedef VAStatus (typedef VADriverContextP, unsigned int, unsigned int, unsigned int, VASurfaceID*, unsigned int, VASurfaceAttrib*, unsigned int)* vaCreateSurfaces2' changed: in pointed to type 'function type typedef VAStatus (typedef VADriverContextP, unsigned int, unsigned int, unsigned int, VASurfaceID*, unsigned int, VASurfaceAttrib*, unsigned int)': parameter 7 of type 'VASurfaceAttrib*' has sub-type changes: in pointed to type 'typedef VASurfaceAttrib' at va.h:1643:1: underlying type 'struct _VASurfaceAttrib' at va.h:1308:1 changed: type size hasn't changed 1 data member change: type of 'VASurfaceAttribType type' changed: underlying type 'enum VASurfaceAttribType' at va.h:1270:1 changed: type size hasn't changed 1 enumerator insertion: 'VASurfaceAttribType::VASurfaceAttribDRMFormatModifiers' value '9' 1 enumerator change: 'VASurfaceAttribType::VASurfaceAttribCount' from value '9' to '10' at va.h:1592:1 type of 'unsigned long int reserved[57]' changed: type name changed from 'unsigned long int[57]' to 'unsigned long int[54]' array type size changed from 3648 to 3456 array type subrange 1 changed length from 57 to 54 and offset changed from 3584 to 3776 (in bits) (by +192 bits) type of 'unsigned long int reserved[38]' changed: type name changed from 'unsigned long int[38]' to 'unsigned long int[37]' array type size changed from 2432 to 2368 array type subrange 1 changed length from 38 to 37 and offset changed from 1408 to 1472 (in bits) (by +64 bits) ================ end of changes of 'libva-x11.so.2.500.0'=============== ``` (6) same as in (1) to (5)
We don't ship it, we just ship the va libraries, and Intel ship the underlying video stuff. The above info is what we want, and is enough to confirm the bug is closed.
(In reply to Dave Airlie from comment #11) > We don't ship it, we just ship the va libraries, and Intel ship the > underlying video stuff. > > The above info is what we want, and is enough to confirm the bug is closed. OK very good, thanks Dave.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (libva bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2022:7619