Performance issues with 3ch key/fill

I’ve been running into random problems with a 3ch server.
We’re running an i9 9920x, gtx 1080, and 3 Decklink 4k extremes.
Most of our graphics are running off of HTML templates. Nothing crazy, some basic css and js text effects and a few moving divs.

When we have all three channels loaded up and running, we start to see some stuttering with the animation and scrolling text gets closer to 15fps.

CPU usage remains low, GPU copy function hits around 80-85%, which is where I think the problem is.
Do I need to get a faster GPU? and if so, which one?
Otherwise, is there optimization in the HTML or config that I should look into?

Here’s a section of the config, identical across all 3 cards

                <device>3</device>
               <!-- <key-device>4</key-device> -->
               <embedded-audio>false</embedded-audio>
               <channel-layout>stereo</channel-layout>
               <latency>normal</latency>
               <keyer>default</keyer>
               <key-only>false</key-only>
               <buffer-depth>5</buffer-depth>
       </decklink>

Issue resolved.
Not really sure what fixed it, but we made these changes.

  • Swapped the Extreme cards around to all 8x slots. The cards themselves are 4x, but this bypasses the multiplexer. (using an Asus x299 SAGE motherboard)
  • Removed a couple additional PCIe 4x cards we had in the system that occupied those slots.
  • Changed BIOS settings for PCIe from Auto → Gen 3
  • Updated Nvidia drivers from 441->445
  • Removed a few random startup programs, Steam, discord, ect
  • Edited config from above to
               <embedded-audio>false</embedded-audio>
               <latency>normal</latency>
               <keyer>external</keyer>
             <key-only>false</key-only>
             <buffer-depth>3</buffer-depth>
            <custom-allocator>true</custom-allocator>

I personally haven’t been able to find documentation on the “custom-allocator” flag, so if anyone can explain that would be nice.