Question / Help Various Graphics Card Questions

Boildown

Active Member
I have a few questions regarding how video cards are utilized in OBS. First I want to explain that I stream to a second computer, and instead of streaming, to date all I've done (with a few exceptions) is save to a file on the hard drive. This past weekend I upgraded my primary CPU, and passed my old primary CPU down to my capture card computer, so I plan to start actual streaming as soon as I'm done testing settings.

1A) How would you characterize the effect the speed of the video card has on OBS performance?

Until this past weekend, my capture/recording PC was a relatively slow Intel E4300 Core2Duo. In it I had a GTX560 Ti, and it was able to capture 720p @30fps on the ultra-fast preset (whatever the fastest preset available is). When I was doing my CPU upgrade this weekend, I temporarily put a GTX 260 in it, figuring that the bottleneck was the CPU anyways, but it then couldn't encode more than about 20-24 fps. It seems even on a quite old CPU, the GPU was somehow still a bottleneck. This surprised me.

2B) Which aspect(s) of a video card are most important for OBS? I'm looking for something like Stream Processors, Texture Units, quantity of VRAM, Memory Bus Width, etc. What should I maximize if I were to get a new dedicated OBS GPU?

3C) I was reading up on rc-lookahead, because that's the only thing sped up by turning on the OpenCL feature of the test version. It seems that for x264, even the very slow and placebo presets doesn't use a value of rc-lookahead greater than 60 because (in addition to diminishing returns) they don't want the encoder to run out of memory. Apparently this setting chews up memory in direct proportion to its value. On my new encoding system using OBS (2600k), I was able to use the Medium preset, and checking the resultant files' MediaInfo, the rc-lookahead was set to 40.

What memory does this use, system RAM or video card VRAM, when using and not using OpenCL? Should I worry about running out of it (if VRAM answer seems to almost certainly be "yes") if I set a higher rc-lookahead to take advantage of the OpenCL more?


Thanks!
 

FerretBomb

Active Member
The more technical details, Jim or one of the other coding-types may have to address.
As far as the video card goes, it's handling the game and compositing the scene prior to rendering... a GTX260 should have no problems with that though. It's more likely there's another issue somewhere; you'll need to post your log for us to get a better look at what that may be. If you didn't clean-uninstall the drivers from the 560Ti and install new for the (temporary) 260, it may have been running in driverless '2D compatability' mode, which will be slower than a snail on valium.

Just to be clear, you say that you're using two machines; is one your 'gaming' system, with a spare monitor output mirrored and fed into a capture card/device on the second machine which is then running OBS? Which brand/model, if so? Or is OBS running on your primary gaming system, and feeding the composited, encoded output to another machine on your network to try to act as an RTMP repeater type of setup?

I also have to ask; is there a particular reason you're running a two-system setup? Usually the added complexity (and associated additional potential points of failure) just isn't worth it, unless there's another problem that needs to be addressed.
 

Boildown

Active Member
FerretBomb said:
The more technical details, Jim or one of the other coding-types may have to address.
As far as the video card goes, it's handling the game and compositing the scene prior to rendering... a GTX260 should have no problems with that though. It's more likely there's another issue somewhere; you'll need to post your log for us to get a better look at what that may be. If you didn't clean-uninstall the drivers from the 560Ti and install new for the (temporary) 260, it may have been running in driverless '2D compatability' mode, which will be slower than a snail on valium.

Just to be clear, you say that you're using two machines; is one your 'gaming' system, with a spare monitor output mirrored and fed into a capture card/device on the second machine which is then running OBS? Which brand/model, if so? Or is OBS running on your primary gaming system, and feeding the composited, encoded output to another machine on your network to try to act as an RTMP repeater type of setup?

I also have to ask; is there a particular reason you're running a two-system setup? Usually the added complexity (and associated additional potential points of failure) just isn't worth it, unless there's another problem that needs to be addressed.

I don't have a log of the E4300 with the GTX260, and I'm not going to get one either, as the video capture card has been moved to the new encoder system. I could put the GTX260 in the new encoder PC for testing purposes, but I'm more interested in theoretical answers, not my particular case. There is no brand/model for my computers, each is home built. I just posted it to illustrate where I'm coming from in asking the question.

I run a two-system setup because Planetside 2 and Aces High are my games of interest, and they are CPU-bound and have no "cycles" that I wish to sacrifice to stream. I use a cloned display on my primary PC to send an HDMI signal to an Avermedia Live Gamer HD in the encoder PC. Thus, zero CPU-impact streaming. As it happens, I have some video of how this is done here: http://www.youtube.com/watch?v=G15dMwGKGF0 . I find there's actually fewer points of failure and less complexity, because the encoder PC doesn't care what goes on on the gaming PC, it just captures and streams everything (even when the game crashes, for example, which PS2 does a lot).
 

FerretBomb

Active Member
More was asking about the capture card brand/model, as you seemed to be technically literate, so the self-build was almost expected.

Yes, quite aware of the offload capabilities of a secondary encoding machine, and how to set one up... just for a majority of games, with the right tweaking, it's flatly unnecessary. The zero-impact is nice, but I've found it to be more hassle than it's worth, in my case; getting audio across, choosing between inability to use in-game VoIP (plugged into the encoding machine), or being stuck with the mic being audible and non-adjustable (plugged into the gaming machine). Or dealing with a preamp and splitter, with the electrical Fun(tm) that could potentially be caused by bridging the systems (and grounds) in a potentially non-buffered way. :)

