Question / Help Force CPU Scene Rendering or Select GPU to Render Scene?

MannerRev

Member
Hi,

I've been troubleshooting dropped frames pretty intensely for about a week now and I've tried everything such as rerouting coax around my house to improve signals to my modem, replacing all ethernet cables, swapping out the router, swapping out my network switch, changing bitrates, changing ingest servers, adjusting qos on my router, removing qos entirely, using different encoders such as QSV and NVENC instead of x264, and even going so far as to use OBS Classic and Streamlabs OBS just to see if i have the same issues. I also looked at this thread here: https://obsproject.com/forum/threads/dropped-frames-disconnecting-lag-read-this-first.8870/ which inspired some of these troubleshooting steps that Ive taken.

I have access to two PCS and I've tried a single PC setup with QSV, NVENC, and x264 as well as a dual PC setup both with an nginx-RTMP installation and then NDI source. None of these options helped me.

Long story short, the trouble remains, but I think I've found the problem and I know of possible solutions. I'm making this thread in hopes that I can find a solution that works for my situation.

What I found so far is that my dropped frames stem from the fact that OBS uses GPU for rendering the scene and resizing the video. I understand this is done because the GPU is more efficient than a CPU for doing such a task, but it presents a problem wherein my frames drop massively if my GPU is ever put at 100%. I can replicate this easily by starting a stream or a recording an then opening up any stressful game, such as GTAV, then doing something like looking at the grass to pin my gpu usage at 95%+. No matter what i'm using, be it x264, QSV, NVENC or NDI Source to my second PC, the dropped frames will happen immediately.

In order to solve this, I feel like I have three options that are as follows:
1. Defer scene rendering to CPU, removing the issue of dropped frames when the GPU hits 100%. This could be useful when I use NVENC to encode my stream so my CPU is not being stressed that much and there is available headroom on the CPU to perform the task.
2. Defer scene rendering to a secondary GPU. Same as above, but I feel like I could use my CPU's iGPU to render the scene rather than my primary GPU. OBS Classic had an option that looked like it would do this, but is unfortunately not supported anymore for obvious reasons. I'd like to try something like that in OBS Studio.
3. Buy a capture card. This would bypass the issue entirely because all the stream rendering and encoding would happen on my second PC. I could max out my gaming GPU usage without encountering dropped frames, but this is my least preferred option due to the cost of a capture card.

I do not feel I have enough C/C++ experience to dive into the source myself and rewrite it as I described in options 1 or 2 above, but I would love if there would be a way to do so. I'm fine with it even if I have to hard code a GPU hardware ID or string literal to select a secondary GPU for scene rendering, as this would at least give me something to work with.

I appreciate anyone's feedback and responses on this in advance, and I look forward to figuring out a solution that fits for me. Thank you all for your time.
 

Harold

Active Member
CPU rendering is EXTREMELY heavy compared to GPU rendering. That's why it's done on the GPU.
 

MannerRev

Member
That's understandable. So that would probably cut CPU rendering out of the equation, but I'd still really like to defer the rendering to a second GPU if possible.
 

Harold

Active Member
The process of getting the video frames from the primary video card to the secondary video card is also extremely heavy. You're forced to do memory capture from the first (which is EXTREMELY slow) then upload the frames to the second card for rendering, then download the frames back for encoding. As much as you may think you'd gain from a dual video card setup, you gain FAR FAR more with even a slightly more powerful video card in a single-card setup.
 

MannerRev

Member
The process of getting the video frames from the primary video card to the secondary video card is also extremely heavy. You're forced to do memory capture from the first (which is EXTREMELY slow) then upload the frames to the second card for rendering, then download the frames back for encoding. As much as you may think you'd gain from a dual video card setup, you gain FAR FAR more with even a slightly more powerful video card in a single-card setup.

I am currently running a 1080Ti so unfortunately there is not much in the way of "slightly more powerful video card" without spending an outrageous amount to acquire one, especially with inflation these days. Even if deferring to a second gpu is extremely slow, I'd still prefer the slower or more intense method over dropping frames like I'm currently doing. I successfully compiled OBS-studio from source last night and I have a working project that I can modify, but I was unable to pinpoint exactly where in the source code the GPU selection happens for rendering the scene. If I could just get it working with rendering on the second GPU, I'd be happy to rule it out if it doesn't actually solve my issue. I just want to try it.

