JohnCoates / Aerial

Apple TV Aerial Screensaver for Mac
MIT License
20.78k stars 1.05k forks source link

Updating to the new V2 screensaver causing high CPU and ramped up fans (didn't used to) #1077

Closed Nach0-Stallion closed 4 years ago

Nach0-Stallion commented 4 years ago

Hi, I have been running this screensaver setup for about 6 months and its been fantastic, but I have found that the recent update is causing not only high GPU and ramped up fan speed, but this is also causing stuttering of the video. running a MBP 2017 4TBT3 with 16GB RAM, and 10.15.6 on 2 external 2K displays and the built in one. Nothing else had changed but the new version running the spanned option and 4K HEVC

I realise another poster wrote about heating, and I understand that running videos can cause stress, but nothing hardware wise or other software has changed only the update to the screen saver and new companion app. If its something I have to love with because of re-written framework then so be it but its now quite a noticeable noise in the quiet office. Any support is appreciated, cheers.

glouel commented 4 years ago

Hi @Nach0-Stallion

So first, let me point out, nothing changed at the core. It's still the exact same video playback code. The only thing that was added and may be an issue (or not) is that downloads can happen in the background, while the screensaver plays. This seems to work fine for most, but maybe there's a bad interaction in some specific cases that I didn't pick during the beta. Apart from that, you should have the exact same experience you had with 1.9.2 and earlier versions.

What's very likely is that at first install, I let you pick from different video formats. And if you had the old default (1080pH264), what I did was try to select the best format for your machine, based on my understanding on what it can handle.

In retrospect that wasn't a great idea. You mention that you are now running 4K HEVC which wasn't the case before right ? 4K HEVC can cause extra CPU and GPU load compared to the lower format, especially on a laptop, and definitely may be what's behind you are experiencing here. I think that if you switched back to, say, 1080pHEVC or 1080pH264, you'll find the experience you were used to previously.

Capture d’écran 2020-08-24 à 10 23 21

In that very same panel, at the bottom you can start the first time setup again. I would suggest trying that, it will let you play one video (you can try multiples with the refresh button) in multiple formats. This way you can switch on the fly, and hear which formats is the best for you.

Capture d’écran 2020-08-24 à 10 23 40

Can you give that a shot and let me know ?

Sorry about the confusion, I really should not have put that panel in here in retrospect or put more attention to it.

G.

Nach0-Stallion commented 4 years ago

Hi @Nach0-Stallion

So first, let me point out, nothing changed at the core. It's still the exact same video playback code. The only thing that was added and may be an issue (or not) is that downloads can happen in the background, while the screensaver plays. This seems to work fine for most, but maybe there's a bad interaction in some specific cases that I didn't pick during the beta. Apart from that, you should have the exact same experience you had with 1.9.2 and earlier versions.

Hi, thanks for getting back to me, I really appreciate the detailed reply, I may just try setting it up from scratch, but it wasn't downloading, I had the 4K HEVC from the first install, I manually selected them and had the 2 themes (space and ocean) cached locally so it didn't use all my works bandwidth. I know it can ramp up but I have never heard my system ramp up like this with only the screen saver running. (It does with teams video chat however)

I have since tried running 1080P H264 and its runs without ramping up. I will try another setting here and there (it's a work machine to my tinker time is limited to breaks etc)

Everyone compliments the screensaver when they walk past and see a ocean full of jellyfish running spanned across 3 screens and I have given the download info to everyone there :)

What's very likely is that at first install, I let you pick from different video formats. And if you had the old default (1080pH264), what I did was try to select the best format for your machine, based on my understanding on what it can handle.

In retrospect that wasn't a great idea. You mention that you are now running 4K HEVC which wasn't the case before right ? 4K HEVC can cause extra CPU and GPU load compared to the lower format, especially on a laptop, and definitely may be what's behind you are experiencing here. I think that if you switched back to, say, 1080pHEVC or 1080pH264, you'll find the experience you were used to previously.

I will experiment with time, but I had locally cashed 4K HVEC playing without issue before

Sorry about the confusion, I really should not have put that panel in here in retrospect or put more attention to it.

I'm sorry to have taken your time, I think the app is fantastic and it's only because I noticed it ramping up after the update I thought maybe it's something I have done. Again with the 1080P stuff it seems fine, but I will try again with the 4K and report back!

Thanks again!

glouel commented 4 years ago

Hi, thanks for getting back to me, I really appreciate the detailed reply, I may just try setting it up from scratch, but it wasn't downloading, I had the 4K HEVC from the first install

Just to be sure I get it right, 6 months ago you mean you had 4K HEVC too, right? Not the first install of V2?

I manually selected them and had the 2 themes (space and ocean) cached locally so it didn't use all my works bandwidth.

Ok !

I know it can ramp up but I have never heard my system ramp up like this with only the screen saver running. (It does with teams video chat however)

Question, can you make a screenshot of your Settings > Cache, just to see exactly how you are setup there ? I'm wondering if you were experiencing downloads on top of the playback (which should have 0 impact at all on performance, but you're the third report that there might be something I missed).