On the encoding machine, the video card should only be handling compositing the scene. The GTX260 (with drivers installed) should be able to handle that without a hint of a problem. There's no need to get a new GPU, as I do not believe that OBS is CUDA-enabled at this point, and OpenCL is rudimentary/testing. If I was in your shoes, I'd just wait until it became an issue, rather than trying to address it beforehand. So long as the graphics card is a full DX10-enabled unit (if it's not, OBS just won't run), the CPU is the important bit when it comes down to the encoder machine. Your 560Ti should serve you well into the future.
 

Boildown

Active Member
Nevertheless, with a GTX260, performance was noticeably worse than with a 560Ti. And that was with a low-end CPU where the encoding task was far more likely to be CPU-bound. Which got me to thinking, why? And thus my three questions, 1A, 2B, and 3C. I'm not really looking for advice on how to spend my money, I'm just looking for facts and science behind how it works so that I can make good decisions in the future.

As for the second computer setup, I had to overcome those concerns, and think I've come up with a good solution. I use an analog 7.1 headphones setup, I decided to split (with a Y-cable) out the front left and front right and use that for the game audio. As for voice comms, I have two mics side-by-side, one push to talk for my game computer, and a second that records "everything" for the encoder. I can tweak the noise gate to get rid of most background noise, though I didn't start doing that until very recently since I wasn't concerned about it while not broadcasting.

And trust me, Planetside 2 is unlike almost every other game out there, the game is so CPU bound even with my new setup, a 4770k and a GTX680, it will go 30ish fps slideshow on me. There is no room for streaming without a severe impact on the same CPU. It just can't be done.
 

FerretBomb

Active Member
I can only assume that the video card drivers had not been uninstalled prior to removing the 560Ti, and installed clean when the 260 was in the machine. Given the role that the video card performs, there is no reason for the 260 (installed properly) to cause any kind of a bottleneck at all. If the 260 was running in 'driverless' mode, that could do it though.
 

dodgepong

Administrator
Community Helper
I have seen several people report problems with the 260 and its kin. For whatever reason, it's really slow for copying resources to and from it for compositing OBS scene. It's not a great card, so your experience is consistent with that of others.

The 560Ti, on the other hand, is great.
 

Boildown

Active Member
I would still appreciate answers to these three questions. This thread kinda got benevolently-trolled. I'm asking questions, not asking for help with my setup, my setup merely illustrates part of why I'm asking (I hoped, maybe I shouldn't have mentioned it at all).

Boildown said:
1A) How would you characterize the effect the speed of the video card has on OBS performance?

Until this past weekend, my capture/recording PC was a relatively slow Intel E4300 Core2Duo. In it I had a GTX560 Ti, and it was able to capture 720p @30fps on the ultra-fast preset (whatever the fastest preset available is). When I was doing my CPU upgrade this weekend, I temporarily put a GTX 260 in it, figuring that the bottleneck was the CPU anyways, but it then couldn't encode more than about 20-24 fps. It seems even on a quite old CPU, the GPU was somehow still a bottleneck. This surprised me.

2B) Which aspect(s) of a video card are most important for OBS? I'm looking for something like Stream Processors, Texture Units, quantity of VRAM, Memory Bus Width, etc. What should I maximize if I were to get a new dedicated OBS GPU?

3C) I was reading up on rc-lookahead, because that's the only thing sped up by turning on the OpenCL feature of the test version. It seems that for x264, even the very slow and placebo presets doesn't use a value of rc-lookahead greater than 60 because (in addition to diminishing returns) they don't want the encoder to run out of memory. Apparently this setting chews up memory in direct proportion to its value. On my new encoding system using OBS (2600k), I was able to use the Medium preset, and checking the resultant files' MediaInfo, the rc-lookahead was set to 40.

What memory does this use, system RAM or video card VRAM, when using and not using OpenCL? Should I worry about running out of it (if VRAM answer seems to almost certainly be "yes") if I set a higher rc-lookahead to take advantage of the OpenCL more?

Boildown said:
Thanks!
 

Krazy

Town drunk
Well, a 560ti is exponentially more powerful than a 260, lots more processing power, and probably more importantly, more memory and much greater memory bandwith. Encoding involves throwing a lot of data around very quickly, so I would maybe focus on cards with a good bit of VRAM and high memory througput. Basically from nVidia a 460 or better would be enough for encoding high res/high fps streams. You want to avoid anything from nVidia that is a *50 card or lower, as those tend to be very budget models. The exception to this MIGHT be the 650ti Boost, as it has better memory bandwith than a regular 650, but I still think even a 460 or a 560 would be better here.

As for OpenCL I'm honestly not sure, but a dedicated encoding PC that has a GPU with at least 1GB of VRAM and 8GB or so of desktop RAM would likely be sufficient for higher rc-lookahead settings. If you're really worried about it, 2GB GPUs aren't terribly expensive these days.

Hopefully this gives you some more clarification.
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
I don't have time to go too in depth on all the questions, but generally stream processors (stream cores) is the most vital aspect to me in my humble opinion.
 

Boildown

Active Member
Jim said:
I don't have time to go too in depth on all the questions, but generally stream processors (stream cores) is the most vital aspect to me in my humble opinion.

Hey, I just noticed this was answered. Thanks!

I now have a couple months of streaming with my new setup and the 560 Ti does seem more than sufficient. There really is something wrong with that 260 as far as OBS is concerned, even though it was a good gaming card in its day.
 

alpinlol

Active Member
had a gtx 260 my own ... couldnt really stream with it either pretty much the best possible result was something like 15-20 fps and huge fps drops whenever a big explosion happened on the stream but for some reason i had almost no fps drop ingame
 
Top