Multimedia – includes Nvidia driver, CUDA

This repository contains HandBrake with supporting programs MakeMKV and libdvdcss packages for Fedora distributions. Along with HandBrake, the same repository is used to host the CUDA and FFMpeg enabled Blender, a FFMPeg binary and Gstreamer plugins compiled with most of the possible options, Avidemux, VLC and others. I’m not able to provide separate repositories for them as either you have a full blown multimedia collection with each component strictly tied to each other, or you just have the plain Fedora repositories with no license/patent encumbered options.

None of these packages can be distributed inside the main Fedora repositories as they are presented here due to patent and licensing issues or simply because they are coupled with non open source software.

This repository requires that the EPEL repository be enabled if you’re running CentOS/RHEL 6.

These packages try to comply as maximum to the Fedora Packaging Guidelines; which means they have debuginfo packages, default Fedora’s GCC compile time options (where possible) and standard locations for binaries, data and docs.

Supported Fedora/CentOS/RHEL distributions:

  • Fedora 23 – i686/x86_64
  • Fedora 24 – i686/x86_64
  • Fedora 25 – i686/x86_64
  • CentOS/RHEL 6 – i686/x86_64
  • CentOS/RHEL 7 – i686/x86_64

Nvidia driver, CUDA tools and libraries

The repository also contains the Nvidia driver, CUDA tools and libraries that are depicted in a separate page. You can avoid having the Nvidia repository installed if you are using this one.

HandBrake, MakeMKV and libdvdcss

HandBrake HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. MakeMKV is a one-click solution to convert video into free and patents-unencumbered format that can be played everywhere. It converts the video clips from proprietary (and usually encrypted) disc into a set of MKV files, preserving most information but not changing it in any way. Additionally MakeMKV can instantly stream decrypt video without intermediate conversion and can decrypt Blue Ray discs and protected DVD discs. libdvdcss is a support library designed for accessing DVDs without having to bother about the decryption.HandBrake

By the combination of these 3 packages any video title can be ripped or transcoded without problems.

Additional libraries that are normally fetched during HandBrake compilation have been pre downloaded and are shipped in the source rpm. This to avoid unnatural behaviour when compiling packages with Fedora tools such as mock or Koji.

HandBrake is made of two separate packages; HandBrake-gui and HandBrake-cli. The former being the GTK main GUI interface, and the latter the command line program. MakeMKV contains both graphical and command line interfaces into one package.

Fedora ships the latest HandBrake with the GTK 3 interface enabled, while CentOS/RHEL 6 version is at 0.9.8; as it is the last version available that still builds with GTK 2.20 as shipped in the distribution.

HandBrake Bundled libraries

Historically, HandBrake has always linked statically the libraries required by the program. Since version 0.9.9 there’s the option to have them as external libraries and link them to the main executable. This does not mean thought that they can be used straight from Fedora repositories; some have restrictive licenses, some are forked and some do not contain the required patches for HandBrake.

All the libraries that can be linked are now linked from the main repositories, while the rest is left as bundled. Still left as bundled libraries inside the build due to versioning/patches are the following modules (libav is a fork of ffmpeg):

  • CentOS/RHEL 6: faac, mp4v2, ffmpeg, libbluray, libdca
  • Fedora 22: fdk-aac, x265
  • Fedora 23+, CentOS/RHEL 7: libav

The CentOS/RHEL 6 builds still bundle libbluray and ffmpeg, as the packages currently in EPEL 6 are too old.

Installing HandBrake/MakeMKV/libdvdcss

To install the repository on a supported Fedora 22+ distribution, run as root the following command:

dnf config-manager --add-repo=http://negativo17.org/repos/fedora-multimedia.repo

To install the repository on CentOS/RHEL:

yum-config-manager --add-repo=http://negativo17.org/repos/epel-multimedia.repo

Then, to install the HandBrake packages (as an example both the graphical interface and the command line tool), perform the following commands:

yum -y install HandBrake-gui HandBrake-cli

For MakeMKV:

yum -y install makemkv

For libdvdcss:

yum -y install libdvdcss

Please note that the 64 bit MakeMKV tarballs contain a 32 bit binary. The binary is required by the main MakeMKV program (makemkvcon) for proper operation and comes only in binary format. This means that the 64 bit MakeMKV package will pull in the 32 bit mmtdsdec and associated glibc packages; which in a normal 64 bit desktop system are not guaranteed to be installed:

 rpm -q --whatrequires mmdtsdec
