Closed DP-Huanhuan closed 4 months ago
I can't even get the QSV AV1 option to show up at all. Consider yourself lucky. I have an A310 and a 13900k+UHD 770.
According to logs OBS selects RTX4090 as GPU to use
Adapter 0: NVIDIA GeForce RTX 4090
....
>>> app not on intel GPU, fall back to old qsv encoder
Have you followed these steps to select ARC 770 as GPU to use with OBS? https://obsproject.com/kb/gpu-selection-guide
What comes to hyper encoding, is does not work with OBS. I have 12th gen CPU id HD730 iGPU and ARC 750 and AV1 runs on ARC adapter but it does not share load with iGPU.
I can confirm this behavior occurs even on an Intel+Intel (iGPU+dGPU; Iris Xe + Arc A770M) system if OBS is running on the iGPU. The key factor here is that the GPU OBS is running on does not have QSV AV1 capabilities, and the non-texture sharing fallback is failing. This has been reported to Intel.
This doesn't actually fix anything, but some things I noticed..
I have a MultiGPU setup in a AMD based Single PC setup 6700xt and a Arc 380 for the hardware encoder and OBS doesn't know how to deal with MultiGPU systems on a SinglePC MultiGPU Windows PC.
One thing that got me concerned and what ultimately brought this bug to my attention was the fact that when I was trying to use "FULL SCREEN PROJECTOR (Preview)" kept selecting the wrong display even when I clearly selected my other display connected to the other GPU. Then reviewing the log I found it wasn't even using the GPU encoder to its full potential, the the intel QSV encoder does use the GPU but obviously a lesser quality because it's not as up to date. I noticed this in other ffmpeg based apps.
21:34:20.708: Adapter 0: AMD Radeon RX 6700 XT 21:34:20.708: Dedicated VRAM: 12836904960 (12.0 GiB) . . 21:34:20.708: Adapter 1: Intel(R) Arc(TM) A380 Graphics 21:34:20.708: Dedicated VRAM: 6350176256 (5.9 GiB) . . 21:38:22.276: >>> app not on intel GPU, fall back to old qsv encoder
This solved a few OBS bugs or how it interacts with windows, but doesn't actually fix anything
First thing you will notice it the app will actually OPEN on the other display, A know bug reported on another thread where the app doesn't remember what display to open up on even if your drag it there. Mainly Multi GPU version of this bug, as it still doesn't fix single GPU issue when it happens.
Second thing this fixed is that I can "Fullscreen Projector Preview" on the any correct Display. if I have OBS open on the intel arc GPU it can still "Fullscreen Projector Preview" to my Main display or the second display. Selecting the different displays actually works.
In the LOG you will now see....
18:52:50.931: >>> new qsv encoder when recording but..... this doesn't fix anything because now it can't capture outside of this GPU. as reported by RytuEX
20:09:53.445: gs_texture_open_shared (D3D11): Failed to open shared 2D texture (80070057) 20:09:53.445: [game-capture: 'Game Capture'] init_shtex_capture: failed to open shared handle
EDIT UPDATE: 2D texture copying across two different GPU doesn't work in OBS and this is not a limitation in OBS itself, but a perhaps a restriction on the hardware or OS level.
So once you have this setup the only way to capture from the other GPU is DISPLAY capture. "Window Capture" & "Game Capture" does not work once you pair the app with GPU you want to hardware encode
You have to use Display Capture Windows -> Properties -> Capture Method -> "Windows 10 (1903 and Up)"
The default is DXGI and this will not work.
Because everything is capture this less then ideal if your have personal stuff all over the desktop. so hotkey this capture mode to toggle it on and off if your stream live with this setup.
This should be resolved as of OBS Studio 30.2.0 Beta 1 with #10170 and #10740.
Operating System Info
Windows 11
Other OS
No response
OBS Studio Version
30.0.0
OBS Studio Version (Other)
No response
OBS Studio Log URL
https://obsproject.com/logs/VxNFhER0pOkkr7d8
OBS Studio Crash Log URL
No response
Expected Behavior
The setup: GPU 0: UHD 770 in 13900K GPU 1: RTX 4090 GPU 2: Intel A770
Expected Behavior: When QSV encoders selected, tasks runs on GPU 2. Access to Intel Hyper Encoding which allows to share task between iGPU and dGPU and the option to choose which GPU to use would be even better.
Current Behavior
QSV H264&H265 runs on GPU 0. Zero activity on GPU 2. QSV AV1 fails because it is only supported by GPU 2. If all QSV encoder runs on GPU 0, it will certainly fail when it comes to AV1.
Steps to Reproduce
Anything else we should know?
Driver/OS/OBS everything is the latest. There are two GPU from different vendors installed, which might be the cause. Tried to disable the hardware accelerated GPU scheduling. Nothing changed.