Jump to content
LaunchBox Community Forums

COLORFUL bigbox theme


viking

Recommended Posts

Yay performance optimizations!!

Sidenote - is there a way to NOT wait for videos during navigation? I I noticed that I cannot navigate away from a game until the video is loaded, which is really limiting if I keep my videos on a slower drive. Not sure if its unique to this theme or a global issue.

Also, does this theme parse the games xml more than others by any chance (not sure if that is even a thing)? I can't figure out if its just the size of my collection (~7500 games across ~15 systems) causing issues.  There has to be a correlation between the number of games in the platform and the slowless between switching platforms.

Link to comment
Share on other sites

OK, I read some Microsoft optimization guide and started to fix my code.
The goal here, is to have the smoothest animation possible, even on lower spec PC.

Here is a version that I would like you to test.  (Not yet by official channels)
Colorful_beta_v.0.7.5_performance-test.zip

 
!! IMPORTANT !!   
I've only changed "PlatformWheel
1FiltersView.xaml" (Light one) in this version.
You can compare the performance difference with "PlatformWheel
2FiltersView.xaml" (Dark one) who hasn't changed.

 

@johnsanc @BendBombBoom @Kevin_Flynn  ... and all those with performance issues with Colorful, can you give me your feedback on this corrected view?? Thx ! ?

@Jason Carr I dont know if you can run your benchmarks on a single view, but I'll be curious to know the benefit of my work on that!

 

For information, here are the changes I made:

  • On all Bitmap, I changed RenderOptions.BitmapScalingMode, from "HighQuality" to "LowQuality" = It's about scaling. No visible difference with my 4K assets.
  • To reduce the number of elements displayed, I replaced all the Rectangle/Fill with Grid/Background.
  • Remove the coded drop shadow from the info block. Replaced by a PNG Bitmap.
  • BIG size optimization of all PNG files. Theme + ClearLogo.
  • Replace the opacity value =0, with Visibility/Collapsed to remove temporarily invisible elements from the display process.

I hope it all helps! It seems more smooth on my PC.
I don't know what to do after that. ?
Give me your feedback Please!!

The truth is, that is the video animation (slide) that slows everything down. It is strongly discouraged by Microsoft. But it is also the foundation of my theme design! I am trapped ! ?

Edited by viking
  • Like 1
Link to comment
Share on other sites

@viking I've tested on my lowest-end PC, and performance was great for both views, though I think it was probably very slightly faster with the white view. However, that PC is using a 1080p monitor and of course the 1080p videos. With 1080p videos and resolutions on low-end machines, performance is perfectly fine in my book; it was butter smooth for me for both views, really. I've learned though that the video card definitely matters, so it might be more of an issue for integrated graphics (I do have dedicated video cards in my older machines).

Next, I tested the theme on my DELL XPS 15, which of course uses integrated graphics and a 4K resolution, which can be a performance killer. Performance is definitely less on that machine, and it appears to be bottlenecked by the video card, but even with 4K videos and a 4K resolution, things were certainly smooth enough.

I'd be curious to know people's hardware configurations that are struggling with the theme, as I really don't have any machines that are seeing any real performance issues with either views. I wish I could test on my GPD Win 2, but sadly the dumb thing is apparently broken now and refuses to turn on (that's lovely).

All this to say, for me, I see no real performance issues at all on any of my machines, for either view. All I can figure is that machines that are struggling are either ancient, or are using old-ish integrated graphics.

One more thing: all my testing was done with VLC as the video playback engine, since WMP is no longer recommended for use at all due to the unfortunate WMP stability issues that MS has introduced with the past few Windows 10 updates.

  • Thanks 1
Link to comment
Share on other sites

Just a couple more final notes: I am seeing better performance with the white theme, so I do think it's definitely worth keeping those performance improvements. Also, it looks like the performance killing combination is 4K resolutions and 4K videos with integrated graphics or low-end video cards. I do get better performance out of the WMP video playback engine, but then you might run into stability issues due to MS's bugs. But simply using the 1080p videos on my XPS 15 does make a big difference in performance, as would changing the resolution to 1080p. I think performance expectations are perfectly fine, especially with the improvements you introduced. :)

  • Thanks 1
Link to comment
Share on other sites

I’ll check this out this evening. For now here is my hardware config that was causing performance issues:

Ryzen 3900X
ASRock Creator motherboard
32 GB DDR4 ECC RAM (2666 MHz)
RTX 2070 gfx card
1 TB PCIE 4.0 NVME drive for OS and platform videos
860 EVO SSD for game images
5400rpm drives for game videos
 

Note that I use Unraid as a host OS and use a windows 10 VM with hardware pass through for my graphics card and 8 cores dedicated.

Gaming is butter smooth with the latest games, BigBox still struggles especially with the colorful theme.

did you see my note above about videos delaying navigation? Can that be fixed?

  • Thanks 1
Link to comment
Share on other sites

4 minutes ago, johnsanc said:

I’ll check this out this evening. For now here is my hardware config that was causing performance issues:

Ryzen 3900X
ASRock Creator motherboard
32 GB DDR4 ECC RAM (2666 MHz)
RTX 2070 gfx card
1 TB PCIE 4.0 NVME drive for OS and platform videos
860 EVO SSD for game images
5400rpm drives for game videos
 

Note that I use Unraid as a host OS and use a windows 10 VM with hardware pass through for my graphics card and 8 cores dedicated.

Gaming is butter smooth with the latest games, BigBox still struggles especially with the colorful theme.

did you see my note above about videos delaying navigation? Can that be fixed?

Yikes, I'm honestly unfamiliar with Unraid's ability to create performant virtual machines, but that could very well be the cause of serious performance issues. To be honest, it would definitely be worth testing things on the bare hardware to see how much of a difference it makes. I know virtualization technologies have come a very long way, but I also know that only Microsoft Hyper-V and VMware have what I would call performant solutions for virtualization, and I doubt that Unraid is using either of them. And even with the better solutions, there is always performance loss with virtualization. It's also possible that WPF is not well optimized under virtualization, I've done very little testing from that front.

Per videos loading, I don't see that issue on any of my machines, but I also don't run 5400 RPM drives on any of them. So I'm not really sure if that would be theme-specific or not. But running a 5400 RPM drive these days seems kind of silly, considering that you can pick up a huge 7200 RPM drive for less than fifty bucks.

Link to comment
Share on other sites

For what its worth, literally every benchmark and app I normally use performs just as good as bare metal since I have CPUs pinned and the GFX card passed through. If there are performance issues because of a VM then theres something seriously weird going on with BigBox specifically. Maybe I will take a video and post it so you can see what I am talking about. When the lags occur BigBox is literally flagged as unresponsive in Task Manager for several seconds. Also sometimes I get input lag of several seconds - which I have seen discussed elsewhere to no avail.

I don't mean to knock BigBox - its by far the best option available, but there is a lot of room for performance improvements given the hardware. I'll toy around with different settings to see if I can get it running smoother... or its entirely possible my expectations are just too high lol

Is there any verbose debug logging available? I have debug logging on but it doesn't tell me much aside from a few other bugs I've found (path length issue)

 

Edited by johnsanc
Link to comment
Share on other sites

19 minutes ago, johnsanc said:

For what its worth, literally every benchmark and app I normally use performs just as good as bare metal since I have CPUs pinned and the GFX card passed through. If there are performance issues because of a VM then theres something seriously weird going on with BigBox specifically. Maybe I will take a video and post it so you can see what I am talking about. When the lags occur BigBox is literally flagged as unresponsive in Task Manager for several seconds. Also sometimes I get input lag of several seconds - which I have seen discussed elsewhere to no avail.

I don't mean to knock BigBox - its by far the best option available, but there is a lot of room for performance improvements given the hardware. I'll toy around with different settings to see if I can get it running smoother... or its entirely possible my expectations are just too high lol

Is there any verbose debug logging available? I have debug logging on but it doesn't tell me much aside from a few other bugs I've found (path length issue)

There is indeed plenty of room for performance improvements in Big Box, yes. The intent for LaunchBox and Big Box has always been rapid development, tons of features, and ease of use, which we do tend to focus on. We have put a lot of work towards performance optimizations over the years, but we've built LaunchBox and Big Box on technologies that enable us to develop quickly and pump out new features, which means using more modern technologies and higher level languages than bare metal C++, and also provides us with things like the XAML theming engine that aren't available elsewhere.