makemkv-1.9.7-1.fc23.x86_64
$ rpm -ql mmdtsdec
/usr/bin/mmdtsdec
/usr/share/doc/mmdtsdec
/usr/share/doc/mmdtsdec/eula_en_linux.txt
$ file /usr/bin/mmdtsdec
/usr/bin/mmdtsdec: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, stripped

Registering MakeMKV to avoid expiration

Please use the provided beta registration key published by the developers:

http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053

After starting MakeMKV just press the “Register” button and paste the provided code.

makemkv_register

Playing protected Blu-Ray discs

Starting with version 1.8.5, MakeMKV comes with the libmmbd library. This library provides a simple API that any application can use to decrypt M2TS/SSIF files from a Blu-Ray disc. The library is licensed under the open-source LGPL license; although the way the library works, it launches a MakeMKV instance in background and communicates with MakeMKV in order to get decryption keys; so a working MakeMKV installation is required for the library to function. The libmmbd library is designed to be updated very infrequently – all the logic is inside MakeMKV (in makemkvcon), and libmmbd is just a proxy. The libmmbd source code is part of MakeMKV oss linux package.

Also, libmmbd emulates two popular open-source libraries, libaacs and libbdplus. What this means, that after a one-time setup, any application that uses libbluray/libaacs for decryption will be able to open a protected Blu-Ray disc, as long as MakeMKV is installed. Most notable application that uses libbluray is Videolan VLC player.

The libbluray library, starting from version 0.5.0 supports setting two environment variables to ease libmmbd loading, so the MakeMKV package already contains what’s required for the override (of course adjusted for 32/64 bit environments):

$ cat /etc/profile.d/makemkv.sh 
export LIBBDPLUS_PATH=/usr/lib64/libmmbd.so.0
export LIBAACS_PATH=/usr/lib64/libmmbd.so.0

This is equivalent to set an explicit library override in your library directory:

ln -sf libmmbd.so.0 libaacs.so.0
ln -sf libmmbd.so.0 libbdplus.so.0

For additional details see the original announcement and how to page on MakeMKV‘s forums.

To debug such a setup, you can use the variable MMBD_TRACE prepended to the command you want to run. For example, to decrypt and print information from a Blu-Ray disc:

MMBD_TRACE=1 bd_info /dev/sr0

Or to make sure MakeMKV is doing it’s part for VideoLan:

MMBD_TRACE=1 vlc

Fully fledged FFMpeg binaries

FFMPegIt started due to my personal usage with support for NVENC, the hardware encoding support for Nvidia video cards, but due to popular request the custom built FFMpeg package that drops in as a replacement for RPMFusion enables linking and support for all the codecs/encoders/decoders that would result in an unredistributable binary.

The following codecs/encoders/decoders/transports have been enabled:

  • VP8 and VP9 de/encoding
  • WebP encoding
  • AAC (Fraunhofer, LibVO and other variants) de/encoding
  • OpenAL 1.1 capture support
  • BluRay reading
  • AMR-WB de/encoding
  • AMR-NB de/encoding
  • RTMP[E] support
  • OpenH264 de/encoding (H.264 Cisco variant)
  • OpenGL rendering
  • SSH transport
  • Fontconfig/fribidi text support
  • CDIO Audio CD support
  • NVENC (Nvidia H.264/265 GPU hardware encoding)
  • QSV (Intel Quick Sync Video H.264/265 CPU hardware de/encoding)
  • HE-AAC+ (3GPP AAC+ High Efficiency Advanced Audio Codec v2 encoder)
  • HEVC kvazaar (H.265)
  • CUDA CUVID H264/HEVC decoder
  • libnpp/CUDA-accelerated format conversion and scaling
  • VAAPI-accelerated format conversion and scaling
  • VAAPI-accelerated H.264/HEVC/MJPEG de/encoding

This sobstitutes the FFMPeg binaries that were provided as part of the CUDA enabled programs, as it is now tied to all the other multimedia libraries available in this repository. The support for Nvidia H.264/H.265 hardware encoding/decoding and Intel Quick Sync Video is enabled here as well and the required packages are now installed through the use of RPM weak dependencies.

To install the main FFMPeg binary and enable transcoding of practically everything, proceed as you would with a normal package:

dnf install ffmpeg

Then after installing, you can see what options have been enabled at compile time by issuing one of the following commands:

ffmpeg -formats
ffmpeg -devices
ffmpeg -codecs
ffmpeg -decoders
ffmpeg -encoders

To check for the hardware accelerated encoders/decoders:

$ for i in encoders decoders filters; do
     echo $i:; ffmpeg -hide_banner -${i} | egrep -i "Intel Quick Sync|cuvid|nvenc|cuda|npp"
done
encoders:
 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_qsv             HEVC (Intel Quick Sync Video acceleration) (codec hevc)
 V..... mpeg2_qsv            MPEG-2 video (Intel Quick Sync Video acceleration) (codec mpeg2video)
decoders:
 V..... h263_cuvid           Nvidia CUVID H263 decoder (codec h263)
 V....D h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
 V..... h264_cuvid           Nvidia CUVID H264 decoder (codec h264)
 V....D hevc_qsv             HEVC (Intel Quick Sync Video acceleration) (codec hevc)
 V..... hevc_cuvid           Nvidia CUVID HEVC decoder (codec hevc)
 V..... mjpeg_cuvid          Nvidia CUVID MJPEG decoder (codec mjpeg)
 V..... mpeg1_cuvid          Nvidia CUVID MPEG1VIDEO decoder (codec mpeg1video)
 V....D mpeg2_qsv            MPEG-2 video (Intel Quick Sync Video acceleration) (codec mpeg2video)
 V..... mpeg2_cuvid          Nvidia CUVID MPEG2VIDEO decoder (codec mpeg2video)
 V..... mpeg4_cuvid          Nvidia CUVID MPEG4 decoder (codec mpeg4)
 V..... vc1_qsv              VC-1 video (Intel Quick Sync Video acceleration) (codec vc1)
 V..... vc1_cuvid            Nvidia CUVID VC1 decoder (codec vc1)
 V..... vp8_cuvid            Nvidia CUVID VP8 decoder (codec vp8)
 V..... vp9_cuvid            Nvidia CUVID VP9 decoder (codec vp9)
filters:
 ... hwupload_cuda     V->V       Upload a system memory frame to a CUDA device.
 ... scale_npp         V->V       NVIDIA Performance Primitives video scaling and format conversion

The package has a different Epoch so it should not overwritten by other updates. The idea is to have all the possible codecs/transports supported out of the box, so also expect CIFS transport and other stuff, as soon as I have more time.

Please note that the ffmpeg binary works fine even without hardware acceleration. The CUDA library and the Intel Quick Sync Video libraries are directly linked in:

$ ldd /usr/lib64/libavfilter.so.6 | egrep -i "cuda|npp"
        libnppi.so.8.0 => /lib64/libnppi.so.8.0 (0x00007fec74393000)
        libcuda.so.1 => /lib64/libcuda.so.1 (0x00007fec72e5a000)
        libnppc.so.8.0 => /lib64/libnppc.so.8.0 (0x00007fec6c782000)
$ ldd /usr/lib64/libavcodec.so.57 | egrep -i "mfx|cuda|cuvid"
        libmfx.so.0 => /lib64/libmfx.so.0 (0x00007fa7e83bb000)
        libnvcuvid.so.1 => /lib64/libnvcuvid.so.1 (0x00007fa7e7805000)
        libcuda.so.1 => /lib64/libcuda.so.1 (0x00007fa7e6e0f000)

Gstreamer plugins and multimedia libraries

The Multimedia repository now provides GStreamer (1.0) plugins for Bad, Ugly, libAV and VA-API plugin bundles with all options enabled. These are split into the following GStreamer runtime packages:

  • gstreamer1-plugins-bad
  • gstreamer1-plugins-ugly
  • gstreamer1-plugins-vaapi
  • gstreamer1-plugins-libav (pulls in FFmpeg)
  • gstreamer1-plugins-bad-fluidsynth (pulls in the whole FluidSynth distribution)
  • gstreamer1-plugins-bad-nvenc (x86_64 only, pulls in the Nvidia binary driver)

They all have an Epoch of “1”, to avoid any upgrade issue. Like for FFMpeg, I’ve tried to enable all the supported plugins out of the box.

  • The bad package actually obsoletes the bad-free, bad-nonfree and openh264 Gstreamer plugin packages.
  • The ugly package actually obsoletes the mpg123 Gstreamer plugin package.