I have since tried running 1080P H264 and its runs without ramping up. I will try another setting here and there (it's a work machine to my tinker time is limited to breaks etc)

No worries. 1080p should be infinitely easier on the CPU/GPU. HDR adds a lot on top of 4K. In general, what I suggest is to take one of the videos from the cache where you hear the spinning, and open it up in QuickTime. If you hear your fans start to spin up, then it's just the format being too much for your mac/macOS version (things change a lot from version to version on that topic, it's a bit of a mess on Intel cpus, things will get a loooot better when they switch).

To access your cache, you can go into the advanced panel in Aerial's settings, next to Debug Log at the bottom there's a show in finder button. That will open your Aerial's Application Support folder where it stores its stuff. Inside there's a "Cache" folder and your videos are in there. So try and make the comparison if/when you have time (no hurry). If there's a mismatch, then something is wrong on my end.

Everyone compliments the screensaver when they walk past and see a ocean full of jellyfish running spanned across 3 screens and I have given the download info to everyone there :)

Glad everyone enjoys it, spread the word ;)

I will experiment with time, but I had locally cashed 4K HVEC playing without issue before

So see above, show me your cache settings when your can. I also have to ask, since this is a work machine, do you have software like firewall (maybe not little snitch), some company proxy, some anti virus/malware, etc running ?

I'm sorry to have taken your time, I think the app is fantastic and it's only because I noticed it ramping up after the update I thought maybe it's something I have done.

No worries. If there's a bug I want to squash it asap !

Again with the 1080P stuff it seems fine, but I will try again with the 4K and report back!

See the stuff above and let me know when you can thanks !

disrupted commented 4 years ago

I am seeing abysmal performance even with 1080p H264 since upgrading to v2.

glouel commented 4 years ago

I am seeing abysmal performance even with 1080p H264 since upgrading to v2.

Hi @disrupted sorry about that. Can you tell me what you have in Cache settings so I can try and narrow it down ?

disrupted commented 4 years ago

I am seeing abysmal performance even with 1080p H264 since upgrading to v2.

Hi @disrupted sorry about that. Can you tell me what you have in Cache settings so I can try and narrow it down ?

no need to apologize haha, I just wanted to add my feedback. here is my Settings → Cache screen

screen_20200824_191648

edit: also when I go into the folder and play the videos with mpv or iina they are very smooth but inside Aerial they are extremely choppy, dropping a lot of frames.

glouel commented 4 years ago

Ok so no automatic downloads so that's another issue then. Some info about your mac model and macos version may help narrow it down a bit.

mpv is not a good comparison point, please try Quicktime and compare with that, that's the closest experience to Aerial thanks.

disrupted commented 4 years ago

Model is a MacBookPro12,1 (Retina, 13-inch, Early 2015) running macOS 10.15.6 Catalina. same files play well in QuickTime.

glouel commented 4 years ago

Thanks. I'll try to check some things around here and get back to you. In the meantime could you go in Advanced, enable "Debug Log", close the panel and system preferences, then launch the screensaver once where it lags. This will generate a log that I can check for issues (you can find it afterwards, same place you enabled it).

ntadej commented 4 years ago

Hi @glouel, I have the same issue. It is even more evident when running on multiple displays (cloned mode). I'm attaching today's log: log_for_ticket.txt

