- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
We are working on porting a libraries, mainly based on OneVPL, from a NUC Element 11th Gen (Tiger Lake) to a NUC Element 12th Gen (Alder Lake) in Linux and we are not able to make the blitter engine working.
Indeed, under Tiger Lake, we used to use the function vaCopy(), in the libVA library, to do buffer copies from linear memory format to tile memory format.
With the Alder Lake, the functionality seems to not working. The function vaCopy() always returns invalid parameters (VA_STATUS_ERROR_INVALID_PARAMETER).
We are actually using the following libraries:
- Linux kernel 5.17.1
- libVA : 2.13.0
- gmmlib : intel-gmmlib-22.0.1
- media-driver : intel_medis-22.1.1
- Ubuntu server 21.10
- Ubuntu kernel : 5.17.0-051700-generic
- product: 12th Gen Intel(R) Core(TM) i7-1265U
- Intel oneAPI Base Toolkit for Linux: Version: 2022.1.2
Could you help us?
Thanks,
Nicolas
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Good day to you.
We are not clear about the exact issue that you are facing.
To help you better, can you share the exact steps that you followed along with a sample reproducer code so that we can try reproducing the issue from our side.
Thanks and Regards,
Jyothis V James
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
To use the blitter engine (copy engine), we use the libVA library in Linux.
In the va.h file, line 5180, there is the function:
VAStatus vaCopy(VADisplay dpy, VACopyObject * dst, VACopyObject * src, VACopyOption option);
We use the following value:
parameters:
VADisplay dpy : ... // we put a valid current VADisplay here
(VACopyObject*) poDst: {obj_type = VACopyObjectSurface, object = {surface_id = 1, buffer_id = 1}, va_reserved = {0, 0, 0, 0, 0, 0, 0, 0}}
(VACopyObject*) poSrc: {obj_type = VACopyObjectSurface, object = {surface_id = 0, buffer_id = 0}, va_reserved = {0, 0, 0, 0, 0, 0, 0, 0}}
(VACopyOption) option: {bits = {va_copy_sync = 1, va_copy_mode = 1, reserved = 0}, value = 5}
On Tiger Lake, the operation is working properly.
On Alder Lake, it always fails, returning VA_STATUS_ERROR_INVALID_PARAMETER (0x00000012)
Also, when looking at the Intel Media Driver, it seems that the McpyDevice hasn`t been registered in the RegisterHal for the Alder Lake.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
This proposed patch seems to fix the problem: McpyDevice interface is missing with ADLP and ADLS (vaCopy fails) · Issue #1381 · intel/media-driver · GitHub
It looks as the code to enable the copy engine for Alder Lake is missing in the Intel Media Driver.
Thanks,
Nicolas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Good day to you.
Glad to know that your issue is resolved. Thanks for sharing the solution with the community.
If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.
Regards,
Jyothis V James
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Jyothis,
Do you know if the proposed patch is going to be added in the git repo of the Intel Media driver?
Regards,
Nicolas
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page