Intel QSV for 4K - 3D usage at 80%, VIdeo Decode at 35%

regstuff

Member
I've been playing around with Quicksync and seeing how it works out in a 4K encode scenario.
I've got the video coming in via a blackmagic capture card. I'm on Windows 10.

What I noticed is that while recording in 4K (with canvas also at 4K), the task manager's (under the Performance tab) GPU performance shows around 70-80% under the 3D graph and 30-40% on the Video Decode graph.

I've read that with NVENC, encoding or decoding workloads run separate from the execution of graphics or CUDA workloads. Am trying to understand if the integrated GPU has something similar, where it manages 3D and the Decode functionalities separately and simultaneously, and the percentages I see dont need to be added up to mean that the GPU is functioning at 120% (which would be impossible).

Thanks
 

qhobbes

Active Member
I'm pretty sure the 3D graph is for rendering the canvas. When I disable on my system (not sig) it drops from 47% to 14%. Right click on canvas to disable.
"Quick Sync is a dedicated hardware core on the processor die."-Wiki Pedia
 

regstuff

Member
Sorry not sure I follow. Right click on canvas to disable what exactly? Are you talking about disabling studio mode?
Minimizing OBS does reduce the 3D load from around 70-80% to around 55%.
So the canvas rendering load does not affect the encoding portion of the iGPU?
 

koala

Active Member
As far as I learnt, Quicksync uses some universal computing resources of the iGPU. So the workload during an active Quicksync recording is higher than just the compositing alone.

There might be a misunderstanding when and how OBS needs and uses GPU resources.

The most important part is the compositing. You don't see it, because it is internal. It's an internal frame buffer allocated by OBS, where OBS resizes and overlays all sources and applying filters. Filters are running on the GPU, source resizing and transformation as well. The frame buffer contains the rendered image you're sending out for streaming or saving to disk as file. This compositing takes place as soon as OBS is started and is always active. The more sources and filters you use, the more GPU resources the compositing needs.

The second part is the preview. Its lightweight. It's just the visualization of the compositing frame buffer. If you disable the preview, you save a minor amount of GPU resources, probably negligible.

The third part is the encoding. For a hardware encoder, the hardware encoder circuit will operate according to how it is built - for Quicksync and AMD VCE it needs a bit of GPU resources, for Nvidia's nvenc it's free because the circuit is dedicated. For software encoder there's still some kind of resource demand, because the video data needs to be copied from GPU memory to CPU memory.
Depending on he actual GPU and encoder, processing can be lightweight to heavyweight. On a Nvidia GPU with nvenc (new) it's kind of lightweight, almost negligible, while on a slow CPU with x264 software encoder it is so heavyweight, it consumes the most part of all computing resources of the whole computer.

tl;dr
To reduce GPU resources, the most impact is reducing the canvas size and to use as less filters as possible. If you use an output resolution less than the canvas resolution, you can save GPU resources by shrinking the canvas resolution to the output resolution. Also big impact is the fps. An output fps of 60 needs double the GPU resources than a fps of 30, because double the images have to be processed.
 

regstuff

Member
@koala
Thanks for the explanation. I'm still unclear about one point: For the integrated GPU in an Intel chip, is the "circuit" or the resources that handle compositing separate from the resources that handle the encoding (if Quicksync is chosen as encoder in OBS)?
 

koala

Active Member
Probably not separate. The resources that handle compositing is the general 3D CPU resource that is also used by the Windows desktop or by games. As far as I know, for encoding at least part of these computing resources are also being used. Exactly how much of the encoder is standalone and how much resources are shared is unknown. GPUs have a large number of computing cores (1000 and above), as graphics processing can be massively parallelized. Intel and AMD GPU developers just took a few of these cores to run their encoder.
 
Top