Skip to content

Releases: elFarto/nvidia-vaapi-driver

v0.0.13

03 Nov 21:26
68efa33
Compare
Choose a tag to compare

This release is mainly just to fix the issue with newer versions of FFmpeg passing a single surface rather than the actual amount.

What's Changed

  • Fix memory issues by @akorb in #303
  • vabackend: Treat surfaceCount == 1 the same as surfaceCount == 0 by @philipl in #295
  • Unbreak build on FreeBSD < 14 by @jbeich in #291
  • Update default backend in README.md by @nerijus in #290
  • Update README.md - recent MPV versions can be used by @nerijus in #294
  • Fix typo, add HEVC support description, add open gpu kernel info by @EiPiFun in #324

New Contributors

Full Changelog: v0.0.12...v0.0.13

v0.0.12

06 May 09:44
fc5ce86
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.0.11...v0.0.12

v0.0.11

06 Nov 07:39
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.0.10...v0.0.11

v0.0.10

20 Jun 17:35
Compare
Choose a tag to compare

What's Changed

  • Fix compatibility issue with direct backend and v535 beta drivers.
  • Fix build on i686 using a cast by @kwizart in #189
  • meson: Use pkgconfig to find the EGL dependency by @Conan-Kudo in #191
  • Fix CUDA_ERROR_INVALID_CONTEXT from cuMemcpy2D by @thesword53 in #208
  • Update README.md, AUR VCS package name by @Neurognostic in #203 and #204
  • Update README.md, remind about ffmpeg by @lucasmr in #212

New Contributors

Full Changelog: v0.0.9...v0.0.10

v0.0.9

12 Mar 09:06
766d843
Compare
Choose a tag to compare

What's Changed

  • Support YUV444 on direct-backend by @thesword53 in #134
  • docs: update yuv444 support and direct backend support table by @crimist in #144
  • README: fix debian package link by @Fantu in #153
  • Update README for vp9 support with apt by @lengau in #152
  • Add fedora/rhel package location by @kwizart in #156
  • AV-1 10bit fix in #157
  • meson: properly check for libva, add libdrm dependency by @evelikov in #165
  • av1: increment picParams->nNumSlices by @evelikov in #166
  • Fix a bunch of warnings, add initial Github CI by @evelikov in #167
  • Correct installable candidate package for nv-codec-headers package … by @Brainiarc7 in #172

New Contributors

Full Changelog: v0.0.8...v0.0.9

v0.0.8

16 Dec 10:29
acd4696
Compare
Choose a tag to compare

What's New

  • Direct Backend
    The direct backend is a new selectable backend (via the NVD_BACKEND env. var) that that uses the NVIDIA kernel driver directly to allocate and export buffers, rather than using EGL. The EGL backend (which is still the default) was broken in the 525 driver series, so the use of the direct backend is necessary for decoding to work.
    However, due to the use of the undocumented and unsupported NVIDIA API the kernel driver provides, it's likely that the direct backend could be broken by driver updates (with that said, the EGL backend has also just been broken by a driver update so... 🤷).

What's Changed

  • Improved error checking. Previously we'd just exit when detecting a CUDA error, now we'll attempt to return an appropriate error code. This resolves the issue that unrelated applications that happen to init this library where crashing at start-up due to the aforementioned EGL backend breaking.
  • Support 10/12 bit formats by @philipl in #120
  • Use NVD_GPU to control which DRM node to open in direct backend mode by @philipl in #137
  • Update documentation by @crimist in #133 and #140

New Contributors

Full Changelog: v0.0.7...v0.0.8

v0.0.7

13 Oct 06:57
Compare
Choose a tag to compare

What's Changed

  • Fix for test.sh by @multiflexi in #94
  • meson: Make gst-codecparser optional by @philipl in #100
  • Added missing initialisation calls for mutexattr to fix random crash
  • Check if surface has been used in a different context before use

New Contributors

Full Changelog: v0.0.6...v0.0.7

v0.0.6

25 May 18:20
62a571c
Compare
Choose a tag to compare

What's Changed

  • Multi-threaded decode. In previous versions the final steps of decoding a frame would only be started when vaExportSurfaceHandle was called. This wasn't correct, and only worked because ffmpeg based applications (such as Firefox) call it every frame, however that isn't required by VA-API. This change moves the final steps to a separate thread that begins when vaEndPicture is called.
  • Reworked GPU selection. We now use the the passed-in DRM fd to attempt to select the correct GPU to use. This can be overridden with the NVD_GPU environment variable which you can set to the id of the GPU you want to use. You can use the nvidia-smi tool to find the id.
  • Added option to limit the maximum instances per process using the NVD_MAX_INSTANCES environment variable. This setting limits how many concurrent contexts are allow, which can limit the amount of memory that's used. Useful for GPUs with limited VRAM on video heavy websites.
  • Added missing libva dependency to build, and set the minimum required version to 2.8.0.
  • Set EGL_SUPPORT_REUSE_NV to false when creating the EGLStream. This prevents NVIDIA's EGL library from buffering one of the frames, which could lead to the driver leaking that frame.
  • Update README.md to remove mention of FF96 being in beta. by @AdamSzopa in #55
  • meson: Add a wrap file for ff-nvcodec-headers by @nirbheek in #59
  • Add alignment and remove static by @pobrn in #67
  • vabackend: fix alignment of codecs by @pobrn in #72
  • vabackend: retain section from linker garbage collection by @pobrn in #81

New Contributors

Full Changelog: v0.0.5...v0.0.6

v0.0.5

12 Feb 08:23
8806b61
Compare
Choose a tag to compare

What's Changed

  • AV1 support! This release adds support for decoding AV1 videos on 30-series NVIDIA cards. For use in Firefox, version 98+ is required. Thanks to @johnjohnlin, @Draghtnod, @struq, @philipl and @gageberz for all the testing they did.
  • Reworked modeset check to ensure we always use the DRI render node, rather than the master node. Opening the master node causes a message to be logged to dmesg, which we want to avoid.

Full Changelog: v0.0.4...v0.0.5

v0.0.4

31 Jan 18:19
Compare
Choose a tag to compare

What's Changed

  • Reworked surface export process. The previous surface export method (the key piece of code that made this library possible) only used two EGLImages to export finished frames to the client. Unfortunately this led to some weird artifacts where the wrong frame would end up in the EGLImage before the client used it. The export process has now been changed to have as many EGLImages as the client needs. This uses more memory, but fixes all the know visual glitches and has slightly less per-frame overhead.
  • Better clean-up on terminate. Some EGLImages were being left in memory causing a memory leak.
  • Improved surface allocation. Some clients don't provide a list of surfaces on context creation, so we need to take a guess at how many decode surfaces we need.
  • Improved device checking. Check the DRM render node if available instead of the master node, as that can generate an error message in the kernel log.
  • Added check for 16-bit surface support. We now check the driver to see if it has 16-bit surface support. Hopefully this will be added in a future NVIDIA driver version.

Full Changelog: v0.0.3...v0.0.4