All to say that yes, we know Big Box is more hardware intensive than it could be, but we would sacrifice many features if we spun our wheels trying to make it as low level and close to the hardware as possible. With hardware improving all the time, it makes much more sense for us to take advantage of rapid development and be able to pump out plenty of features than to double our development time to make things more lightweight.

Like I said, I haven't tested things in your specific VM environment (I've done some testing on VMware, but I doubt you're using VMware), so you're probably right: there probably is something weird going on that is specific to the VM environment. If we can find it and fix it that would be great, but honestly you may be the only one in the entire community who's using Big Box this way, so it's difficult for us to devote too much time to it.

I do think a video might help, though. We can look to see if anything shows up that would be a clue as to what's going on.

Link to comment
Share on other sites

@johnsanc as a fellow unraid'er, what model is the HDD? Not all HDD are made the same regardless of the RPM, i.e. the average read speed for 5400 RPM is 100 MB/s; however, for there to be an average that means there are drives far below that number. Secondly, if the drive is being used by other Virtual Machine's or dockers then it cuts away at that speed. The average 4K video is 50MB, whereas the highest is 82MB. It may take 1-4 seconds if it's a highly utilized drive. Third, where is LaunchBox installed? When you're scrolling through platforms it's actually reading your Data files to get a count of games. If your platforms have a large number of games you may see some stutter as it's reading the XML, this happens before the view changes.

Edited by Kevin_Flynn
Link to comment
Share on other sites

2 minutes ago, Kevin_Flynn said:

@Jason Carr Have you ever explored converting the data (XML) files to a local database? I wonder if it would increase performance, more so on larger platforms (i.e. Arcade) 

Yes, we have explored this. We would have to support both XML and a database if we did, because the community would be pretty upset if we just changed it all up. Regardless, some of the loading times could probably be improved with a database, but none of the stuff that we're discussing in this thread would improve at all by changing out the data backend.

Link to comment
Share on other sites

Hah that was quick to find another unraider. Theres a few things I noticed right off the bat that should improve performance - I noticed that unnecessary assets are accessed as I'm scrolling through the games list. For example Flyers when I'm using a theme that doesn't use them, and accessing images when I simply held down the down arrow on the keyboard. Things like this are low hanging fruit, especially to prevent thrashing if someone is using a mechanical drive.

I didn't mean to derail the conversation - Getting back to @viking's fix - The changes show a definitely improvement in the overall smoothness of animations. I still have an issue when I change to a platform for the first time during a BigBox session it takes several seconds in relation to how many games I have within that system. After an initial platform view its smooth as butter from there on out for that session. It feels like theres some kinda caching going on. Does the theme parse the platform xmls to calculate how many games there are? I dont quite understand why this is the only theme with that initial platform switching delay.

Link to comment
Share on other sites

I encounter the exact same as your video when I load BigBox over the network; but I took BigBox as the root cause as it persisted through other themes but was more prominent in game views. As a result I gave up entirely on running this over the network.

 

How did you check for which files are accessed? If there's a large number of random reads then that's for sure to slow it down. 

 

Unfortunately, I don't think we'll know without relying on Jason to debug / run diagnostics on it.

Link to comment
Share on other sites

@viking

It runs much better for me on my surface pro 6. I get odd hitching on the movie sliding as you mentioned above. I have had this with a couple themes and I have found it has to do with loading. A half second or more of extra padding in the timing in video visibility fixes most everything for me. I have attached my modified version of your platform so you can see what runs well on my lower spec machine.

I would like to add that my machine slows every time I change views or themes in the Bigbox settings. I suggest people restart BigBox to make sure it's running at it's full potential after playing with the settings.

PlatformWheel3FiltersView.xaml

Edited by BendBombBoom
Link to comment
Share on other sites

@Kevin_Flynn - I have Launchbox / BigBox installed on my NVME drive so all XMLs should be super fast to read. After double checking here is a summary of my current setup:

  • NVME Drive: Launchbox + Bigbox install + Platform videos
  • SSD: Game images + Game videos (technically these are part of a BTRFS cache pool and referenced as a SMB share but the drives are physically in the same machine, no other applications have performance issues because of this)
  • Array drives: Games only

I can try moving the images to my NVME drive, but honestly BigBox should not be attempting to access images before I even navigate to a game. When I look in my "Activity Streams" plugin in the unraid UI I do not see images being accessed from the platform view. Again, the platform switching delay is unique to this theme only.

Edited by johnsanc
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...