OpenH264 Firefox support

Fedora 24 has a new repository to enable OpenH264 decoding in Mozilla Firefox by enabling a specific repository. As described in the Wiki page, this is already available on newly installed systems.

The packages provided here conflict with the packages provided in the OpenH264 repository, so I’m now providing a custom build of the Mozilla integration along with FFMpeg and Gstreamer packages that allows me to enable more features and provide them as well for CentOS and Red Hat Enterprise Linux.

To install OpenH264 support for Firefox:

dnf/yum install mozilla-openh264

CUDA/FFMpeg enabled Blender

BlenderThe Blender packages contained herein enable all the possible build options including support for the RedCode image formats (for the old Red line of professional cameras), CUDA and FFMPeg.

Installing Blender works exactly like with the normal package from Fedora, except that the package will pull in all required libraries to enable FFMpeg support:

dnf install blender

If you have an Nvidia video card supported by the latest drivers and have the Nvidia repository enabled, you can install blender with the following command and get the benefit of using your GPU(s) for rendering.

dnf install blender-cuda nvidia-driver

This will pull in CUDA support for the installed Nvidia driver as well as the CUDA kernels for the various cards. Remember to manually load the nvidia-uvm module (or simply reboot) prior to starting Blender.

CUDA devices will then be selectable in the System pane of the User Preferences in the main Blender interface as depicted in the Screenshot below.

Screenshot from 2015-12-11 19-20-27

VLC on HiDPI displays

If you get icons too big on an HiDPI display and the fonts look distorted, try to disable QT’s honoring of DPI settings. A workaround is to start VLC like this:

env QT_AUTO_SCREEN_SCALE_FACTOR=0 vlc

or create an environment file as described here with the above variable:

echo "export QT_AUTO_SCREEN_SCALE_FACTOR=0" > /etc/profile.d/qt-hidpi.sh

Bugs

The address for contacting me is in the package’s changelog, otherwise leave a comment in the post, I’ll do my best to reply to everyone.

