OBS got worse and worse with high demanding games for some reason

I am creating this thread to find any possible fixes or any ideas how to get this to work better.

Before you comment read my WHOLE post please.

Right now I am on a 5800X3D with a 5070ti, NVENC encoding of course. Now for my issue that for some reason has been getting worse and worse over the year.

I already try to tame some games that go really hard on the GPU with 100% usage with SpecialK and Reflex so they aren't pinning my GPU as I know OBS needs some GPU cycles to render the output, or it even reserves itself some.

This seems to have stopped worked as good as it has in the past. I need HAGS enabled as I use framegen so not going to disable that. But in the past I could just run games full throttle and OBS would easily maintain the output.

I have no idea if this is something caused by Microsoft themself fiddling around in Windows with updates and maybe the scheduler or MMCSS (if obs is even using that) but for some reason it is so bad right now that even letting a picture move around brings my output to a kneel at like 2fps.

Maybe OBS needs some more optimization work in this regard as games become heavier and heavier that it more efficiently reserves GPU cycles and takes even more if needed?

Whatever it is it became really worse for me so now looking for fixes but please don't tell me something in the ballpark of "limit your games to 60fps" as like I've told this has never been an issue letting run games wild and free.

I am using OBS as portable. Log is attached, issue happened in that log but I don't know if it's logged at all.

I can replicate that issue on demand as it happens on my pause screen suddenly with ACTIVE recording.
 

Attachments

Lots of plugins that may be causing issues.

Rendering lag is GPU overload....
00:59:53.973: Output 'adv_stream': stopping
00:59:53.973: Output 'adv_stream': Total frames output: 1346589
00:59:53.973: Output 'adv_stream': Total drawn frames: 1341921 (1346642 attempted)
00:59:53.973: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 4721 (0.4%)
00:59:53.978: ==== Streaming Stop ================================================
00:59:54.020: warning: 2 frames left in the queue on closing
00:59:55.784: User switched to scene 'StrimStart'
00:59:55.944: warning: Could not update timestamps for skipped samples.
01:01:32.148: ==== Shutting down ==================================================
01:01:32.199: WASAPI: Device 'Broadcast Stream Mix (TC-HELICON GoXLR)' Terminated
01:01:32.202: WASAPI: Device 'Chat Mic (TC-HELICON GoXLR)' Terminated
01:01:32.205: WASAPI: Device 'VOD (TC-HELICON GoXLR)' Terminated
01:01:32.345: WASAPI: Device '[VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK]' Terminated
01:01:32.577: Tried to sort VolumeControl for 'ChatMic' but source is null
01:01:32.577: Tried to sort VolumeControl for 'VOD Track' but source is null
01:01:32.623: All scene data cleared
01:01:32.623: ------------------------------------------------
01:01:32.638: Output 'Replaypuffer': stopping
01:01:32.638: Output 'Replaypuffer': Total frames output: 1352539
01:01:32.638: Output 'Replaypuffer': Total drawn frames: 1347824 (1352553 attempted)
01:01:32.638: Output 'Replaypuffer': Number of lagged frames due to rendering lag/stalls: 4729 (0.3%)
01:01:32.773: Video stopped, number of skipped frames due to encoding lag: 4920/1352552 (0.4%)
01:01:32.848: Tried to call obs_frontend_remove_event_callback with no callbacks!
01:01:32.856: Tried to call obs_frontend_get_user_config with no callbacks!

Your wasting resources here. Set your Refresh Rate @ 120 & Color Bit Depth @ 8-bit:
18:40:18.947: name=LG ULTRAGEAR
18:40:18.947: pos={0, 0}
18:40:18.947: size={2560, 1440}
18:40:18.947: attached=true
18:40:18.947: refresh=240
18:40:18.947: bits_per_color=10

18:40:18.947: space=RGB_FULL_G22_NONE_P709