I would also like some way to simply limit GPU usage, say to put a limiter at 95% on a per-program-basis to prevent it from maxing out completely. I did a bit of searching but I was unable to find anything like this.
 

MannerRev

Member
Dropped frames, as reported by the OBS status bar, has nothing to do with GPU load.
If this is the case, then why is it that I can force dropped frames by maxing out my gpu usage? I can literally make myself drop frames by having my gpu load 100% and they will continue dropping until my GPU usage is back down, at which point they will stop dropping. I know this has nothing to do with ingest servers or my internet connection, as I can still reproduce the same issue when using NDI source or a local nginx-RTMP transcode installation over LAN.
 

DEDRICK

Member
Those are Lagged Frames and it's not from 100% GPU usage exactly, it's more complicated than that.

I also have a 1080ti, and I'm going to show you 3 pictures to demonstrate the issue.

My OBS is set to 1440p60 rendering for recording, frames get rendered at this resolution and FPS
nMMrsFx.png


Game, OBS and Twitch - Stats the window I have in Focus. 100% GPU usage, no Lagged Frames.
GPU usage is split between Firefox, OBS and PUBG
5Bx46RI.jpg


Same scenario but PUBG in focus, 100% GPU usage, lagged frames begin. GPU usage increases in PUBG taking resources away from OBS, but not Firefox, it remains the same %
1UCkYAp.jpg



PUBG in focus, Twitch closed
, 99% GPU usage. No lagged frames

ZMiuuip.jpg


If it was as simple as GPU usage I would be lagging frames here, I'm apparently one of the lucky ones that I can have both OBS and Game open and not lag frames at 100% GPU usage. Don't ask me how or why, I can even go to 1440p60 rendering and not lag frames, it's not until I go to 1440p120 that I do.

For other users, Windows gives more priority to the game taking GPU away from OBS.
 
Last edited:

MannerRev

Member
Thanks for the input. What is your OBS Priority set to? I moved my OBS Priority before and I did not notice any major difference in the amount of lagged frames regardless of the setting.
 

DEDRICK

Member
Process Priority is Normal, I beginning to think it is an NVIDIA + Windows 10 specific issue, I haven't seen any AMD users reporting it.

I have my Global 3D settings on default because I was trying to see if it was NVIDIA control panel related but no luck, though I do have Fast Sync on. I don't have Geforce Experience, I install the bare minimum when doing NVIDIA drivers

Here is a log from Scenario 3