299 thoughts on “Multimedia – includes Nvidia driver, CUDA

  1. Please, do you still suggest to install rpmfusion repos beside your multimedia one? I can’t see any mention in the instructions. Also: is anything affected by the new choice in Fedora 25 of including mp3 support

  2. Hi, both your repos and your blog are pretty popular. For example this multimedia post has comments from back to 2013.. perhaps you would like to consider to invert the order of the comments by date, placing the newer on top? just saying

    1. So, the 340 driver repository is there but maintained only with feedback from users, as I don’t have any system supported by the 340 GPUs. That’s why is not advertised anywhere.
      I guess you should use that standalone.. or even better it’s time to retire it for good.

  3. Looks like this was the cause (also for the mpv error I mentioned in one of my previous comments). I’ve found the libOpenCL.so.1()(64bit) provides also in ocl-icd (I don’t have the slightest idea what it should do), installed it instead of the fglrx things and after restart all seems to work again.

    Thanks for help, Martin

    1. Exactly, ocl-icd is what should be installed in your system. Any other replacement should not provide libOpenCL.so.1.
      Assuming the “elrepo” repository is called “elrepo”, can you do the following and check if there is any leftover from ElRepo?

      package-cleanup --disablerepo=elrepo --orphans
  4. CentOS-7 here.

    I’m having trouble with anything GL based:
    # glxinfo
    name of display: :0.0
    Xlib: extension “GLX” missing on display “:0.0”.
    Xlib: extension “GLX” missing on display “:0.0”.
    Segmentation fault

    The problem is IMHO this (not libGL.so.1):
    # ldd /usr/bin/glxinfo
    linux-vdso.so.1 => (0x00007ffd181df000)
    libGL.so.1 => /usr/lib64/fglrx/libGL.so.1 (0x00007fc9fb6d8000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007fc9fb39a000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fc9fafd7000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc9fadbb000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007fc9faba9000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fc9fa986000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fc9fa782000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc9fb907000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007fc9fa57e000)

    I do have an Intel card though. And I cannot remove the offending library, because of this:
    # rpm -e fglrx-x11-drv
    error: Failed dependencies:
    fglrx-x11-drv = 15.12 is needed by (installed) kmod-fglrx-15.12-3.el7.elrepo.x86_64
    libOpenCL.so.1()(64bit) is needed by (installed) ffmpeg-libs-1:2.8.8-3.el7.x86_64
    libOpenCL.so.1()(64bit) is needed by (installed) ffmpeg-1:2.8.8-3.el7.x86_64
    libOpenCL.so.1(OPENCL_1.0)(64bit) is needed by (installed) ffmpeg-libs-1:2.8.8-3.el7.x86_64
    libOpenCL.so.1(OPENCL_1.0)(64bit) is needed by (installed) ffmpeg-1:2.8.8-3.el7.x86_64

    Any pointers what should I do?

    Thanks,
    Martin

        1. It seems fglrx-x11-drv provides libOpenCL. It should not. You should try to force remove it:

          rpm -e --nodeps fglrx-x11-drv kmod-fglrx
  5. Just installed F25, tried to install handbrake, however DNF did not let me finish the install:

    rror: Transaction check error:
    file /usr/lib64/libBasicUsageEnvironment.so.1.0.0 from install of live555-libs-2016.07.19-1.fc25.x86_64 conflicts with file from package live555-2016.10.21-1.fc25.x86_64
    file /usr/lib64/libUsageEnvironment.so.3.1.0 from install of live555-libs-2016.07.19-1.fc25.x86_64 conflicts with file from package live555-2016.10.21-1.fc25.x86_64
    file /usr/lib64/libgroupsock.so.8 from install of live555-libs-2016.07.19-1.fc25.x86_64 conflicts with file from package live555-2016.10.21-1.fc25.x86_64

  6. Hello, I followed the instructions for install Cuda and Nvidia drivers from your Nvidia repo on Fedora 25. I’m now trying to use blender-cuda but it is unable to compile the cuda kernels:

    `read blend: /home/tbruno/Downloads/BMW27.blend
    skipping driver ‘100*power’, automatic scripts are disabled
    skipping driver ’90*brake’, automatic scripts are disabled
    skipping driver ‘-100*power’, automatic scripts are disabled
    skipping driver ‘-90*brake’, automatic scripts are disabled
    skipping driver ‘100*power’, automatic scripts are disabled
    skipping driver ‘-90*brake’, automatic scripts are disabled
    skipping driver ’90*brake’, automatic scripts are disabled
    skipping driver ‘-100*power’, automatic scripts are disabled
    Compiling CUDA kernel …
    “nvcc” -arch=sm_61 –cubin “/usr/share/blender/scripts/addons/cycles/kernel/kernels/cuda/kernel.cu” -o “/home/tbruno/.config/blender/2.78/cache/cycles_kernel_sm61_B7B007B83147D562416B0F226D786967.cubin” -m64 –ptxas-options=”-v” –use_fast_math -DNVCC -D__KERNEL_CUDA_VERSION__=80 -I”/usr/share/blender/scripts/addons/cycles/kernel”
    cc1plus: fatal error: cuda_runtime.h: No such file or directory
    compilation terminated.
    CUDA kernel compilation failed, see console for details.`

      1. yes, that is the blender-cuda that I am using from your repo. It turns out that I think cuda and cuda-devel from your fedora-nvidia isn’t working right. I tried to compile a small hello world cuda app and nvcc reports cuda_runtime.h cannot be found.

        1. As I said, please look at the various spec files or what is installed in your system:

          $ rpm -ql cuda-cudart-devel | grep cuda_runtime
          /usr/include/cuda/cuda_runtime.h
          /usr/include/cuda/cuda_runtime_api.h

          You’re simply assuming that headers are in /usr/include. If you look at the packages, all the headers you need are in /usr/include/cuda.

          https://github.com/negativo17/blender/blob/master/blender-2.78-cuda.patch#L20
          https://github.com/negativo17/ffmpeg/blob/master/ffmpeg.spec#L201

          1. I don’t understand your suggestion. All I have done is enabled all your repos and install the software from them. This is the blender-cuda package that you provide along with your fedora-nvidia repo. I just tried it on a clean fresh install of Fedora 25 and I hit the same issues. here is the full log of what I have done on this fresh install:


            [tbruno@localhost ~]$ sudo dnf config-manager --add-repo=http://negativo17.org/repos/fedora-handbrake.repo
            [tbruno@localhost ~]$ sudo dnf config-manager --add-repo=http://negativo17.org/repos/fedora-nvidia.repo
            [tbruno@localhost ~]$ sudo dnf groupinstall "C Development Tools and Libraries" "Development Tools"
            [tbruno@localhost ~]$ sudo dnf install nvidia-settings kernel-devel dkms-nvidia vulkan.i686 nvidia-driver-libs.i686
            [tbruno@localhost ~]$ sudo dnf install cuda-* nvidia-driver-cuda nvidia-driver-cuda-libs nvidia-driver-devel
            [tbruno@localhost ~]$ sudo reboot
            [tbruno@localhost ~]$ sudo dnf install blender-cuda
            [tbruno@localhost ~]$ rpm -ql cuda-cudart-devel | grep cuda_runtime
            /usr/include/cuda/cuda_runtime.h
            /usr/include/cuda/cuda_runtime_api.h
            [tbruno@localhost ~]$ blender

            trying to save userpref at /home/tbruno/.config/blender/2.78/config/userpref.blend ok
            read blend: /home/tbruno/Downloads/BMW27.blend
            skipping driver '100*power', automatic scripts are disabled
            skipping driver '-90*brake', automatic scripts are disabled
            skipping driver '-100*power', automatic scripts are disabled
            skipping driver '90*brake', automatic scripts are disabled
            skipping driver '-90*brake', automatic scripts are disabled
            skipping driver '100*power', automatic scripts are disabled
            skipping driver '90*brake', automatic scripts are disabled
            skipping driver '-100*power', automatic scripts are disabled
            Compiling CUDA kernel ...
            "nvcc" -arch=sm_61 --cubin "/usr/share/blender/scripts/addons/cycles/kernel/kernels/cuda/kernel.cu" -o "/home/tbruno/.config/blender/2.78/cache/cycles_kernel_sm61_B7B007B83147D562416B0F226D786967.cubin" -m64 --ptxas-options="-v" --use_fast_math -DNVCC -D__KERNEL_CUDA_VERSION__=80 -I"/usr/share/blender/scripts/addons/cycles/kernel"
            cc1plus: fatal error: cuda_runtime.h: No such file or directory
            compilation terminated.
            CUDA kernel compilation failed, see console for details.

          2. I had to do 2 things to get blender-cuda to work. Set a global

            export CPLUS_INCLUDE_PATH=.:/usr/include/cuda

            and I had to install scl’s devtoolset-4-gcc-c++ because Fedora 25’s gcc compiler is unable to produce cuda builds with this current version.

            I then had to run blender from that devtoolset-4 shell so blender could compile the cuda code.

          3. I’m personally not building anything. All I did was install your package and then I opened blender. I then went to File->User Preferences ->System->Compute Device (at the bottom left). and choose CUDA. Then I saved user settings, and opened BMW27.blend to do a benchmark and hit F12.

            After hitting F12 to render the scene Blender reports that the render failed and to check the console. I captured the console output and pasted it above.

            If you provided the kernels I have no idea why it thinks it needs to rebuild them. It would be super helpful if it didn’t! πŸ™‚

          4. Ok, so the issue is that the Blender build is for CUDA 7.5 and not 8 and you are using an architecture (sm_xx*) that is not in the build. I’m struggling a bit to make Blender 2.78a compile with CUDA 8 and GCC, before resorting to gcc 5.x I would like to see if there are some compiler flags I can pass.

          5. I just read your blog post about blender and cuda 7.5. I am sorry to have wasted your time if this is the problem but I have a Nvidia GTX 1080.

          6. Hi, I just pushed another Blender 2.78a build with CUDA 8 enabled, that as such contains also the CUDA kernel for the GTX 1080.
            The trick was to compile only the CUDA kernels with Clang instead of GCC. This way you can have a supported CUDA 8 compiler that is already in Fedora as a build requirement. It also does not add any additional runtime requirements; unlike another GCC version used for both parts.

            It works for me, but can you make a test?
            In total you just need to install:

            nvidia-driver-cuda dkms-nvidia kernel-devel blender-cuda

            Make sure to reboot so the nvidia-uvm module is loaded.

  7. Hi,

    thank you for this repository, it’s first one that has working vaapi for me πŸ˜‰ Unfortunately, your mpv build has runtime deps on ffmpeg stuff (so dnf/yum upgrade does not notice api/abi changed), but that’s only a small issue. The more important one is that mpv crashes on me with opengl and opengl-hq video output and freezes the used terminal input. Any idea where this might come from?

    [vo/opengl/x11] X11 error: GLXBadContext
    [vo/opengl/x11] Type: 0, display: 0x7f998c373b00, resourceid: 7400003, serial: 37
    [vo/opengl/x11] Error code: a7, request code: 99, minor code: 5
    [vo/opengl] Could not set GLX context!
    [vo/opengl/x11] X11 error: GLXBadContext
    [vo/opengl/x11] Type: 0, display: 0x7f998c373b00, resourceid: 7400004, serial: 3b
    [vo/opengl/x11] Error code: a7, request code: 99, minor code: 5
    [vo/opengl] Could not set GLX context!
    [vo/opengl/x11] X11 error: GLXBadContext
    [vo/opengl/x11] Type: 0, display: 0x7f998c373b00, resourceid: 7400005, serial: 3f
    [vo/opengl/x11] Error code: a7, request code: 99, minor code: 5
    [vo/opengl] Could not set GLX context!
    [vo/opengl/x11] X11 error: GLXBadContext
    [vo/opengl/x11] Type: 0, display: 0x7f998c373b00, resourceid: 7400006, serial: 43
    [vo/opengl/x11] Error code: a7, request code: 99, minor code: 5
    [vo/opengl] Could not set GLX context!
    [vo/opengl/x11] X11 error: GLXBadContext
    [vo/opengl/x11] Type: 0, display: 0x7f998c373b00, resourceid: 7400006, serial: 44
    [vo/opengl/x11] Error code: a7, request code: 99, minor code: 4
    [vo/opengl/x11] X11 error: BadValue (integer parameter out of range for operation)
    [vo/opengl/x11] Type: 0, display: 0x7f998c373b00, resourceid: 0, serial: 45
    [vo/opengl/x11] Error code: 2, request code: 99, minor code: 3
    [vo/opengl/x11] X11 error: GLXBadContext
    [vo/opengl/x11] Type: 0, display: 0x7f998c373b00, resourceid: 7400007, serial: 47
    [vo/opengl/x11] Error code: a7, request code: 99, minor code: 5
    [vo/opengl] Could not set GLX context!
    X Error of failed request: GLXBadContext
    Major opcode of failed request: 153 (GLX)
    Minor opcode of failed request: 4 (X_GLXDestroyContext)
    Serial number of failed request: 72
    Current serial number in output stream: 7

    I’m on CentOS 7 and have also NUX Dextop repo enabled.

    Thanks

    1. I’m just uploading new builds and versions with quite a few changes, please test when they are available.
      I’m preparing the blog post now as it contains substantial differences.

  8. The avidemux conflict issue that MASHtm mentioned back on March 31, 2016 bears revisiting, I think. The problem is that the latest negativo17 x265-libs is incompatible with rpmfusion’s avidemux (whereas the previous x265-libs-1.9-1.fc24.x86_64 caused no rpmfusion conflicts), and as the rpmfusion x265-libs is incompatible with negativo17 packages there’s no dependency solution that eliminates all conflicts.

    So, on my F24 box with negativo17 installed, every upgrade run results in a bunch of skipped packages (ultimately due to having rpmfusion avidemux-qt installed) and I’m stuck at the previous negativo17 versions:

    % sudo dnf upgrade     
    Skipping packages with broken dependencies:
     HandBrake-gui  x86_64 1.0-30.20161006git88807bb.fc24    fedora-HandBrake 9.1 M
     ffmpeg         x86_64 1:3.1.5-1.fc24                    fedora-HandBrake 1.4 M
     ffmpeg-devel   x86_64 1:3.1.5-1.fc24                    fedora-HandBrake 708 k
     ffmpeg-libs    x86_64 1:3.1.5-1.fc24                    fedora-HandBrake 6.1 M
     gstreamer1-plugins-bad
                    x86_64 1:1.8.3-2.fc24                    fedora-HandBrake 2.2 M
     libavdevice    x86_64 1:3.1.5-1.fc24                    fedora-HandBrake  65 k
     vlc            x86_64 1:3.0.0-8.20161012git756dbb7.fc24 fedora-HandBrake 1.4 M
     vlc-core       x86_64 1:3.0.0-8.20161012git756dbb7.fc24 fedora-HandBrake 8.6 M
     x265-devel     x86_64 1:2.1-2.fc24                      fedora-HandBrake  79 k
     x265-libs      x86_64 1:2.1-2.fc24                      fedora-HandBrake 1.6 M
     
    % sudo dnf list installed avidemux-qt x265-libs HandBrake-gui
    Installed Packages
    HandBrake-gui.x86_64     1.0-26.6b5d91a.fc24     @fedora-HandBrake              
    avidemux-qt.x86_64       2.6.12-6.fc24           @rpmfusion-free-updates
    x265-libs.x86_64         1:1.9-2.fc24            @fedora-HandBrake

    Whereas, on my other box with rpmfusion avidemux installed but no negativo17, installing and enabling the fedora-HandBrake repo results in those same skipped packages on upgrade attempt, and because the versions currently installed are the rpmfusion packages, negativo17 HandBrake can’t be installed at all unless rpmfusion avidemux-qt is removed from the system:
    % sudo dnf install HandBrake-gui
    Last metadata expiration check: 0:21:04 ago on Sun Oct 30 19:41:48 2016.
    Error: package HandBrake-gui-1.0-30.20161006git88807bb.fc24.x86_64 requires libx
    265.so.95()(64bit), but none of the providers can be installed

    % sudo dnf install HandBrake-gui --allowerasing
    Installing:
     HandBrake-gui x86_64 1.0-30.20161006git88807bb.fc24     fedora-HandBrake 9.1 M
     aribb25       x86_64 0.2.7-1.fc24                       fedora-HandBrake  36 k
     gstreamer1-plugins-bad
                   x86_64 1:1.8.3-2.fc24                     fedora-HandBrake 2.2 M
         replacing  gstreamer1-plugin-openh264.x86_64 1.6.1-2.fc24
         replacing  gstreamer1-plugins-bad-free.x86_64 1.8.3-1.fc24
         replacing  gstreamer1-plugins-bad-freeworld.x86_64 1.8.2-1.fc24
     kvazaar-libs  x86_64 0.8.3-1.fc24                       fedora-HandBrake 172 k
     libde265      x86_64 1.0.2-3.503af19.fc24               fedora-HandBrake 290 k
     libdvdcss     x86_64 1.4.0-1.fc24                       fedora-HandBrake  69 k
     libfdk-aac    x86_64 1:0.1.5-6.20160924gitcb57d89.fc24  fedora-HandBrake 389 k
     libmfx        x86_64 1.16-1.20160317git7adf2e4.fc24     updates           33 k
     libvo-aacenc  x86_64 0.1.3-1.fc24                       fedora-HandBrake  77 k
     qt5-qtwayland x86_64 5.6.1-1.fc24                       updates          561 k
     spandsp       x86_64 0.0.6-0.15.pre21.fc24              fedora           294 k
    Upgrading:
     ffmpeg        x86_64 1:3.1.5-1.fc24                     fedora-HandBrake 1.4 M
     ffmpeg-devel  x86_64 1:3.1.5-1.fc24                     fedora-HandBrake 708 k
     ffmpeg-libs   x86_64 1:3.1.5-1.fc24                     fedora-HandBrake 6.1 M
     libavdevice   x86_64 1:3.1.5-1.fc24                     fedora-HandBrake  65 k
     vlc           x86_64 1:3.0.0-8.20161012git756dbb7.fc24  fedora-HandBrake 1.4 M
     vlc-core      x86_64 1:3.0.0-8.20161012git756dbb7.fc24  fedora-HandBrake 8.6 M
     x265-devel    x86_64 1:2.1-2.fc24                       fedora-HandBrake  79 k
     x265-libs     x86_64 1:2.1-2.fc24                       fedora-HandBrake 1.6 M
    Removing:
     avidemux-qt   x86_64 2.6.12-6.fc24                      @rpmfusion-free-updates
                                                                              3.9 M
    1. I’m just uploading new builds and versions with quite a few changes that include also an Avidemux build contains also support for NVENC and some other changes.
      I’m preparing the blog post now as it contains substantial differences. Please test when they are available.

  9. hi, you don’t provide instruction about how to install Gstreamer1.. is it on purpose because it gets pulled automatically or could you please provide a command for the newbies out there? Many thanks

    1. The instructions are in the Multimedia repository page. If you have them installed, they will get updated.
      They are pulled in as dependencies if other packages require them; but they are usually a leaf package.

Leave a Reply