Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add VVC decode LibVA interface. #1

Open
wants to merge 38 commits into
base: master
Choose a base branch
from
Open

Add VVC decode LibVA interface. #1

wants to merge 38 commits into from

Conversation

ChunjuanLiu
Copy link
Owner

No description provided.

@ChunjuanLiu ChunjuanLiu force-pushed the VvcLibVA branch 3 times, most recently from 5d71598 to 477834b Compare September 5, 2023 07:00
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
thesword53 and others added 21 commits September 13, 2023 20:29
The adapter_luid is already stored in pDriverContext->native_dpy. The
copy in VADisplayContextWin32, is not needed.

Signed-off-by: Emil Velikov <[email protected]>
All the vafool codebase was removed a while ago, with little sign of it
coming back.

Signed-off-by: Emil Velikov <[email protected]>
Note that the old ones are deprecated. For the new one mention the
ownership model and num_drivers meaning/handling.

Signed-off-by: Emil Velikov <[email protected]>
As documented (and updated) the callee(s) cannot set the num_drivers
past the original size. So drop the unreachable code.

Signed-off-by: Emil Velikov <[email protected]>
All the backends implement the callback. So this temporary check can go
now.

Signed-off-by: Emil Velikov <[email protected]>
Signed-off-by: Carl Zhang <[email protected]>
Signed-off-by: Carl Zhang <[email protected]>
Fixes: 484f128 ("win32: remove duplicate adapter_luid entry")
Signed-off-by: Sil Vilerino <[email protected]>
Add a debug build type run to catch errors only happening on debug
Currently there is no way of exposing the driver tile_rows and tile_cols limitations
for encoding with tiles. For codecs like AV1 there is a cap specifying the max number
of tiles, but without differentiating cols/rows.

Different hardware may have restrictions which may need to be taken into account.
More specifically, D3D12 encode exposes the maximum rows/cols and adding
VAConfigAttribEncMaxTileRows/Cols allows for mapping that information to the VAOn12 driver.

Signed-off-by: Sil Vilerino <[email protected]>
add new vaMapBuffer2
backend driver need some usage hint to optimize the operation

Signed-off-by: Carl Zhang <[email protected]>
This new added api should be exported otherwise it will cause link
issues.

Signed-off-by: Tong Wu <[email protected]>
As noted in the action v1 release note, action was rewritten
to use qemu and libvirt which requires switch from macos to
ubuntu runners.

Signed-off-by: Dmitry Rogozhkin <[email protected]>
Add PRIME3 memory type defination to support create surface with extra flags.
Add symbol for exporting existing VA vaGetLibFunc function to .def file

Fixes intel#782
Signed-off-by: Sil Vilerino <[email protected]>
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 2 to 3.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](actions/deploy-pages@v2...v3)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 3 to 4.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](actions/deploy-pages@v3...v4)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
dependabot bot and others added 8 commits January 8, 2024 11:40
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](actions/upload-pages-artifact@v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
when all backend failed vaGetDisplayWl will just return a context that
was already destroyed. This leads to crashes if downstream tries to use
the context.
The "which" utility is not guaranteed to be installed either, and if it
is, its behavior is not portable either. This means that when autoreconf
is installed, the `which` check will report a fatal error because the
which tool did not exist and the shell returned a nonzero status when
attempting to fork+exec. If it did exist, it might not be an
implementation of `which` that returns nonzero when commands do not
exist.

The general scripting suggestion is to use the "command -v" shell
builtin; this is required to exist in all POSIX 2008 compliant shells,
and is thus guaranteed to work everywhere.

For some in-depth discussions on the topic, see:
- https://mywiki.wooledge.org/BashFAQ/081
- https://unix.stackexchange.com/questions/85249/why-not-use-which-what-to-use-then/85250#85250

Examples of open-source shells likely to be installed as /bin/sh on
Linux, which implement the 15-year-old standard: ash, bash, busybox,
dash, ksh, mksh and zsh.

Signed-off-by: Eli Schwartz <[email protected]>
Run autogen.sh as a dist script while creating the tarball. Also update
autogen.sh to detect when it is being run from `meson dist`, and use
that as the srcdir.

Signed-off-by: Eli Schwartz <[email protected]>
Apps like gstreamer will crash on WSL without this check, which
existed before but was removed in commit f097811

Signed-off-by: Sil Vilerino <[email protected]>
Due to different HW implementation, the
surface could require a different alignment size
rather than the default ones, here introduces
a new VASurfaceAttribute, alignment size, which
contains two variables log2_width_alignment
and log2_height_alignment, each has 4 bits,
and the alignment needs to be left shifted
2**size from the application side.

The alignment is in the powers of 2 and
range in [2**0, ... 2**15] = [1, 2, 4, 8, ... 32768]

And this alignment should be met when creating
context as an add-on requirement. If not
implemented, the existing/default alignment
logic will be used.

Signed-off-by: Ruijing Dong <[email protected]>
0x80000000 usually used as unsupport bit, update to new value.

Signed-off-by: Li, Xin6 <[email protected]>
XinfengZhang and others added 5 commits March 11, 2024 21:44
Signed-off-by: Carl Zhang <[email protected]>
wl_drm is a legacy protocol, and wlroots is getting rid of it [1].
Use the newer and standard linux-dmabuf protocol if available to
get the DRM device.

[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4397

Signed-off-by: Simon Ser <[email protected]>
Jexu and others added 3 commits May 31, 2024 13:45
When building libva with lld (the llvm-project linker), version 17 or
later, an error similar to the following is emitted when linking
libva.so:

    ld: error: va/libva.so.2.2000.0.p/va_compat.c.o: symbol
    vaCreateSurfaces@VA_API_0.32.0 has undefined version VA_API_0.32.0

The root cause is that lld 17 checks linker version scripts more
strictly by default, and emits an error when undefined symbols or
undefined versions are referenced.

Earlier in the build, it turns out that due to these lld errors, va's
meson.build fails to detect `--version-script` support:

    Checking if "-Wl,--version-script" : links: NO

This is because the small test program used by meson to check whether a
shared library can be linked with the `libva.syms` version script is
completely empty, and therefore the two symbols in the version script,
`vaCreateSurfaces_0_32_0` and `vaCreateSurfaces`, are undefined.

Fix the problem by providing placeholder definitions for these symbols
in the `code` argument to meson's `cc.links()` function. This ensures
that meson correctly detects `--version-script` support with lld version
17 or later, and makes it possible to link the libva shared library.

Signed-off-by: Dimitry Andric <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.