If there still is rendering lag. Most of the stuff at the end of this page applies to your set-up. Your Scene Collection needs to be streamlined.
 
A good troubleshooting step after you address your monitor settings:

Create a new Scene Collection, add just (1) Source & run a test. If things are good, your old Scene Collection is bugged.
 
I will not reduce my refreshrate, how is that fixing anything at all?!

What plugins? Everything is streamlines, I optimize every scene, source, filter so that is is only visible when needed and turned off after with streamer.bot.

You are not really helping sorry. This feels like an answer on the microsoft forums from an ambassador xD
 
What waste?!?! The moment I run OBS as admin everything works perfectly but I lose some more ingame performance in my game scene. This is what I do not want and dont need as I am on W11 and HAGS should take care of this so there is clearly something bugged but it is not my scenes.

You litereally have no idea what you are talking about. It's insane these days asking something technical. It's microsoft forums all over again.

My scene composition has not changed for a long time and I could literally notice in front of my eyes the regression in performance over the updates. Plugins were the same too. Then someone comments stuff like this, no wonder I go insane.
 
Rendering Lag is GPU overload, Plain & simple. Your GPU is overloaded, not sure what you don't understand about that. So until you get a grip of reality, later, no time to waste with dimwits....
 
The moment I run OBS as admin everything works perfectly but I lose some more ingame performance in my game scene. This is what I do not want and dont need as I am on W11 and HAGS should take care of this so there is clearly something bugged but it is not my scenes.
HAGS is not a guarantee for smooth OBS performance in 100% GPU load situations. Some games simply prioritize themselves over background applications, it varies from game to game. This is why even the Nvidia OBS guide recommends running OBS as admin in case HAGS doesn't help, since it's not a perfect solution:


Quote from that page:
If for some reason Hardware Accelerated GPU Scheduling does not do the trick, OBS added an option in OBS 24.0.3 to prioritize OBS Studio over everything else. Just run OBS as Admin, and your stream will be silky smooth.

Nvidia didn't go into detail about why HAGS might not do the trick, but clearly they found situations where it fails to work correctly. Who knows if it's because of a specific game, a bug in Windows itself, or Nvidia driver issues. Personally I've run into this in specific games only.

The reason why running OBS as admin works is that it prioritizes itself over the game, which means it's not starved for GPU resources. This inevitably means not letting the game use a few percent of GPU power.

Basically, that performance loss you see in game with admin mode would have happened anyway if HAGS actually worked correctly and reserved GPU power.

Since you're seeing this issue in Pragmata, does Resident Evil 9 have the same problem as well? That might indicate a pattern. New RE Engine games might be doing something that overrides HAGS' ability to prioritize OBS.
 
Last edited:
Dumb & Dumber...

Here's another hint, fix the color bit depth & lower that refresh rate to 120 or better yet 60 & watch the Render Display time drop.....

01:01:33.043: obs_graphics_thread(16.6667 ms): min=0.036 ms, median=7.71 ms, max=3381.44 ms, 99th percentile=23.261 ms, 90.3012% below 16.667 ms
01:01:33.043: ┣tick_sources: min=0 ms, median=0.101 ms, max=457.098 ms, 99th percentile=0.367 ms
01:01:33.043: ┣output_frame: min=0.033 ms, median=0.63 ms, max=124.841 ms, 99th percentile=1.942 ms
01:01:33.043: ┃ ┗gs_context(video->graphics): min=0.032 ms, median=0.629 ms, max=124.839 ms, 99th percentile=1.941 ms
01:01:33.043: ┃ ┣render_video: min=0.001 ms, median=0.598 ms, max=124.803 ms, 99th percentile=1.908 ms
01:01:33.043: ┃ ┃ ┣render_main_texture: min=0.001 ms, median=0.352 ms, max=22.848 ms, 99th percentile=1.622 ms
01:01:33.043: ┃ ┃ ┣render_output_texture: min=0.001 ms, median=0.002 ms, max=12.819 ms, 99th percentile=0.005 ms
01:01:33.043: ┃ ┃ ┣render_convert_texture: min=0.004 ms, median=0.009 ms, max=3.066 ms, 99th percentile=0.016 ms
01:01:33.043: ┃ ┃ ┗output_gpu_encoders: min=0 ms, median=0.025 ms, max=11.316 ms, 99th percentile=0.085 ms
01:01:33.043: ┃ ┗gs_flush: min=0.002 ms, median=0.029 ms, max=29.094 ms, 99th percentile=0.078 ms
01:01:33.044: ┗render_displays: min=0 ms, median=6.97 ms, max=3281.6 ms, 99th percentile=22.352 ms
 
