Question / Help AMD EPYC DROPS Frames

DragonBorne

New Member
I have built a custom PC with the hopes of creating a really impressive streaming rig. My reason for choosing an EPYC chip was due to needing as many PCI lanes as possible. This system has 1 Quadra P4000 graphics card, 4 Quad Magewell Capture Cards (for 16 total SDI inputs).

One of the other perks for going with a server class system was getting a motherboard with 2 on board gigabit ports is handy for setting up NDI feeds as well. My goal of this system was to really try to turn OBS into a switcher replacement and see how it worked. EPYC has 128 PCI lanes which means it is one of the few systems I could get that would let me try to reach 16 SDI inputs (due to needing 4 cards that each need 4X PCI).

The processor is the 7351P, which runs at 2.4 GHz with a 2.9GHz burst. While I knew this was slow, my hope was that 16 cores would be able to handle the encoding just fine.

Well I just finished setting up the PC today and decided the best thing to do was to loop some videos and setup a recording for 12,000 bit rate, tried at SuperFast setting for encoding, and even changed the x264 to 16 threads (read that to many threads can hurt). Sadly I am getting awful results using the x264 and I am not sure if this is what i should have expected or if something is wrong. it drops frames non-stop and takes 20ms to render a frame. If there is something I can do to solve this problem
See Log File
https://obsproject.com/logs/2cEjDYFnNu_J0o8J

Some other details; I am using a SuperMicro Motherboard, with ECC DDR4 Memory at 2666. I plan to use the graphics card to encode if this cannot be solved with the processor (which should be fine) but really am worried other issues will occur if my processor is to slow (like 16 cameras feed through the Magewell cards). I checked the temps while running these tests and never went above 59 degree C.
 

BK-Morpheus

Active Member
As a general rule: Make sure Windows GameDVR and Game mode are disabled.
Next thing, I notice:
Code:
18:51:56.059: Initializing D3D11...
18:51:56.059: Available Video Adapters:
18:51:56.061:     Adapter 2: NVIDIA Quadro P2000
18:51:56.061:       Dedicated VRAM: 981467136
18:51:56.061:       Shared VRAM:    4242124800
18:51:56.063: Loading up D3D11 on adapter Microsoft Basic Render Driver (0)

So it seems, that the P2000 (or the driver) might not be the right card for the scene rendering in OBS (which is always done via GPU, even if the rendered frames are then encoded via x264/CPU).
The GPU rendering is also the bottleneck, that drops your frames:
Output 'adv_file_output': Number of lagged frames due to rendering lag/stalls: 244 (13.1%)

So the encoding has no dropped frames (CPU is working fine), but the rendering is lagging behind.
Maybe you can remove the P2000 and put in a normal consumer / gaming GPU. A GTX 1050Ti or GTX1060 should be more than enough for that.
 
Last edited:

TryHD

Member
it looks like you run your gpu without nvidia driver, have you checked if accelerated 3d works at all?
 

DragonBorne

New Member
Hey,

So I actually am putting a P4000 in this computer, so will test ASAP once it is installed to see if that is a big factor. Also I did downloaded the Quadra drivers but maybe I missed a step and the drivers are not fully setup. Here is the real intresting part, the Nvideo encoder ran perfectly fine (for the most part) off of the P2000 so i thought the graphics card was not the issue. This is likely more to say with how good the GPU encoder is now in OBS but still confusing why it could encode the whole thing but not work correctly when using x264. Will make the changes and report back.

Also a side note, but I made a very controversial move to build this into a 3U unit, and that limits me to Quadra cards as the consume ones need 4U to make room for the power cables. I understand this might not have been wise but I am really trying to make the most compact streaming unit while also being expandable. If i can fix the encoding issue I might have a pretty cool rig.
 

DragonBorne

New Member
So i installed a Quadra P4000, the same card we have used across multiple Streaming PCs, and I have to be honest, it did not help one bit.

Here is the log
https://obsproject.com/logs/kpW-yAUcvLHa50Bq


For this test i decided to use 6000 bits recording, as this will be closer to what I will actually stream with, and I set the encoding setting to "veryfast". I also reduced the the downscale to 16 bits.

Here is what I am finding. OBS idela is taking 29% of the CPU, that is just looping a video in the background in Studio Mode. Something is going on with the processor. It is the only thing I can come up with that adds up to what I am seeing.
 

Harold

Active Member
If this is in a remote server, you're not connecting to a terminal session that is actually running on the card which is REQUIRED for obs to work right.
 

DragonBorne

New Member
If this is in a remote server, you're not connecting to a terminal session that is actually running on the card which is REQUIRED for obs to work right.
This is not remote, I am plugged into the computer directly.

One thing I will add is the computer does not default to the graphics card, and still uses the VGA on the mother board as a monitor. I found that strange but did not think much of it. Is it possible the motherboard is not using the graphics card correctly due to how it is setup? Again just adding what ever I can to help try and understand what is going on.
 

DragonBorne

New Member
PROBLEM SLOVED:

Plugging a monitor into the graphics card solved EVERYTHING!..... before you question why on earth I did not have a monitor plugged into the graphics card let me just say that this server mother board has a VGA port that forces the VGA to be the primary display. I think i can turn that off, but while setting up i figured why not just setup the PC using the VGA and worry about using another monitor later. I had no idea that OBS would not use the graphics card if I did not have a monitor plugged into it. I would argue that is odd I even had to plug a monitor into the graphics card, but it could be how the Super Micro Mother board works.

Thank you for all the help, you guys letting me know it is the graphics card saved me a ton of time of chasing the wrong problem. THANK YOU!
 

koala

Active Member
This is no OBS issue, this is how Windows handles devices. If Windows doesn't show a GPU as available device, OBS isn't able to use it, because from an application point of view, this device doesn't exist.
 
Top