glouel commented 4 years ago

Hi @glouel, I have the same issue. It is even more evident when running on multiple displays (cloned mode). I'm attaching today's log: log_for_ticket.txt

Hi @ntadej

Can you tell me which mac model you are running ? I'm trying to narrow it down, here's what I gathered from your logs:

I'm starting to wonder if that on some Macs, the new community videos may not get decoded by the GPU, unlike some of the Apple ones.

One thing I noticed on my very old MacBook Air is that some of the most recent Apple videos don't get hardware decoded. This is particularly noticeable with the Sea videos from last year. I think in your case it's possible that this may be the same issue with the community ones which are highly compressed and may be using a too efficient encoding profile that's not handled by QuickSync on your mac.

So on top of your mac model, if you don't mind, I'd love for you to test a theory for me by running this experiment:

Capture d’écran 2020-08-26 à 14 04 53

Right/Option click tvOS 13 and select "Hide". Do the same for Community Videos.

You should only have one source remaining, tvOS 10. If you go back on top of the Sidebar to Currently Playing, with "Everything" selected you should only have 9 videos remaining. Those are the oldest, 1080p only, most compatible and likely easiest to run on every mac. You may need to cache a few of these (pressing favorite on one or two will download them for you right away).

Can you tell me if you are experiencing fan spin in that case ?

ntadej commented 4 years ago

Hi @glouel,

It is indeed the early 2015 MacBook Air. I never had large issues with tvOS 13 videos with 1.X. Some did spin fans a little, but only sometimes and it might have also been something running in the background. At least all videos always played smoothly when cloned on two screens, I just needed to disable all permanent overlays.

I tried now with only my mac's screen and it works much better. I also tried to disable ALL overlays (including the temporary location label) and it did not improve with multiple screens.

I will try also rebooting my mac later when off work if you think it might help.

glouel commented 4 years ago

Just to give you a bit of perspective the macbook air I mentioned is a 2011 but hardware decoding is a bit weird on macOS and Intel CPUs. It's not every video that caused issues to be clear.

But I'm a bit puzzled by the overlays causing you issues, and that cloned mode has worse performance too.

I would suggest you give my theory a shot and disable both tvOS 13 and community, just to check, see how performance are with two screens that way. Is there an improvement or not ? And we'll try to go from there thanks !

Edit : Hopefully you'll see this, but can you confirm that you had performance issues with overlays in 1.9.X too ? I read that right ?!

bennokress commented 4 years ago

