NVIDIA / NVIDIA/open-gpu-kernel-modules

NVENC and NVDEC don't work on ARM64 platform

Open
#514 10 comments 0 reactions 1 assignee View on GitHub

@amrit1711 is already working on this.

Since Jun 16, 2023.

bug NV-Triaged
Dominant language
C
Stars
17.4k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

NVIDIA Open GPU Kernel Modules Version

530.41.03

Does this happen with the proprietary driver (of the same version) as well?

I cannot test this

Operating System and Version

Gentoo Linux

Kernel Release

Linux Hacc-AIO 6.1.28-gentoo-arm64 #1 SMP Sat Jun 3 20:33:06 CEST 2023 aarch64 GNU/Linux

Hardware: GPU

NVIDIA GeForce GTX 1660 SUPER

Describe the bug

I can't using NVENC and NVDEC on ARM64 platform, even with the the sample code in Nvidia Video Codec SDK. Btw CUDA works greate with open source kernel modules.

To Reproduce

Install Nvidia driver and CUDA Toolkit, compile sample code in Video Codec SDK, and run

./AppDec -i test.mkv -o ouput.mp4 
GPU in use: NVIDIA GeForce GTX 1660 SUPER
Decode with demuxing.
[INFO ][21:00:24] Media format: QuickTime / MOV (mov,mp4,m4a,3gp,3g2,mj2)
Session Deinitialization Time: 0 ms 
HandleVideoSequence : cuvidCreateDecoder(&m_hDecoder, &videoDecodeCreateInfo) returned error 2 at /home/hacc/Video_Codec_SDK_12.1.14/Samples/NvCodec/NvDecoder/NvDecoder.cpp:362
./AppEncCuda -i test.mkv -o output.mp4 -s 1920x1080
GPU in use: NVIDIA GeForce GTX 1660 SUPER
[INFO ][21:00:55] Encoding Parameters:
        codec        : h264
        preset       : p3
        tuningInfo   : hq
        profile      : (default)
        chroma       : yuv420
        bitdepth     : 8
        rc           : vbr
        fps          : 30/1
        gop          : 250
        bf           : 1
        multipass    : 0
        size         : 1920x1080
        bitrate      : 0
        maxbitrate   : 0
        vbvbufsize   : 0
        vbvinit      : 0
        aq           : disabled
        temporalaq   : disabled
        lookahead    : disabled
        cq           : 0
        qmin         : P,B,I=0,0,0
        qmax         : P,B,I=0,0,0
        initqp       : P,B,I=0,0,0
CreateEncoder : m_nvenc.nvEncInitializeEncoder(m_hEncoder, &m_initializeParams) returned error 20 at /home/hacc/Video_Codec_SDK_12.1.14/Samples/NvCodec/NvEncoder/NvEncoder.cpp:316
Bug Incidence

Always

nvidia-bug-report.log.gz

nvidia-bug-report.log.gz

More Info

I'm using a ARM motherboard with Ampere eMAG 8180 SoC, exactly the same board as in this article.
This card does not work on this machine with the proprietary driver.
I will get

[  423.603395] NVRM: GPU 0000:08:00.0: RmInitAdapter failed! (0x23:0x65:1413)
[  423.606671] NVRM: GPU 0000:08:00.0: rm_init_adapter failed, device minor numb er 0

My kernel is compiled using the following configuration file:
kernel-config-6.3.3-gentoo-arm64.gz

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.