rigaya / NVEnc

NVENCによる高速エンコードの性能実験
https://rigaya34589.blog.fc2.com/blog-category-17.html
Other
1.1k stars 114 forks source link

H.264 not available on a 3000 series card #347

Closed amq closed 4 months ago

amq commented 3 years ago

hi, thanks for your great project! I recently bought a new laptop with a 3070, but for some reason, H.264 doesn't show up in the Available Codec(s) list. What could theoretically cause this? I have the latest driver (471.11)

NVEncC64.exe --check-hw
NVEncC (x64) 5.34 (r1978) by rigaya, Jun 15 2021 19:53:42 (VC 1929/Win)
  [NVENC API v11.0, CUDA 10.1]
 reader: raw, y4m, avi, avs, vpy, avsw, avhw [H.264/AVC, H.265/HEVC, MPEG2, VP8, VP9, VC-1, MPEG1, MPEG4, AV1]
InitCuda: device #0.

Checking Environment Info...
NVEncC (x64) 5.34 (r1978) by rigaya, Jun 15 2021 19:53:42 (VC 1929/Win)
OS Version     Windows 10 x64 (22000)
CPU            AMD Ryzen 7 5800H with Radeon Graphics [4.18GHz] (8C/16T)
cuInit: Success.
cuvidInit: Success.
InitCuda: Success.
cuDeviceGetCount: Success.
gpuinfo: checking for device #0.
gpuinfo:   cuDeviceGet(0): success
gpuinfo:   cuDeviceGetName(0): NVIDIA GeForce RTX 3070 Laptop GPU
gpuinfo:   cudaDeviceGetAttribute: CUDA 8.6
gpuinfo:   PCIBusId: 0000:01:00.0
gpuinfo:   Got GPU Info from NVML.
gpuinfo:   NV Driver version: 471110.
gpuinfo:   CUDA Driver version: 11040.
gpuinfo: using cuda schedule mode: auto.
gpuinfo: cuCtxCreate: Success.
gpuinfo: cuCtxPopCurrent: Success.
gpuinfo: cuvidCtxLockCreate: Success.
nvenc : Loaded nvEncodeAPI64.dll.
nvenc : nvEncodeAPICreateInstance(APIVer=0x7002000b): Success.
nvenc : Opened Encode Session (API ver 11.0)
nvenc : NvEncOpenEncodeSessionEx(device_type=NV_ENC_DEVICE_TYPE_CUDA): Success.
gpuinfo:   createDeviceFeatureList
InitDeviceList: Success.
#0: NVIDIA GeForce RTX 3070 Laptop GPU (5120 cores, 1560 MHz)[PCIe3x16][471.11]
Avaliable Codec(s)
H.265/HEVC
gpuinfo: Closing device #0: NVIDIA GeForce RTX 3070 Laptop GPU...
gpuinfo: Closing Encoder...
nvenc : nvEncDestroyEncoder...
nvenc : nvEncDestroyEncoder: success.
gpuinfo: Closed Encoder.
gpuinfo: Closed cuvid Ctx Lock...
gpuinfo: Closed cuvid Ctx Lock.
gpuinfo: Closed CUDA Context...
gpuinfo: Closed CUDA Context.
gpuinfo: Closed device #0: NVIDIA GeForce RTX 3070 Laptop GPU.
Closed EncodeStatus.
Closing perf monitor...
Closing logger...
NVEncC64.exe --check-features
NVEncC (x64) 5.34 (r1978) by rigaya, Jun 15 2021 19:53:42 (VC 1929/Win)
  [NVENC API v11.0, CUDA 10.1]
 reader: raw, y4m, avi, avs, vpy, avsw, avhw [H.264/AVC, H.265/HEVC, MPEG2, VP8, VP9, VC-1, MPEG1, MPEG4, AV1]

Environment Info
OS : Windows 10 x64 (22000) [UTF-8]
CPU: AMD Ryzen 7 5800H with Radeon Graphics [4.44GHz] (8C/16T)
RAM: Used 6270 MB, Total 28540 MB

#0: NVIDIA GeForce RTX 3070 Laptop GPU (5120 cores, 1560 MHz)[PCIe3x16][471.11]
NVEnc features
Codec: H.265/HEVC
Encoder Engines           1
Max Bframes               5
B Ref Mode                3 (each + only middle)
RC Modes                  63
Field Encoding            0 (no)
MonoChrome                no
Quater-Pel MV             yes
B Direct Mode             no
Max Temporal Layers       0
Hierarchial P Frames      no
Hierarchial B Frames      no
Max Level                 186 (6.2)
Min Level                 30 (1)
4:4:4                     yes
Min Width                 129
Max Width                 8192
Min Height                33
Max Height                8192
Multiple Refs             yes
Max LTR Frames            7
Dynamic Resolution Change yes
Dynamic Bitrate Change    yes
Forced constant QP        yes
Dynamic RC Mode Change    no
Subframe Readback         yes
Constrained Encoding      yes
Intra Refresh             yes
Custom VBV Bufsize        yes
Dynamic Slice Mode        yes
Ref Pic Invalidiation     yes
PreProcess                no
Async Encoding            yes
Max MBs                   262144
Lossless                  yes
SAO                       yes
Me Only Mode              1 (I,P frames)
Lookahead                 yes
AQ (temporal)             yes
Weighted Prediction       yes
10bit depth               yes

NVDec features
  H.264/AVC:  nv12, yv12
  H.265/HEVC: nv12, yv12, yv12(10bit), yv12(12bit), yuv444, yuv444(10bit), yuv444(12bit)
  MPEG1:      nv12, yv12
  MPEG2:      nv12, yv12
  MPEG4:      nv12, yv12
  VP8:        nv12, yv12
  VP9:        nv12, yv12, yv12(10bit), yv12(12bit)
  VC-1:       nv12, yv12
  AV1:        nv12, yv12, yv12(10bit)
rigaya commented 3 years ago

I've checked some items, but currently unabled to find out the cause.

I've tested 471.11 driver my self with RTX2070, but didn't have problem. Also, I got a --check-features result from a RTX3080 user which seemed to be fine (but with a old driver)), so it doesn't seem to be a RTX3xxx series problem.

Might be Windows version? Windows 10 21H2 should show Windows 10 x64 (19043), but you get Windows 10 x64 (22000).

rigaya commented 4 months ago

I’ll close this issue as there is no conversation for a long time.