For people finding this and want a REAL answer:

Set OBS GPU Priority to "Realtime". It's the same as with Admin mode. Fixed all my issues and really didn't suck up that much performance.

Dumb & Dumber...

Here's another hint, fix the color bit depth & lower that refresh rate to 120 or better yet 60 & watch the Render Display time drop.....

01:01:33.043: obs_graphics_thread(16.6667 ms): min=0.036 ms, median=7.71 ms, max=3381.44 ms, 99th percentile=23.261 ms, 90.3012% below 16.667 ms
01:01:33.043: ┣tick_sources: min=0 ms, median=0.101 ms, max=457.098 ms, 99th percentile=0.367 ms
01:01:33.043: ┣output_frame: min=0.033 ms, median=0.63 ms, max=124.841 ms, 99th percentile=1.942 ms
01:01:33.043: ┃ ┗gs_context(video->graphics): min=0.032 ms, median=0.629 ms, max=124.839 ms, 99th percentile=1.941 ms
01:01:33.043: ┃ ┣render_video: min=0.001 ms, median=0.598 ms, max=124.803 ms, 99th percentile=1.908 ms
01:01:33.043: ┃ ┃ ┣render_main_texture: min=0.001 ms, median=0.352 ms, max=22.848 ms, 99th percentile=1.622 ms
01:01:33.043: ┃ ┃ ┣render_output_texture: min=0.001 ms, median=0.002 ms, max=12.819 ms, 99th percentile=0.005 ms
01:01:33.043: ┃ ┃ ┣render_convert_texture: min=0.004 ms, median=0.009 ms, max=3.066 ms, 99th percentile=0.016 ms
01:01:33.043: ┃ ┃ ┗output_gpu_encoders: min=0 ms, median=0.025 ms, max=11.316 ms, 99th percentile=0.085 ms
01:01:33.043: ┃ ┗gs_flush: min=0.002 ms, median=0.029 ms, max=29.094 ms, 99th percentile=0.078 ms
01:01:33.044: ┗render_displays: min=0 ms, median=6.97 ms, max=3281.6 ms, 99th percentile=22.352 ms
Stop it please, you have no idea what you are talking about
 
If it works then that's good, but I don't know how I feel about setting GPU priority to real time. That's the same priority level as dwm.exe, a crucial system process which handles pretty much everything display related. I would watch for any weird issues while recording the game.

Personally I would just run as admin since it's recommended by everyone, including Nvidia themselves. This method doesn't set OBS' GPU priority to real time, but still prioritizes OBS over games.
 
If it works then that's good, but I don't know how I feel about setting GPU priority to real time. That's the same priority level as dwm.exe, a crucial system process which handles pretty much everything display related. I would watch for any weird issues while recording the game.

Personally I would just run as admin since it's recommended by everyone, including Nvidia themselves. This method doesn't set OBS' GPU priority to real time, but still prioritizes OBS over games.

Some on the discord said that is exactly what is happening when running as admin but i didn't fact check that.

Yeah running stuff at realtime can cause more headaches so I was worried for a sec.

And running as Admin has some downside in the featureset. I will test it out and see if there will be any negative effects to it.
 
Back
Top