nvidia-vaapi-driver

A VA-API implemention using NVIDIA's NVDEC

OTHER License

Stars
1.2K

Bot releases are visible (Hide)

nvidia-vaapi-driver - v0.0.12 Latest Release

Published by elFarto 6 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.11...v0.0.12

nvidia-vaapi-driver - v0.0.11

Published by elFarto 12 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.10...v0.0.11

nvidia-vaapi-driver - v0.0.10

Published by elFarto over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.9...v0.0.10

nvidia-vaapi-driver - v0.0.9

Published by elFarto over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.8...v0.0.9

nvidia-vaapi-driver - v0.0.8

Published by elFarto almost 2 years ago

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

New Contributors

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.7...v0.0.8

nvidia-vaapi-driver - v0.0.7

Published by elFarto about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.6...v0.0.7

nvidia-vaapi-driver - v0.0.6

Published by elFarto over 2 years ago

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 https://github.com/elFarto/nvidia-vaapi-driver/pull/55
  • meson: Add a wrap file for ff-nvcodec-headers by @nirbheek in https://github.com/elFarto/nvidia-vaapi-driver/pull/59
  • Add alignment and remove static by @pobrn in https://github.com/elFarto/nvidia-vaapi-driver/pull/67
  • vabackend: fix alignment of codecs by @pobrn in https://github.com/elFarto/nvidia-vaapi-driver/pull/72
  • vabackend: retain section from linker garbage collection by @pobrn in https://github.com/elFarto/nvidia-vaapi-driver/pull/81

New Contributors

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.5...v0.0.6

nvidia-vaapi-driver - v0.0.5

Published by elFarto over 2 years ago

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: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.4...v0.0.5

nvidia-vaapi-driver - v0.0.4

Published by elFarto over 2 years ago

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: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.3...v0.0.4

nvidia-vaapi-driver - v0.0.3

Published by elFarto over 2 years ago

What's Changed

  • Added av1 meson option to enable AV1 support at build time. The codec is still not functional, this is purely to allow testing.
  • Fixed VP8 support, this was broken due to lack of support on my 1060. Thanks to @imatimba for their testing!
  • Added a check for the Firefox sandbox on start-up, and fail to initalise if it's detected.
  • Added a check for the nvidia_drm modeset parameter on start-up, and fail to initalise if it's set to 0.

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.2...v0.0.3

nvidia-vaapi-driver - v0.0.2

Published by elFarto almost 3 years ago

What's Changed

New Contributors

Thank you to all the people who've contributed code and bug reports, they've help tremendously!

Full Changelog: https://github.com/elFarto/nvidia-vaapi-driver/compare/v0.0.1...v0.0.2

nvidia-vaapi-driver - v0.0.1

Published by elFarto almost 3 years ago

First release!