18:47:31.888: CPU Name: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
18:47:31.888: CPU Speed: 4000MHz
18:47:31.888: Physical Cores: 4, Logical Cores: 8
18:47:31.888: Physical Memory: 16259MB Total, 10936MB Free
18:47:31.888: Windows Version: 10.0 Build 16299 (revision: 214; 64-bit)
18:47:31.888: Running as administrator: false
18:47:31.888: Aero is Enabled (Aero is always on for windows 8 and above)
18:47:31.888: Windows 10 Gaming Features:
18:47:31.888: Game Bar: Off
18:47:31.888: Game DVR: Off
18:47:31.888: Game DVR Background Recording: Off
18:47:31.888: Game Mode: Off
18:47:31.889: Sec. Software Status:
18:47:31.890: Windows Defender Antivirus: enabled (AV)
18:47:31.890: Windows Firewall: enabled (FW)
18:47:31.890: Windows Defender Antivirus: enabled (ASW)
18:47:31.890: Portable mode: false
18:47:31.907: OBS 21.0.1 (64bit, windows)
18:47:31.907: ---------------------------------
18:47:31.907: ---------------------------------
18:47:31.907: audio settings reset:
18:47:31.907: samples per sec: 44100
18:47:31.907: speakers: 2
18:47:31.908: ---------------------------------
18:47:31.908: Initializing D3D11...
18:47:31.908: Available Video Adapters:
18:47:31.909: Adapter 1: NVIDIA GeForce GTX 1080 Ti
18:47:31.909: Dedicated VRAM: 3077570560
18:47:31.909: Shared VRAM: 4229703680
18:47:31.909: output 1: pos={0, 0}, size={2560, 1440}, attached=true
18:47:31.909: output 2: pos={-2560, 0}, size={2560, 1440}, attached=true
18:47:31.909: Adapter 2: Intel(R) HD Graphics 4600
18:47:31.909: Dedicated VRAM: 117964800
18:47:31.909: Shared VRAM: 2147483648
18:47:31.910: Loading up D3D11 on adapter NVIDIA GeForce GTX 1080 Ti (0)
18:47:31.949: D3D11 loaded successfully, feature level used: 45056
18:47:32.491: ---------------------------------
18:47:32.491: video settings reset:
18:47:32.491: base resolution: 2560x1440
18:47:32.491: output resolution: 2560x1440
18:47:32.491: downscale filter: Bicubic
18:47:32.491: fps: 60/1
18:47:32.491: format: NV12
18:47:32.493: Audio monitoring device:
18:47:32.493: name: Default
18:47:32.493: id: default
18:47:32.493: ---------------------------------
18:47:32.494: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/chrome_elf.dll' not found, loading of module failed
18:47:32.498: [CoreAudio encoder]: Adding CoreAudio AAC encoder
18:47:32.521: [AMF] <obs_module_load> AMF not supported (no AMD graphics)
18:47:32.521: Failed to initialize module 'enc-amf.dll'
18:47:32.530: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libcef.dll' not found, loading of module failed
18:47:32.530: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libEGL.dll' not found, loading of module failed
18:47:32.530: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libGLESv2.dll' not found, loading of module failed
18:47:32.530: Failed to load 'en-US' text for module: 'obs-browser.dll'
18:47:32.530: [browser_source: 'Version: 1.29.0']
18:47:32.532: NVENC supported
18:47:32.540: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/openvr_api.dll' not found, loading of module failed
18:47:32.542: Couldn't find VLC installation, VLC video source disabled
18:47:32.546: No blackmagic support
18:47:32.703: ---------------------------------
18:47:32.703: Loaded Modules:
18:47:32.703: win-wasapi.dll
18:47:32.703: win-openvr.dll
18:47:32.703: win-mf.dll
18:47:32.703: win-dshow.dll
18:47:32.703: win-decklink.dll
18:47:32.703: win-capture.dll
18:47:32.703: vlc-video.dll
18:47:32.703: text-freetype2.dll
18:47:32.703: rtmp-services.dll
18:47:32.703: obs-x264.dll
18:47:32.703: obs-vst.dll
18:47:32.703: obs-transitions.dll
18:47:32.703: obs-text.dll
18:47:32.703: obs-qsv11.dll
18:47:32.703: obs-outputs.dll
18:47:32.703: obs-filters.dll
18:47:32.703: obs-ffmpeg.dll
18:47:32.703: obs-browser.dll
18:47:32.703: image-source.dll
18:47:32.703: frontend-tools.dll
18:47:32.703: enc-amf.dll
18:47:32.703: coreaudio-encoder.dll
18:47:32.703: ---------------------------------
18:47:32.703: ==== Startup complete ===============================================
18:47:32.709: All scene data cleared
18:47:32.709: ------------------------------------------------
18:47:32.735: WASAPI: Device 'SPDIF Interface (7- FiiO USB DAC-E10)' initialized
18:47:32.749: WASAPI: Device 'IN (6- DUO-CAPTURE EX)' initialized
18:47:32.783: adding 46 milliseconds of audio buffering, total audio buffering is now 46 milliseconds
18:47:32.986: Switched to scene 'Scene'
18:47:32.986: ------------------------------------------------
18:47:32.986: Loaded scenes:
18:47:32.986: - scene 'Scene':
18:47:32.986: - source: 'Game Capture' (game_capture)
18:47:32.986: ------------------------------------------------
18:47:37.010: [game-capture: 'Game Capture'] attempting to hook fullscreen process: TslGame.exe
18:47:37.026: [game-capture: 'Game Capture'] shared texture capture successful
18:47:43.230: ---------------------------------
18:47:43.230: [x264 encoder: 'streaming_h264'] preset: faster
18:47:43.230: [x264 encoder: 'streaming_h264'] profile: main
18:47:43.230: [x264 encoder: 'streaming_h264'] settings:
18:47:43.230: rate_control: CBR
18:47:43.230: bitrate: 4000
18:47:43.230: buffer size: 4000
18:47:43.230: crf: 0
18:47:43.230: fps_num: 60
18:47:43.230: fps_den: 1
18:47:43.230: width: 1280
18:47:43.230: height: 720
18:47:43.230: keyint: 120
18:47:43.230:
18:47:43.230: [x264 encoder: 'streaming_h264'] custom settings: scenecut=0
18:47:43.236: [CoreAudio AAC: 'Track2']: settings:
18:47:43.236: mode: AAC
18:47:43.236: bitrate: 320
18:47:43.236: sample rate: 44100
18:47:43.236: cbr: on
18:47:43.236: output buffer: 1536
18:47:43.242: ==== Recording Start ===============================================
18:47:43.242: [ffmpeg muxer: 'adv_file_output'] Writing file 'E:/Videos/2018-02-06 18-47-43.mkv'...
18:48:51.304: [ffmpeg muxer: 'adv_file_output'] Output of file 'E:/Videos/2018-02-06 18-47-43.mkv' stopped
18:48:51.304: Output 'adv_file_output': stopping
18:48:51.304: Output 'adv_file_output': Total frames output: 4047
18:48:51.304: Output 'adv_file_output': Total drawn frames: 4084
18:48:51.305: ==== Recording Stop ================================================
18:48:55.884: ==== Shutting down ==================================================
18:48:55.896: Switched to scene '(null)'
18:48:55.896: [game-capture: 'Game Capture'] capture stopped
18:48:55.896: WASAPI: Device 'SPDIF Interface (7- FiiO USB DAC-E10)' Terminated
18:48:55.899: WASAPI: Device 'IN (6- DUO-CAPTURE EX)' Terminated
18:48:55.901: All scene data cleared
18:48:55.901: ------------------------------------------------
18:48:55.948: Freeing OBS context data
18:48:55.976: [Scripting] Total detached callbacks: 0
18:48:55.981: == Profiler Results =============================
18:48:55.981: run_program_init: 1155.78 ms
18:48:55.981: ┣OBSApp::AppInit: 9.097 ms
18:48:55.981: ┃ ┗OBSApp::InitLocale: 0.859 ms
18:48:55.981: ┗OBSApp::OBSInit: 1141.87 ms
18:48:55.981: ┣obs_startup: 2.877 ms
18:48:55.981: ┗OBSBasic::OBSInit: 1109.21 ms
18:48:55.981: ┣OBSBasic::InitBasicConfig: 0.344 ms
18:48:55.981: ┣OBSBasic::ResetAudio: 0.114 ms
18:48:55.981: ┣OBSBasic::ResetVideo: 585.677 ms
18:48:55.981: ┣OBSBasic::InitOBSCallbacks: 0.005 ms
18:48:55.981: ┣OBSBasic::InitHotkeys: 0.047 ms
18:48:55.981: ┣obs_load_all_modules: 209.82 ms
18:48:55.981: ┃ ┣obs_init_module(coreaudio-encoder.dll): 3.259 ms
18:48:55.981: ┃ ┣obs_init_module(enc-amf.dll): 23.176 ms
18:48:55.981: ┃ ┣obs_init_module(frontend-tools.dll): 3.658 ms
18:48:55.981: ┃ ┣obs_init_module(image-source.dll): 0.003 ms
18:48:55.981: ┃ ┣obs_init_module(obs-browser.dll): 0.049 ms
18:48:55.981: ┃ ┣obs_init_module(obs-ffmpeg.dll): 0.507 ms
18:48:55.981: ┃ ┃ ┗nvenc_check: 0.476 ms
18:48:55.981: ┃ ┣obs_init_module(obs-filters.dll): 0.014 ms
18:48:55.981: ┃ ┣obs_init_module(obs-outputs.dll): 0.007 ms
18:48:55.981: ┃ ┣obs_init_module(obs-qsv11.dll): 3.149 ms
18:48:55.981: ┃ ┣obs_init_module(obs-text.dll): 0.543 ms
18:48:55.981: ┃ ┣obs_init_module(obs-transitions.dll): 0.005 ms
18:48:55.981: ┃ ┣obs_init_module(obs-vst.dll): 0.001 ms
18:48:55.981: ┃ ┣obs_init_module(obs-x264.dll): 0.001 ms
18:48:55.981: ┃ ┣obs_init_module(rtmp-services.dll): 0.679 ms
18:48:55.981: ┃ ┣obs_init_module(text-freetype2.dll): 0.053 ms
18:48:55.981: ┃ ┣obs_init_module(vlc-video.dll): 0.031 ms
18:48:55.981: ┃ ┣obs_init_module(win-capture.dll): 0.059 ms
18:48:55.981: ┃ ┣obs_init_module(win-decklink.dll): 2.227 ms
18:48:55.981: ┃ ┣obs_init_module(win-dshow.dll): 0.76 ms
18:48:55.981: ┃ ┣obs_init_module(win-mf.dll): 153.038 ms
18:48:55.981: ┃ ┣obs_init_module(win-openvr.dll): 0.002 ms
18:48:55.981: ┃ ┣obs_init_module(win-wasapi.dll): 0.003 ms
18:48:55.981: ┃ ┗reset_win32_symbol_paths: 0.084 ms
18:48:55.981: ┣OBSBasic::ResetOutputs: 4.667 ms
18:48:55.981: ┣OBSBasic::CreateHotkeys: 0.144 ms
18:48:55.981: ┣OBSBasic::InitService: 0.731 ms
18:48:55.981: ┣OBSBasic::InitPrimitives: 0.176 ms
18:48:55.981: ┗OBSBasic::Load: 277.274 ms
18:48:55.981: obs_hotkey_thread(25 ms): min=0.002 ms, median=0.005 ms, max=0.406 ms, 99th percentile=0.035 ms, 100% below 25 ms
18:48:55.981: audio_thread(Audio): min=0 ms, median=0.197 ms, max=0.649 ms, 99th percentile=0.367 ms
18:48:55.981: ┗receive_audio: min=0.004 ms, median=0.162 ms, max=0.6 ms, 99th percentile=0.296 ms, 0.78696 calls per parent call
18:48:55.981: ┣buffer_audio: min=0 ms, median=0.001 ms, max=0.038 ms, 99th percentile=0.002 ms
18:48:55.981: ┗do_encode: min=0.132 ms, median=0.158 ms, max=0.598 ms, 99th percentile=0.29 ms
18:48:55.981: ┗encode(Track2): min=0.123 ms, median=0.146 ms, max=0.583 ms, 99th percentile=0.27 ms
18:48:55.981: obs_graphics_thread(16.6667 ms): min=0.254 ms, median=0.987 ms, max=225.03 ms, 99th percentile=1.401 ms, 99.9399% below 16.667 ms
18:48:55.981: ┣tick_sources: min=0.002 ms, median=0.013 ms, max=224.222 ms, 99th percentile=0.045 ms
18:48:55.981: ┣output_frame: min=0.249 ms, median=0.844 ms, max=45.113 ms, 99th percentile=1.216 ms
18:48:55.981: ┃ ┣gs_context(video->graphics): min=0.097 ms, median=0.14 ms, max=43.168 ms, 99th percentile=0.263 ms
18:48:55.981: ┃ ┃ ┣render_video: min=0.019 ms, median=0.053 ms, max=0.257 ms, 99th percentile=0.115 ms
18:48:55.981: ┃ ┃ ┃ ┣render_main_texture: min=0.004 ms, median=0.025 ms, max=0.163 ms, 99th percentile=0.063 ms
18:48:55.981: ┃ ┃ ┃ ┣render_output_texture: min=0.003 ms, median=0.008 ms, max=0.086 ms, 99th percentile=0.024 ms
18:48:55.981: ┃ ┃ ┃ ┣render_convert_texture: min=0.001 ms, median=0.009 ms, max=0.068 ms, 99th percentile=0.017 ms
18:48:55.981: ┃ ┃ ┃ ┗stage_output_texture: min=0 ms, median=0.008 ms, max=0.203 ms, 99th percentile=0.016 ms
18:48:55.981: ┃ ┃ ┣download_frame: min=0 ms, median=0.047 ms, max=18.702 ms, 99th percentile=0.11 ms
18:48:55.981: ┃ ┃ ┗gs_flush: min=0.025 ms, median=0.037 ms, max=43.052 ms, 99th percentile=0.111 ms
18:48:55.981: ┃ ┗output_video_data: min=0.541 ms, median=0.701 ms, max=2.687 ms, 99th percentile=1.042 ms
18:48:55.981: ┗render_displays: min=0.001 ms, median=0.127 ms, max=1.481 ms, 99th percentile=0.226 ms
18:48:55.981: video_thread(video): min=0 ms, median=2.912 ms, max=11.906 ms, 99th percentile=4.099 ms
18:48:55.981: ┗receive_video: min=0 ms, median=0.56 ms, max=9.009 ms, 99th percentile=1.01 ms, 0.818601 calls per parent call
18:48:55.981: ┗do_encode: min=0.435 ms, median=0.56 ms, max=9.008 ms, 99th percentile=1.009 ms
18:48:55.982: ┗encode(streaming_h264): min=0.422 ms, median=0.545 ms, max=8.994 ms, 99th percentile=0.989 ms
18:48:55.982: =================================================
18:48:55.982: == Profiler Time Between Calls ==================
18:48:55.982: obs_hotkey_thread(25 ms): min=24.852 ms, median=25.024 ms, max=29.559 ms, 93.9276% within ±2% of 25 ms (0% lower, 6.07239% higher)
18:48:55.982: obs_graphics_thread(16.6667 ms): min=4.872 ms, median=16.667 ms, max=225.036 ms, 99.2388% within ±2% of 16.667 ms (0.380609% lower, 0.380609% higher)
18:48:55.982: =================================================
18:48:56.007: Number of memory leaks: 1
 
