rigaya / NVEnc

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

Converting to HDR and SuperResolution uspcaling returns error #630

Closed feureau closed 1 week ago

feureau commented 1 week ago

Hi, thanks again for this amazing program.

I think this used to work because I ran this a few times before, but now when converting to HDR and running superresolution in the same command the HDR conversion will fail with this error:

cspconv: error at convert_from_rgb_list(rgba(fp16) -> rgb(fp32)): cudaErrorUnknown: This indicates that an unknown internal error has occurred.. ngx-truehdr: Failed to copy frame to cudaArray: cudaErrorInvalidResourceHandle: This indicates that a resource handle passed to the API call was not valid. Resource handles are opaque types like ::cudaStream_t and ::cudaEvent_t.. Error while running filter "ngx-truehdr".

Here's the command line I use:

NVEncC64 --codec hevc --tier high --profile main444 --output-csp yuv444 --cqp 12 --preset p4 --output-depth 10 --multipass 2pass-full --lookahead 32 --lookahead-level 3 --nonrefp --aq --aq-temporal --aq-strength 0 --transfer auto --audio-copy --chapter-copy --key-on-chapter --metadata copy --vpp-ngx-truehdr maxluminance=1000 --colormatrix bt2020nc --colorprim bt2020 --transfer smpte2084 --vpp-nvvfx-artifact-reduction mode=0 --vpp-resize algo=nvvfx-superres,superres-mode=1,superres-strength=1.0 --output-res 2160x2160,preserve_aspect_ratio=increase -i %%A -o %%A_4KHDR_.mkv

Here's the full log file: nvencc.log

However, this works if I run this with --profile main10 instead of --profile main444 --output-csp yuv444. So I guess it's something to do with that.

Full command line that works:

NVEncC64 --codec hevc --tier high --profile main10 --cqp 12 --preset p4 --output-depth 10 --multipass 2pass-full --lookahead 32 --lookahead-level 3 --nonrefp --aq --aq-temporal --aq-strength 0 --transfer auto --audio-copy --chapter-copy --key-on-chapter --metadata copy --vpp-ngx-truehdr maxluminance=1000 --colormatrix bt2020nc --colorprim bt2020 --transfer smpte2084 --vpp-nvvfx-artifact-reduction mode=0 --vpp-resize algo=nvvfx-superres,superres-mode=1,superres-strength=1.0 --output-res 2160x2160,preserve_aspect_ratio=increase -i %%A -o %%A_4KHDR_.mkv

Can you see what's wrong with this please? Thank you.

Thanks in advance!

rigaya commented 1 week ago

Thank you for the detailed report.

I've checked using the same command line, but unfortunately(?) it worked fine for me, at RTX4080. However, I also noticed it was taking up to 11GB of GPU memory, as nvvfx filters uses large size of memory.

Using --profile main10 instead of --profile main444 --output-csp yuv444 does reduce GPU memory usage to around 9GB.

There might be a case that RTX 4070 Super run out of GPU memory with other process using GPU memory. Would you please check GPU memory usage from task manager? If it is close to the limit, it might be the cause.

feureau commented 1 week ago

Thank you for getting back to me so quickly!

I tried it again, and for whatever reason, it runs perfectly now! So, I don't know what's causing the error yesterday. On the 4070Super it took up about 10 GB of memory and completed the command just fine using -profile main444 --output-csp yuv444 and both vpp filters on.

Thanks again for the quick response! Sorry this turned out to be a wild goose chase.