I have the same issue and can confirm that it must have some problem when running on more than one display: before v2 i could run Aerial with 4K HEVC Videos on my MacBook (15', 2016) and my external display without any stutter, after the update it always stutters in this setup regardless of quality settings and also regardless of what videos are hidden (your theory). However disconnecting the external display immediately resolves the issue and everything is running smoothly.

glouel commented 4 years ago

Hi @bennokress that's super intriguing, can you confirm which display mode you are using (cloned/spanned) so that I can narrow it down ?

I didn't think I changed anything regarding multi monitor but must have broken something... I'll have a look thanks

bennokress commented 4 years ago

I have it on "independent".

glouel commented 4 years ago

Could you try cloned just to see? Cloned should perform the same as 1 screen only. I'll investigate independant right now thanks.

ntadej commented 4 years ago

I use cloned and I still see the issue.

glouel commented 4 years ago

I haven't managed to reproduce the issue on my 2015 iMac with an external screen, I may see things being a tiny tiny bit worse on my old 2011 Macbook Air in Independant mode, but its so slow it also slightly stutter with 1.9.2 too.

In cloned mode I couldn't see any difference between 1.9.2 and 2.0.0, so I'm still missing something.

Can you "describe" the stutter ? Is it intermittent, constant, does it look like it skips a frame, or like pause half a second, and in cloned mode, does this happen on both screens or just one ?

Trying to narrow it down a bit, I'm going to try and compare code between 2.0.0 and 1.9.2, I haven't changed anything major in there but apparently I've changed enough...

Thanks in any case

glouel commented 4 years ago

So to all, I tried a few things. I'll be clear, I don't think I solved it, I may have made it worse. But since I can't seem to replicate, could one of you give this build a shot and let me know : https://github.com/glouel/Aerial/releases/download/v2.0.5test1/Aerial.saver.zip

bennokress commented 4 years ago

Could you try cloned just to see? Cloned should perform the same as 1 screen only. I'll investigate independant right now thanks.

At first it's like a slow motion video with a low framerate and with the fans ramping up the intervals of the frames are getting longer and more irregular. I hope this makes sense for you 😄

So to all, I tried a few things. I'll be clear, I don't think I solved it, I may have made it worse. But since I can't seem to replicate, could one of you give this build a shot and let me know : glouel/Aerial@v2.0.5test1 Aerial.saver.zip (download)

I don't want to be the one to jinx it, but running the preview with the test version is working smoothly again. I have to do work on the machine now, but after the lunch break I will report back, if it also works for a longer period.

bennokress commented 4 years ago

After letting the test version of Aerial run in my break, I can say the stuttering is gone, only CPU usage is still high and fans are noticably going faster: CPU Usage I think it's not more than before v2 now and might be caused by using 4K HEVC.

glouel commented 4 years ago

@bennokress thanks a whole lot for doing the testing, as I think there might be something specific to some generations of iGPUs in here.

In general, what I did is add some more threading to the player code, and hopefully some optimizations to the overlay drawing (which quite frankly should have 0 impact on performance by itself, what "consumes" a tiny bit of cpu time is the drawing of the shadows behind the text, we're talking less than a handful of % of 1 cpu core). When it comes to CPU usage here, it's likely that it's the 4K HEVC decoding that goes to the CPU instead of the GPU. Not all profiles of HEVC are handled by the QuickSync decoding unit in the iGPU of your Mac, and sometimes Apple defer the decoding to the CPU while in theory it should have done it via QuickSync. Some of it is a bit mysterious and I have 0 control over it.

I did investigate at multiple points using libVLC and it was never really convincing to play those particular videos (no offense to the incredible job they are doing in general), but a quick check yesterday while I was pulling my hair out showed me that despite enabling hardware acceleration in VLC, it didn't seem to use it at all (could be a big sur thing) and it used 2x more cpu.

Back to Aerial, one thing that "changed" is the fact that I'm using the Big Sur beta SDK to build aerial 2.X, it's possible there are some video playback bugs in there too on some systems and that I just made things a bit easier by adding more threading but that the root of the issue is somewhere else... I'll release 2.0.5 later on compiled with the new SDK from yesterday, this may be an interesting comparison.

Another option would be recompiling 2.0 with the "old" sdk and compare performance on the affected systems.

Anyway, thanks again for following up on this!

glouel commented 4 years ago

@Nach0-Stallion @disrupted @ntadej could you please try 2.0.5 (use companion to update or link here https://github.com/JohnCoates/Aerial/releases/download/v2.0.5/Aerial.saver.zip) and let me if it improves things for you ? Thanks

Nach0-Stallion commented 4 years ago

Hi @glouel I came to work to find my system has already updated to this version, however there is no longer any video, it's blank and regardless of the options I pick or clicking the preview window (which also shows as blank in the screensaver prefs) no video is displayed. I have tried resetting all settings and tried launching the setup again I won't have time to uninstall and reinstall today , but yeah she broke. :/

@Nach0-Stallion @disrupted @ntadej could you please try 2.0.5 (use companion to update or link here https://github.com/JohnCoates/Aerial/releases/download/v2.0.5/Aerial.saver.zip) and let me if it improves things for you ? Thanks

glouel commented 4 years ago

Hi @glouel I came to work to find my system has already updated to this version, however there is no longer any video, it's blank and regardless of the options I pick or clicking the preview window (which also shows as blank in the screensaver prefs) no video is displayed. I have tried resetting all settings and tried launching the setup again I won't have time to uninstall and reinstall today , but yeah she broke. :/

Sorry about that !

This is weird. If you have a second, can you enable debug logs, try to launch the screensaver once, and send me the generated log ?

I did get 2 reports that it fixed the stuttering/cpu fan issue so far but I'm unclear what has happenned to you here...

(one thing that I could see is that maybe you enabled the ignore by Time Machine setting and either macOS or some 3rd party utility helpfully claimed some free disk space and wiped your cache, as I tried to warn when one enables that thing? Though I'm not sure it fits what I read from your report so please try and give the the log when you can).

ntadej commented 4 years ago

@Nach0-Stallion @disrupted @ntadej could you please try 2.0.5 (use companion to update or link here https://github.com/JohnCoates/Aerial/releases/download/v2.0.5/Aerial.saver.zip) and let me if it improves things for you ? Thanks

I can also confirm this release fixes the issue (no issues with the update).

glouel commented 4 years ago

I can also confirm this release fixes the issue (no issues with the update).

Thanks for the confirmation @ntadej ! I've had five so far I think that it fixed the issue so hopefully this is fixed for good. I'll be closing this, @Nach0-Stallion if you want me to help you with your other issue just ping me here or anywhere, and to all thanks for the reports and feel free to open one again if something comes up!

ntadej commented 4 years ago

Hmm, it might be something else but it seems the issue is back with 2.0.6. Could that be possible?

Looking at the git log I do not see obviously what changed. Is it something local in the way how the screensaver is built?

glouel commented 4 years ago

Oh wow, that's interesting. Basically I just changed the rendering of the text because one trick I used made it less crisp on retina screens. This has literally 0 impact on my systems but it looks like this may be what's causing issues for you hmm, slightly crazy.

So here's the plan, I'll make a preference option in settings in the meantime, I do think it's probably a SDK bug on some specific GPUs. Thanks for the heads up I4ll try to push that ASAP.

glouel commented 4 years ago

@ntadej

2.0.7 is out, it should show up in companion in a few minutes (there's a bit of lag). By default I disabled what I'm calling the high quality text rendering (technically, rasterizing the CATextLayer). Enabling/disabling that has 0 impact here on 3 systems which is quite crazy. I left it disabled by default for now but you can use that to double check if needed.

Capture d’écran 2020-08-30 à 16 01 23

Nach0-Stallion commented 4 years ago

@ntadej

2.0.7 is out, it should show up in companion in a few minutes (there's a bit of lag).

Been running 2.0.7 at work, all seems happy, I had to manually download 1 video because mine were blank but after that I set it to auto cache again and it's working as expected with no ramping in fans!!

Yay 😃

Thanks a million.

glouel commented 4 years ago

@Nach0-Stallion you're welcome! Just to clarify, did you use to only stream videos previously ? It looks like I have a bug that may just impact those users if there's no video at all, and just downloading one gets the whole thing started.

But it may be more general, I'll double check, thanks!

Nach0-Stallion commented 4 years ago

@Nach0-Stallion you're welcome! Just to clarify, did you use to only stream videos previously ? It looks like I have a bug that may just impact those users if there's no video at all, and just downloading one gets the whole thing started.

But it may be more general, I'll double check, thanks!

I usually have them cached, but because of the testing I was swapping to 1080P, and HVEC /264 and 4K to see what would ramp fans and what wouldn't so something may have broken there but once I set the Rez, downloaded one they have all started working , in 4K spanned across the 3 displays with no performance/fan issue!! ❤️

charlesomer commented 3 years ago

I just wanted to add my findings here (based on a 2017 MacBook Pro, MacBookPro14,3) - apologies if this is already known or noted somewhere.

I've been facing the same high fan spin issues as mentioned above and it seems to be that despite my MacBook supporting HEVC, it doesn't officially support HDR https://support.apple.com/en-gb/HT210980. Whilst I can play the 4K HDR videos just fine with the screensaver, the fans spin up to a significant volume. So, I have to chose between 1080p HDR or 4K HEVC it seems - both of which appear to be just fine.

Perhaps as well as checking for h264 and HEVC Main10 acceleration, support for 4K HDR could be checked as well with a warning that whilst it may work, fan speed may be noticeably high? It's a shame there aren't HDR videos at resolutions that match the MacBooks.

Finally, is there any consensus as to whether or not 4K HEVC or 1080p HDR would be a better choice? It seems even though the MacBook I have doesn't support HDR, there's still a noticeable difference (very clear in the initial setup).

Thank you for your work!