Last edited:

Maelas

Member
I had this issue as well. Decided to go with capture card until there is some resolution. Also if you use NewTek NDI scan converter on the gamePC and just not use OBS at all, everything seems to work fine.
 

ownyhd

New Member
Those are Lagged Frames and it's not from 100% GPU usage exactly, it's more complicated than that.

it is exactly from gpu usage and it is just as simple as that. the 100% is refered to game tho, not to global usage. if your game uses 100% u will get lagged frames. only solution i know of is to cap the fps in your game to make it leave the % u need for obs. i was searching for this "use second gpu for scene comp" thats how i found this thread but it seems not to work i guess...
 

Harold

Active Member
Using a second gpu for scene composition will make EVERYTHING worse instead of making that one thing better.

You have to get the frames from the first card, through the cpu, to the second card (no SLI bridge doesn't allow this transfer), compose them into the scene there, then back to whatever encoder.
Doing so is an EXTREMELY resource intensive process in comparison to doing everything on one card and just capping your ingame framerate to something that is actually reasonable.
And that's before you factor in the additional performance it from having the second card installed that now only has 8 pci-e lanes to work with instead of 16, so you're now trying to move between 10 and 12 lanes of data over the 8-lane pci-e link of the card.
 

BK-Morpheus

Active Member
How is the max GPU load with 144Hz+Vsync (so basically fps limit at 144)?
You might need to set the FPS limit lower than 144Hz, until the GPU load leaves enough rendering power for OBS.
 

Paolo07700

Member
How is the max GPU load with 144Hz+Vsync (so basically fps limit at 144)?
You might need to set the FPS limit lower than 144Hz, until the GPU load leaves enough rendering power for OBS.
Is there a way to tell OBS to render through the graphics part of my Intel CPU? To release my main GPU from this stain?
My GPU is load in BO4 at 99-100%, but I don't really have frames missed, my CPU est load to 90-100% and I can see I have frames missed when he it 100% sometimes.
Even I can see when I launch OBS I have I have a little less FPS but the use of the graphics card changes very little.
I don't understand why a GPU can be overloadef, she must be able to handle priorities alone no? If it can not display 144fps on a game, should it still be able to handle OBS rendering by dispersing those resources?
 

Attachments

  • 20181021_152611[1]-min-min.jpg
    20181021_152611[1]-min-min.jpg
    806.6 KB · Views: 212

BK-Morpheus

Active Member
From the picture you can see, that all those lagged frames are from GPU overload and not CPU overload.
GPU load for Games is usually prioritized on Windows, so the game still performs good, while OBS has no breathing room on the GPU. Cap your ingame FPS as low, as you need, to keep the GPU load under ~90%
 

Paolo07700

Member
From the picture you can see, that all those lagged frames are from GPU overload and not CPU overload.
GPU load for Games is usually prioritized on Windows, so the game still performs good, while OBS has no breathing room on the GPU. Cap your ingame FPS as low, as you need, to keep the GPU load under ~90%
I have a 144hz monitor for games... I'm sad to set down my fps, I was with vsync mode, but what is the best ? vsync or limit fps option ?
Even on 60fps limit without vsync it's much better but sometimes I have 40 fps in this game in zombies mode and I can see my GPU go up to 80-90-99%.
I'm in ultra in this game...
I don't know if I will start my second PC and configure it for a setup 2 PC with a capture card, because NDI source will be the same problem with the game capture.
Now I don't know how people do with a GTX 1060, 1070 for streaming in ultra, or even people who use NDI source because OBS use the GPU for NDI no ?
I'm really confused...
 

BK-Morpheus

Active Member
You want steady frame rates and less than ~95% GPU load, that's all. If you GPU is strong enough to keep pushing 190fps+ and never drop below 144fps, you could game with 144fps limit and get a smooth stream.
 
Top