Question / Help CPU encoding, does the GPU benefit us?

Grumbul

Member
Hi all, a simple question (I hope).
So lets take the basic scenario. Streaming a PC game via a capture card using a dedicated Stream rig,
The rig uses the CPU to encode the stream (x264).
What/when would the rig benefit from a GPU if the only purpose of the rig is to encode?

For example, would it help with anything such as StreamLabs overlays/popups/bitcups?
 
I believe the GPU is used to composite the different sources and everything you see in the OBS Preview window into an actual frame of video, which the CPU then encodes.

I *think* at minimum you need a GPU that supports DirectX 11, but dont quote me on that
 

Grumbul

Member
Thanks macharborguy. Anyone else got anything to add or personal experience with this?
For example would a GTX670 be just as good as a GTX1070 in this (presumably) small part of the encoding process.
I have in the past streamed with just an i5 and no graphics card at all for example.
 

Grumbul

Member
Really hate to bump this but it seems quite an important topic that evidently there seems to be some confusion/lack of information about.
Anyone able to shed some light on this at all?
 

BK-Morpheus

Active Member
I can only confirm, that the GPU is doing the scene composition (rendering the scene) and scaling.
This should work with slow or integrated GPUs, as long, as they are Direct X 10.1 or higher:

https://obsproject.com/wiki/System-Requirements

On my GTX 1070 a 1440p 60fps scene with down scaling to 720p (using lanczos filtering) the GPU load is 5-10% at full 3D clocks on the GPU.
This includes some 2 browser sources, webcam (including filters and lanczos scaling).

On a 2-PC setup, your streaming PC will not benefit from a fast GPU, if the encoding is done by x246@CPU anyway.
 

Grumbul

Member
That's what is so strange about this. I used a stream PC with no graphics card (just an i53570k for over a year with no issues at all.
So you certainly don't need one.
It just seems this is never discussed but occasionally folks mention it helps with the myriad of browser sources and plugins like StreamLabs jars etc.
All just seems rather 'wishy-washy' as to what is really needed.
 

Harold

Active Member
OBS does some of its work (color space conversion when using default color spaces), scene composition and some downscaling on GPU. Complex scenes, media sources with animated gifs, excessive numbers of browser sources and other such things can all have a massive impact on the graphics card requirements.
 

FerretBomb

Active Member
Chiming in, a dedicated GPU is very strongly recommended, as GDDR VRAM is significantly faster than using an iGPU, which has to use an allocated section of system RAM. If you're only streaming at 30fps you can probably get away with it, but the scene composition time for 60fps streaming needs to be complete and encoded in under 16ms to avoid skipping frames and maintain smooth playback. An iGPU can cause this to happen very easily, especially in conjunction with more complex scene layouts with 'heavy' elements and lots of filters, and at higher resolutions. It's a significant bottleneck.

Will it *work* without a discrete GPU? Sometimes.
Is it a good idea? Absolutely not.

That said, there's no need to splash out on a 1080 for a dedicated encoding machine. A budget GPU with a lot of memory and full DX11 hardware support will generally work just as well. You'd want to look for fast memory, and PCIe 3.0 16x support. Transport bandwidth across the PCIe bus actually matters in this case due to its time-critical nature, rather than just shortening game load times.

So yeah, a GTX670 would work well. Just avoid the GTX 200-series, they had memory handler issues that resulted in slow transport and access times, and generally couldn't sustain a solid compositing rate above around 15-25fps. I know, because I got hit by that back in the day.
 
Top