logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
Slay33D  
#1 Posted : Sunday, June 17, 2018 7:39:42 PM(UTC)
Slay33D

Rank: Member

Groups: Registered
Joined: 3/18/2014(UTC)
Posts: 13

Thanks: 2 times
When an XAML input is playing, the CPU usage rises dramatically and instantaneously to sometimes take up an entire core. This happens with the XAML files shipped with vMix as well as custom made ones loaded both from a .xaml file and a .dll file. There does not appear to be any pattern to the CPU usage - there can be no animation, many animations, in fact it can be completely blank and the CPU usage will still be high.

I checked to see if vMix was trying to call a subroutine in code behind (play, getposition etc) but that does not seem to be the case. Reducing the CPU usage in this case would make vMix 10x more useful to me. It is still possible to use XAML, it's just more intensive than it ought to be.

Affects all versions of vMix I have used (a lot, and including the very latest).

Does anybody have an idea why the CPU usage is so high only when playing? Is it a bug or something I can work around?
SportsNetUSA.net  
#2 Posted : Monday, June 18, 2018 2:18:53 AM(UTC)
SportsNetUSA.net

Rank: Advanced Member

Groups: Registered
Joined: 10/7/2015(UTC)
Posts: 635
Location: California

Thanks: 122 times
Was thanked: 123 time(s) in 115 post(s)
Check out this thread.

https://forums.vmix.com/default.aspx?g=posts&t=14837

Are you using the latest NVIDIA drivers?

Did this start after Windows 10 1803 update?
Slay33D  
#3 Posted : Monday, June 18, 2018 11:17:05 AM(UTC)
Slay33D

Rank: Member

Groups: Registered
Joined: 3/18/2014(UTC)
Posts: 13

Thanks: 2 times
I have tested this on two computers recently, one running Windows 10 1803 with the latest NVIDIA drivers and the other Windows Server 2012 R2 with Intel drivers. The problem has been evident for years though - I just hadn’t tested it as thoroughly as I wanted (I thought compiling a WPF control thing would yield higher performance, but it has the same problem).
doggy  
#4 Posted : Monday, June 18, 2018 11:25:44 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,225
Belgium
Location: Belgium

Thanks: 293 times
Was thanked: 955 time(s) in 790 post(s)
I "play" multiple high background processing xaml .dll's simultaniously and don't see that problem
Mind you I do avoid using shadows.

V.45 /W10 1803/GTX 960M
Slay33D  
#5 Posted : Monday, June 18, 2018 12:56:27 PM(UTC)
Slay33D

Rank: Member

Groups: Registered
Joined: 3/18/2014(UTC)
Posts: 13

Thanks: 2 times
I appreciate your feedback - although it confuses me why I would experience the same problem on two completely different systems.

I have done some testing and I will explain in more detail where my problem arises.

My WPF user control library grabs a bunch of data from a JSON source (downloaded from the Internet) and outputs it as text in a listbox. It uses WPF data binding. It has a variety of elements for aesthetic purposes, but does not have any animations. It uses Viewboxes to make it (theoretically) resolution independent, but the same happens without. I load it into vMix as a .dll file implementing vMixInterop.

All of the code that runs is independent of the input being "played". Absolutely nothing should happen when I click play because the sub that implements vMixWPFUserControl.Play does not have any code in it.

At no point other than when the input is "played" does the CPU usage rise. My own code is not intensive enough to make any noticeable impact. Upon clicking pause, the CPU usage drops back down.

Here are some screenshots of Task Manager during play and pause states: Screenshots
(Ignore GPU usage - it was moving up and down a lot anyway with or without the XAML)

For fun I created a blank .dll that implemented vMixInterop. While the CPU usage was dramatically lower, it still went up when I clicked play, if only by one or two percent. Again, this is completely blank and runs no code at all, other than returning duration and position as 0.

I also wrote some code in each of the events to add to a counter whenever a vMixInterop event was fired. It did not seem out of the ordinary, and the speed of the counters rising did not change when the input was paused.

System specs:
Intel Core i7 6700k (stock speeds)
NVIDIA GeForce GTX 980
Windows 10 1803
Users browsing this topic
Guest (3)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.