Question / Help Streaming FPS seems capped but game plays fine

jarylc

New Member
Basic info:
Code:
Open Broadcaster Software v0.466a - 32bit (´・ω・`)
-------------------------------
CPU Name: Intel(R) Core(TM)2 Quad  CPU   Q9550  @ 2.83GHz
CPU Speed: 2840MHz
Physical Memory:  4095MB Total, 2031MB Free
stepping id: 7, model 7, family 6, type 0, extmodel 0, extfamily 0, HTT 1, logical cores 4, total cores 4
Windows Version: 6.2 Build 9200 
Aero is Enabled (I'M RUNNING WINDOWS 8, COULD IT BE THE CAUSE?)
------------------------------------------
Adapter 1
  Video Adapter: NVIDIA GeForce GTS 250
  Video Adapter Dedicated Video Memory: 519634944
  Video Adapter Shared System Memory: 1878616064
------------------------------------------
Adapter 2
  Video Adapter: Microsoft Basic Render Driver
  Video Adapter Dedicated Video Memory: 0
  Video Adapter Shared System Memory: 268435456

Here are the logs and max FPS values for each output resolution:

1280x720 max 15 FPS
Code:
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1280x720
  Output resolution: 1280x720
------------------------------------------
Loading up D3D10...
------------------------------------------
Using auxilary audio input: Headset (Record) (Creative USB Headset)
------------------------------------------
Audio Encoding: AAC
    bitrate: 192
Using graphics capture
------------------------------------------
Video Encoding: x264
    fps: 30
    width: 1280, height: 720
    preset: veryfast
    CBR: no
    max bitrate: 2192
    buffer size: 2192
    quality: 10
------------------------------------------
SharedTexCapture hooked
Total frames rendered: 97, number of frames that lagged: 72 (74.23%) (it's okay for some frames to lag)
=====Stream End=======================================================================

852x480 max 30 FPS
Code:
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1280x720
  Output resolution: 852x480
------------------------------------------
Loading up D3D10...
------------------------------------------
Using auxilary audio input: Headset (Record) (Creative USB Headset)
------------------------------------------
Audio Encoding: AAC
    bitrate: 192
Using graphics capture
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 852, height: 480
    preset: veryfast
    CBR: no
    max bitrate: 2192
    buffer size: 2192
    quality: 10
------------------------------------------
SharedTexCapture hooked
Total frames rendered: 189, number of frames that lagged: 140 (74.07%) (it's okay for some frames to lag)
=====Stream End=======================================================================

640x360 max 41 FPS
Code:
=====Stream Start=====================================================================
  Multithreaded optimizations: On
  Base resolution: 1280x720
  Output resolution: 640x360
------------------------------------------
Loading up D3D10...
------------------------------------------
Using auxilary audio input: Headset (Record) (Creative USB Headset)
------------------------------------------
Audio Encoding: AAC
    bitrate: 192
Using graphics capture
------------------------------------------
Video Encoding: x264
    fps: 60
    width: 640, height: 360
    preset: veryfast
    CBR: no
    max bitrate: 2192
    buffer size: 2192
    quality: 10
------------------------------------------
SharedTexCapture hooked
Total frames rendered: 422, number of frames that lagged: 332 (78.67%) (it's okay for some frames to lag)
=====Stream End=======================================================================

As I said above, I'm running Windows 8. Could it be the cause?

My CPU is on 50% when I play "DmC: Devil May Cry", so it's probably not the CPU. Could it be my GPU then? I'm getting an upgrade very soon either way.
 

Bensam123

Member
That all depends on if you have hyperthreading or not. 50% is maxed out if you have HT enabled as the four extra threads aren't real cores, they're just used to help balance out workloads and in some cases give you better performance.

Seeing as there is a almost linear pattern between increasing resolution and decreasing FPS it's safe to assume you're maxing out your processor. That is most definitely a older processor too so even without knowing if you have HTing or not, I'm pretty sure you're maxing it out. More then 30fps is asking a lot out of it, especially at 720p.

Your bitrate is also too low to stream fluidly 720p@60 for high motion games.

Both your graphics card and processor are older. I don't know how that would even be playable while streaming.
 

jarylc

New Member
Grimio said:
Please don't selectively cut essential parts of the log, post them whole.

I'll keep that in mind next time :)

Bensam123 said:
That all depends on if you have hyperthreading or not. 50% is maxed out if you have HT enabled as the four extra threads aren't real cores, they're just used to help balance out workloads and in some cases give you better performance.

Seeing as there is a almost linear pattern between increasing resolution and decreasing FPS it's safe to assume you're maxing out your processor. That is most definitely a older processor too so even without knowing if you have HTing or not, I'm pretty sure you're maxing it out. More then 30fps is asking a lot out of it, especially at 720p.

Your bitrate is also too low to stream fluidly 720p@60 for high motion games.

Both your graphics card and processor are older. I don't know how that would even be playable while streaming.

I see...

Well, I have no idea either haha. Games seem to run fine when I stream, streaming Far Cry 3 seems to spike my CPU up to 99% and the game FPS does occasionally drop. But other games I play so far work normally.

I seem to be able to stream Dota 2 720p@30 fine though (just tested).

Thanks anyways
 

Grimio

Member
Bensam123 said:
That all depends on if you have hyperthreading or not. 50% is maxed out if you have HT enabled as the four extra threads aren't real cores, they're just used to help balance out workloads and in some cases give you better performance.
That is not entirely true, 50% is not max load with HT on. The number of execution units remains the same, so the load percent is pretty much the same as well.
 

Krazy

Town drunk
That's a fairly older processor, and the GPU is definitely not super good. I would definitely suggest that it is time for an upgrade
 

dodgepong

Administrator
Community Helper
Yeah, the CPU and GPU are on the old side. Unfortunately you cut out a really important part of the log that shows frame encoding profiler information to confirm what part of the rendering process is taking the most time.
 

Bensam123

Member
No, it's not entirely true. But when you start exceeding the 50% thershold there is an associated lag factor with HTing as threads start being executed slower and slower due to more threads then actual cores being present on each core. It leads to a certain sort of weird lag that can be felt through gameplay. Either way hitting your maximum % on cores leaves no wiggle room and leads to detrimental performance anyway (I stream with 10%, preferably 20% of free space). That doesn't even take into account hitting something like 110% processor utilization through HTing. It's entirely possible to hit 100% CPU usage with HTing, but your experience wont be by any means fluid.

HTing is something that is great for database and enterprise related stuff, when you're trying to squeeze as much performance out of your processor as possible and latency doesn't matter, but not streaming/gaming.
 

Grimio

Member
I'd argue that HT is good for streaming, as encoding benefits from it or at worst doesn't negatively impact it.
 

Bensam123

Member
But gaming doesn't and if your gaming experience suffers, so does your stream as it's simply recording your gaming experience. If you were just doing encoding, definitely.
 

Grimio

Member
Bensam123 said:
But gaming doesn't and if your gaming experience suffers, so does your stream as it's simply recording your gaming experience. If you were just doing encoding, definitely.
That is not the case anymore. It's the same story as with quadcores back in the day when they first came out, they were deemed unnecessary as no game was supporting it and the dualcores were beating them in every game benchmark.
Now it's hard to imagine a high end gaming PC without at least 4 cores.

The recent benchmarks show that HT is very good for gaming, in many cases it increases the minimum FPS significantly, which is arguably more important than max fps beyond 100.
http://forums.anandtech.com/showthread.php?t=2274887
 

Bensam123

Member
I'm not saying it wont help gaming because gaming isn't multihtreahded, I'm saying it doesn't help gaming because it introduces latency and weird lag (which you can feel when playing)... It overloads the processor with threads that need to be executed like a queue and messes up load balancing of threads that are already present. If core 3 finishes a thread faster then core 1, because core 1 is actually executing two threads at the same time (which slows it down), the game needs to wait for core 1 to finish.

FPS isn't everything. HTing is great from a pure performance standpoint, such as databases and web serving... Anything with large amounts of parallelism where latency and execution consistency doesn't matter.

5-10 fps being "significant" is quite arguable too.
 

Grimio

Member
This is getting off-topic really fast, so this will be my last post regarding HT in this thread ^^

10 fps is a significant increase when the base is 30 fps.
Like I said, with HT it's the same as with the quadcores in the past, they were considered shit for a long time.
HT has basically the same problem. It's not the technology, it's the software support that causes problems. Older and badly designed programs will have problems utilizing the potential.

That micro stutter you mention is a niche problem with games like Battlefield3(I don't know if it's fixed yet). Expect developers to utilize HT much better in the future as it looks like it's going to stay, as seen by so many mobile CPU's having HT.

If you really don't want to let a program use non-physical cores, you could use something like Process Lasso and still benefit from HT everywhere else.
 

Bensam123

Member
It's not a niche problem, it's just you don't notice it till you're trying to work with time sensitive data (such as gaming). I completely disagree about support too. The reason we don't see games suffering too much from it is because they don't take full advantage of it, if they did you'd be doubling the workload on each core. It'd turn out worse then bulldozers which basically use a better version of HTing and all around considered worse then their Intel counterparts due to the stuttering that is caused by that.

You can just disable HTing as well. That's what I did before I purchased my 3570k and now I don't have HTing anyway. Just because something is there doesn't mean you need to use it. For the tiny bit of performance HTing gave outside of games it wasn't worth having on for the stuttering/latency related issues in game.
 
Top