After further inspection, it looks like libva is new enough for decode
support, so we've dropped the requirement on the mesa end. Some encode
features are missing on < 2.16, but as per our current RHEL8 support
policy, these features are no longer supported.
Ubuntu 22.04 is still supported to have a full encode feature set, so we
can't drop the libva requirement quite yet.
SWDEV-548213
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
* Drop libva-amdgpu for newer distros
Due to bugs in mixing old and new libva installed, having both
libva-amdgpu packages just causes bugs due to edge cases. It's easier
to just use the inbox packages for RHEL9+, SLE, and UB24.04.
RHEL 8 and UB22.04 still needs libva-amdgpu since libva is too old.
I also noticed that SLE should be pulling in libva-drm2 as a runtime
requirement, since rocdecode only uses the DRM interface.
SWDEV-555510
SWDEV-557842
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
* rocDecode-setup.py - Fix
```
rocDecode-setup.py", line 246
else
^
SyntaxError: expected ':'
```
* rocDecode-setup.py - Fix
```
rocDecode-setup.py", line 246
else
^
SyntaxError: expected ':'
```
* rocDecode-setup.py - fix
```
E: Unable to locate package rocm-hip-runtime-devlibstdc++-12-dev
E: Couldn't find any package by regex 'rocm-hip-runtime-devlibstdc++-12-dev'
```
---------
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
Co-authored-by: Kiriti Gowda <kiriti.nageshgowda@amd.com>
The code is full of ERROR_CHECK(os.system("some shell commands")).
Unfortunately the return value from os.system is a 16 bit value with the return code in the upper 8 bits and a number of flags related to the traps in the lower 8 bits. The existing code passes this 16 bit value to the os.exit call, which just uses the bottom 8 bits. Unless the child process is killed by a signal these 8 bits will be zero, which is taken as "success", rather than passing on the exit status of the child process.
So even something as simple as
ERROR_CHECK(os.system("false"))
will report a status of 256 in the print statement but will call sys.exit() with a value of 0 in the lower 8 bits.
This change folds the top and bottom halves of the 16 bit value into an 8 bit value. This will be non-zero, so a shell script running rocDecode-setup.py will know something has failed an ERROR_CHECK, rather than the current situation where it thinks things are correct.
* Find the minimum supported libva version 1.16 when building rocdecode
* Update the changelog
* Update the Error message if libva-amdgpu-dev/libva-amdgpu-devel not found
* Add missing comma
* Fix libva requirements for rocdecode
mesa-amdgpu-va-drivers is built with libva 2.16 (VA-API 1.16), so it
provides the entry point "__vaDriverInit_1_16". For rocdecode to use
mesa, it also needs to make sure it has a high enough requirement on
libva to be compatible with this function.
Strictly speaking, it doesn't matter what libva is used as long as it's
2.16 or newer, since libva is backwards compatible. An OR conditions is
used to favour distro packages when possible to avoid causing issues
with existing libraries built against the distro version.
For libva dev packages, we can just use libva-amdgpu-dev/el directly.
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
* Update to use libva-amdgpu
To reflect the package change, update the README, rocDecode-setup.py,
and the CHANEGLOG.
Putting the minimum VA-API version in the README isn't required as the
user is expected to just install the latest libva-amdgpu to match the
mesa VA-API version.
---------
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>