obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
60.18k stars 7.97k forks source link

QSV AV1 - Encoding fails when QSV capable iGPU and Arc GPU are present in the same system #7837

Closed shenef closed 1 year ago

shenef commented 1 year ago

Operating System Info

Windows 11

Other OS

No response

OBS Studio Version

Other

OBS Studio Version (Other)

commit fceee90 automated build artifact

OBS Studio Log URL

https://obsproject.com/logs/8A71kjTgtUvMSDd4

OBS Studio Crash Log URL

No response

Expected Behavior

Encode an AV1 video stream into a mkv container.

Current Behavior

Recording failed.

Steps to Reproduce

  1. Open Settings > Output Mode Simple
  2. For Recording select High Quality, format MKV and QSV AV1 as the encoder
  3. Try to record

Anything else we should know?

Looking at the log, it seems to have tried encoding with the iGPU of my CPU which does not support AV1 encoding. However the Arc A770 16GB that is GPU 0 does support AV1 encoding.

shenef commented 1 year ago

I have confirmed the encoding works fine if the iGPU is disabled in BIOS.

jp9000 commented 1 year ago

Annoyingly, I have a system with both Arc dGPU and iGPU, I'm not getting that.

shenef commented 1 year ago

I've now upgraded to 29.0 Beta 1 and i was able to replicate the problem multiple times. Encoding never starts when the iGPU is enabled and it can start when the iGPU is disabled.

Now on Beta 1 the recording often does not start on the first try. Log: https://obsproject.com/logs/6gO8nf-lXa-_lymt Going back to the fceee90 artifact, encoding still starts reliably (if no iGPU is present).

jlambert360 commented 1 year ago

The problem might be you can't use AV1 when running OBS on your non arc gpu. When running on my 3060ti it gives an error. image If I run OBS on my A380 it works fine though. Guessing this is a bug since you can still use NVENC while OBS is running on a non-nvidia gpu?

DedZasshu commented 1 year ago

Having an issue where QSV AV1 doesn't show up as an option even if I set OBS to run on the A380.

Some days ago back in obs-qsv11 add AV1 pull request page, some artifact builds were made that allowed QSV AV1 encode to work even with OBS running on a non-ARC GPU.

The very recent changes (1-3 days ago) made the QSV Encoder (h264/hevc/av1) not work when OBS is running on a non-ARC GPU and now wouldn't show QSV AV1 as an option even with an A380 installed and running (on my setup, anyway).

RytoEX commented 1 year ago

Thank you for the feedback. For now, we do not need more confirmation that this is occurring.

RytoEX commented 1 year ago

Please retest in OBS Studio 29 Beta 3 or newer.

DedZasshu commented 1 year ago

Please retest in OBS Studio 29 Beta 3 or newer.

Working well.

jlambert360 commented 1 year ago

Working great for me.

shenef commented 1 year ago

29 Beta 3 image https://obsproject.com/logs/_zrEEb6rC7Lq79QG

After that i went through the Laptop troubleshooting guide (I'm not using a laptop but the log analyzer says it's using the iGPU) and switching OBS from "Let windows decide" to the Arc A770, the error persists. https://obsproject.com/logs/6Q11x5f65HRWXK8i

Just to confirm, QSV HEVC and H.264 work fine and the iGPU shows additional load. So the problem still seems to be that OBS starts on the iGPU instead of dedicated. After disabling the iGPU in BIOS, QSV AV1 encoding works fine.

RytoEX commented 1 year ago

OBS being forced onto the iGPU is a different issue, at the moment. That will be resolved in a later update.

shenef commented 1 year ago

I see, then the root cause seems to be what was described in #7917 and this can be closed as a duplicate of that.