Site icon ProVideo Coalition

After Effects & Performance. Part 13: The Wilderness Years

pvc_zwar_aeperformance_featureimage_13
pvc_aeperformance_roger
I was going to write a funny caption about After Effects CC 2015.3, 2017, 2018 & 2019 but then I figured I didn’t need to. You can draw your own analogies…

By 2014 After Effects was roughly 21 years old.  The list of improvements and new features added since the release of version 1 is impressive, and in many cases it’s impossible to imagine working without some of the tools we now take for granted.  It’s hard to believe that the first release of After Effects only allowed one effect and one mask to be applied to each layer, and we only got text layers with version 6.

Every release of After Effects brings new features and tools to the application, and you’d generally assume that new releases of After Effects are welcomed and appreciated for their progress.  But this article is all about an unexpected step backwards, a period where a basic feature of After Effects stopped working properly.  I’m calling this period “the wilderness years”, and despite some recent improvements, we’re still not completely out of the woods yet.

I think it’s fair to add a disclaimer that this article is largely my opinion.  Maybe it’s an opinion that’s shared by other people, but unlike the history, dates, facts and figures that have got us this far, a lot of this comes down to what I think.

Milestones revisited

In previous articles I’ve mentioned several key years that I consider milestones when it comes to After Effects and performance.  The year 2006 saw Apple switch to Intel processors, and Intel replaced the Pentium 4 with the new Core range.  The new Core range ushered in the era of multi-processor computers on the desktop, a generational change that is still being felt today.  The same year, nVidia released the GeForce 8 and the CUDA language, enabling software developers to write code for GPUs.  So 2006 was kind of a big deal.

Next up we have 2010.  As detailed in part 9, After Effects loves memory.  In 2010, with the release of version CS 5, After Effects became a 64 bit application and was finally freed from the 4 gigabyte memory limit.  I personally believe that After Effects CS 5 was the most significant improvement AE has ever made in one release.

A few years later, we get to the topic of this article: After Effects CC 2014, and CC 2015.  For many readers this is the first time we’ve entered familiar territory, as a significant proportion of After Effects users are still using CC 2014.  Let’s look at why.

Remarkably unremarkable

After Effects CC 2014 itself wasn’t unusually remarkable, and it’s only with the value of hindsight that we can appreciate its significance.  Technically, CC 2014 was After Effects version 13.  As After Effects version 1 was released in 1993 and version 13 was released in 2014, we can calculate that After Effects averaged a new version every 18 months over that period. Each new version of After Effects had been steadily building on the previous release, and by the time we got to CC 2014 it was just over 21 years old.

From a technical perspective this meant a huge legacy code base still running as a single threaded application.

Many of the earlier articles in this series have looked at how computers have developed and improved over time, so we can see how the latest technical developments have affected After Effects.  In Part 6, we saw how Intel changed the future of computing by placing the emphasis on more CPUs, not faster ones. In Parts 10 & 11, we saw how the GPU emerged as the new focus for performance, presenting developers with an entirely new avenue for software development – but only for certain types of tasks.

By 2014, none of those developments had made a significant impact on After Effects.  The GPU had an almost negligible influence on rendering speed.  While some 3rd party plugins utilized the power of a GPU, After Effects itself did not.  As detailed in Part 12, you could pay thousands of dollars for an expensive Quadro video card and you would see exactly zero benefit when running After Effects.

After Effects was not multi-threaded; it had not been specifically coded to take advantage of multi-core processors.  In Part 8, we looked at how incredibly difficult the concept of programming for multiple processors is – not just for Adobe but for the entire industry.  Adobe had introduced the “render multiple frames simultaneously” feature, but it was not reliable or robust.

So After Effects CC 2014 was not a true multi-threaded application and it did not utilize a GPU – it was not written with CUDA or Open CL.  You could pay a lot of money for a multi-core CPU and a fast graphics card and After Effects would run just as fast on a much cheaper machine.  Going back to where this series began, it’s why I’ve always believed that an iMac with several Mac Minis represented better value for money than a single, fully specced Mac Pro.

This is where we started.

In 2014, you could buy the most powerful machine available, but After Effects simply wasn’t written to utilize that power.

Despite this, After Effects CC 2014 was a popular release for a good reason: it worked.  When released, it represented the latest and greatest version of After Effects there had ever been. Personally, the new advanced compositing options available for effects were something I was thrilled to see, as I’d requested something similar many years earlier.

End of the lines (of code…)

All of the technical history that was laid out in previous articles wasn’t for nothing.  All of the details about CPUs, GPUs and accelerated 3D rendering were to show that the direction of computing had changed.  When Intel started adding more processor cores, and when nVidia released a GPU that could be programmed by developers, and then the industry developed Open CL, it was more than a fancy new feature for the marketing department to sell.  It was a change in the way software would be developed and run for the foreseeable future.

But for After Effects users, it didn’t appear as though After Effects had changed with the industry.

Although there was no official announcement, no significant comments in any press releases and no paragraphs on the Adobe website, these developments hadn’t been ignored by the After Effects team.  While I don’t recall any public announcements, internally at Adobe a line had been drawn under CC 2014.

After Effects CC 2014 would be the last version of After Effects that ran as a single-threaded application, based on the legacy code base that could be traced back to the original release in 1993.

So After Effects CC 2014 itself wasn’t remarkable, it was just another incremental step forward.  What makes CC 2014 noteworthy is what came next.

15 comes after 14

After Effects CC 2015 represented the first step in a new direction for After Effects.  Under the hood, parts of After Effects had begun to be rewritten to harness the power the multi-core processors, and GPUs.

While this should have been good news, there was one problem:

Adobe totally screwed it up.

Can you see the ball in this picture? No you can’t, because Adobe dropped it in 2015.
The Preview options were overhauled with CC 2015.

Most notably for the user, the preview engine had been completely overhauled.  The old preview palette was gone, and after about 15 years of users hitting ‘0’ on the numeric keypad to start rendering a ram preview, there was now a whole range of new caching and playback options.  For newer users who are only used to hitting the space bar to preview, and perhaps haven’t done it any other way, using the spacebar was one of the new preview options introduced with CC 2015.

Except it didn’t work.  Not properly, anyway.

With versions CC 2014 and earlier, the most expensive machines didn’t necessarily render any faster than a cheaper one, but at least After Effects was capable of playing back a ram preview in real-time.  Just as importantly, if you had audio in your timeline then After Effects could play back the audio in-sync with the video.  Perhaps it didn’t seem remarkable that After Effects CC 2014 could play back audio and video in real-time, because it had been able to do it for the past 15 years.

But with CC 2015 it all changed.  You could open CC 2015 on a truly monster machine and it couldn’t even ram preview a few simple solids moving at 25 fps.  Audio was not playing back with video.  The ram preview had broken.

This wasn’t a problem related to resources.  This wasn’t a case of an optimistic individual trying to play 8K EXR files in 32 bit mode.  This was something that affected all projects, all resolutions, regardless of technical demands.  From my own personal experience, when CC 2015 came out I was working on a project that was just a bunch of solids animating with linear wipes, at the lowly resolution of 480 x 360.  Even in 8-bit mode, After Effects couldn’t consistently play a ram preview in real-time with audio.

To err is human, to really screw things up takes a computer

There are a few ways to look at the situation with CC 2015, and as I mentioned earlier, this article is mostly my opinion.  I don’t have technical facts, I don’t have any insider gossip, I don’t have any official quotes or responses from Adobe (in fairness to them, I haven’t asked yet).

On one hand, you could chalk the preview problems with CC 2015 down as a temporary maintenance issue.  After all, in order to make progress, sometimes you need to break things.  There are lots of management clichés about taking two steps backwards before you can take a step forward.  You could choose to interpret the problems with CC 2015 as a positive sign that Adobe was starting to re-write significant portions of AE.

Or, you could put it down as a bug.  After all, all software has bugs and it’s understandable that bugs can unfortunately make it into major releases.  After Effects had worked fine for the previous 15 years but now something had broken.  Surely it would be easy to work out what the problem was and just fix it?

But that’s not how I feel about the ram preview issues with CC 2015.  I personally don’t see it as anything but a monumental screw-up, and sometimes I still wonder if Adobe ever grasped how incredibly damaging it was, and continues to be.

Designing motion, not just adding movement

If any other part of After Effects had broken, I wouldn’t feel so strongly.  There’s a huge list of features After Effects has that could have broken, and for many of them I probably wouldn’t have noticed.  Smart Mask Interpolation could disappear altogether and it would be a few years before I realised.  When’s the last time you used the smoother, or motion sketch?

But not the ram preview.

Despite the fact it was only introduced in version 4, the ram preview has become a central tool around which After Effects revolves.  It is the single most significant feature that After Effects has for motion graphics design.

I wrote so much about the importance of After Effects as a design tool that it ended up being a totally separate article. It’s really long.

I actually wrote so much on this topic that I had to spin it off into a separate, unrelated article.  Because the reason I think that ram preview issues are so significant is because they directly relate to what After Effects is – a tool for designing motion.

Motion Graphics Design is not just taking static, traditional graphic design and adding a bit of movement.  The very name itself suggests so: Motion Design is Designing Motion.  Maybe it sounds pedantic to emphasise a difference, but it’s key to understanding the significance of the ram preview feature.  It’s why After Effects is not Photoshop.

Traditional graphic design was already being taught decades before the first computers were invented.  The typography terms “leading” and “kerning” date back hundred of years, basic principles of composition and layout are evident when Gutenberg started printing copies of the Bible.  If you pick up a textbook on graphic design – there are hundreds – they all cover the same ground.  Colour, typography, composition / layout and so on form an essential foundation.  Books and books are written about specific design topics.  There are “styles”, schools, influences, periods of time that are now referred to as design genres. Someone even made a great documentary about a font.

All of the principles of design apply equally to motion graphics, but in addition to traditional elements such as colour, composition and typography we also have the additional element of motion.

As a design tool, motion is just as significant as every other element of graphic design.  It’s not something we just tack on at the end.  The only notable difference is that movement and animation don’t lend themselves to being printed in textbooks.  But designing motion is like designing any other graphic element – you try it out, look at it, revise it, experiment with it, work away until you get something you’re happy with it.  That’s why motion designers use After Effects, and not Photoshop.

But that process doesn’t work if you can’t see what you’re doing.

Trying to design motion without being able to see your work moving is like trying to devise a colour scheme on a black & white monitor – or even without a monitor at all.  It’s like attempting to do a page layout without knowing anything about the size of the page, or where the borders are.

In fairness, I probably need to acknowledge that the ram preview wasn’t completely broken.  It’s just that it didn’t work properly.  The frame rate would not remain constant, audio would drop in and out and there were periods where you had to wait for the preview to play through once, very slowly, before it would play more consistently the next time around.

Because the ram preview still functioned, albeit in some sort of erratic, unpredictable bi-polar manner, it might have obscured how serious the playback problem was for users.  As a design tool, previewing motion simply must be reliable.  If you’re designing motion with audio, then you absolutely need the audio to play back perfectly with the video.

After Effects can certainly do a lot of things beyond motion design – compositing, visual fx, look development, colour grading, even editing.  I’ve been surprised at how much character animation is done using After Effects.  Within these fields, After Effects may be competent but it’s not the market leader.  For example, when it comes to compositing, After Effects is not the most powerful compositing program around, and it’s hardly used on high-end Hollywood productions.

But After Effects is THE application for motion graphics design.  While it can do a lot of other things, motion design is where After Effects is the undisputed industry standard.

After Effects remains the most popular – and important – tool for motion design, and the ram preview is the most important feature in After Effects for designing motion.

But when CC 2015 was released, it was broken.

Getting what you ask for

The quote “Sometimes you need to take a step back in order to move forward” is so popular that it’s printed on posters.  Apparently it’s motivational.

If you want to suggest features and improvements for After Effects, head over to the User Voice forum. The top request is to improve multi-threaded performance. There’s a detailed response from the After Effects development team.

Adobe has the “User Voice” forum where After Effects users can request features and vote on suggestions made by others.  For some time, the top request has been for Adobe to improve the multi-threaded performance in After Effects.  The request was posted in April 2018, and currently has 382 (mostly disparaging) comments, including a detailed response from the After Effects development team.  A similar request for greater GPU utilization is also popular.

There’s absolutely no doubt that the After Effects user base want better performance from After Effects.  With the incredible advances that 3D rendering has made over the past 10 years, it’s difficult to look at demos rendering 3D in real-time and wonder what’s going on when After Effects can’t even play a ram preview at 25 frames per second.  It’s hard to read press releases from AMD announcing 64 core processors and know that it won’t make After Effects run any faster.

But it’s become evident that making fundamental changes to an application that’s 25 years old is not simple.  In previous articles I’ve been sympathetic to Adobe, and I’ve tried to emphasise how difficult the concept of programming for multiple processors is.  Software developers can’t just press a button and suddenly have a program that runs 10 times faster, utilizing every processor core or additional GPU.

There’s also the question of compatibility.

If Adobe are expected to re-write their application to fully utilize the latest CPUs and GPUs, does the user-base expect it to continue to work exactly the same way?  What changes are the users willing to compromise on in order to get better performance?

I can’t answer on behalf of every After Effects user, but the release of CC 2015 at least gives us an indication.  Breaking significant features does not go down well.

Waiting for something

The Adobe user voice posting on multi-threading is an interesting read, especially considering there’s an official response from Adobe, but there’s an even more significant aspect to it than the actual request:  The post was made in April 2018, roughly 3 years after CC 2015 was released.

Personally, I can understand how monumental the task of updating a 20 year old application is, and I can accept that there might be temporary hiccups along the way.  Not every user updates to the newest version of After Effects as soon as it’s released.  I can accept that CC 2015 might have had a few problems when it was launched, and there’s a simple workaround: just don’t use it.  Wait for the bug fix, the latest patch release, or even the next version.  Sometimes users take months to get around to installing a new version, sometimes it takes years.  When I opened up the original CC 2015 to see if it was as bad as I remembered, I didn’t even recognize the splash screen.  I just hadn’t used it enough for it to make an impression.

But the bigger problem – bigger than the fact ram preview didn’t work properly when CC 2015 came out – was that it wasn’t fixed.

After Effects CC 2015 may have been an unusually buggy release, because a number of significant dot releases followed.  Almost exactly 1 year after the initial release, CC 2015.3 came out, touting a “new playback architecture”.  It was better, but it wasn’t perfect.  After Effects still didn’t play back audio and video in sync, reliably.  There never was a CC 2016. Roger screwed up.

Since then, we’ve had After Effects CC 2017, CC 2018 and then CC 2019.

In each case, ram preview improved but still wasn’t perfect.  You couldn’t guarantee that you’d get smooth, consistent 25 fps (or higher) playback on the most powerful machines, even at very low resolutions.  Audio sync was especially problematic.

As time went on the problem became more and more frustrating.  The buggy ram preview was clearly unrelated to the power of any specific computer.  You could buy a truly monster “God machine” and it still wouldn’t play back simple compositions reliably.

It’s hard to be sympathetic when CC 2014 worked fine.  You could open up CC 2014 on a 2009 Mac and it would work without problems.  You could open the same project on a brand new Windows machine with the most expensive GPUs and the ram preview frame rate would jump around, while the audio playback sounded like some sort of demonic possession.

Just to make sure my memory wasn’t playing tricks on me, I un-archived the project I referred to earlier.  It’s not important what it is, only that it’s remarkably low tech.  The composition resolution was 360 x 480. I was working in 8 bit mode.  All content is just a few solids animated with wipe patterns.  There are no tricks here, it really is as remarkably simple as it sounds.  But – most significantly – everything was being animated in time with a music track.  It was critical that my animations were synced up to beats, and to do that I needed to ram preview reliably.

This unusually low-resolution composition simply would not playback in real-time with CC 2015. Or 2015.3.  Or 2017. I had more luck with CC 2018 and CC 2019, but not for larger HD compositions.

This composition is very low res – 480 x 360. But After Effects CC 2015 and CC 2017 still couldn’t play a simple RAM preview smoothly, at 25 fps.

It was only with the release of CC 2020, in January this year, that we saw a big step forward.  For five years, the main application used for motion graphics design simply couldn’t play back video in real-time.

Some users are still using CC 2014 today.

All good things take time, I guess

I haven’t looked back to see exactly what Adobe said about CC 2015.  If the launch of CC 2015 made any reference to multi-threading then I don’t remember it, but I’d be surprised if it did.  I think the official line was that Adobe had now separated the code that ran the user interface from the code that did the rendering, or something similar.  If you trawl through enough user forums and online communities, and read through blog posts and articles, then you can find references to CC 2015 being the start of Adobe’s multi-threading efforts, but not a lot of technical details.

One sign that that CC 2015 was the start of something new was the absence of the “render multiple frames simultaneously” feature.  As detailed in part 8, this was Adobe’s initial attempt to harness multiple processors and processor cores.  It worked by running additional, invisible copies of After Effects in the background.  But now that AE was gearing up to utilise multi-core processors directly, this hack had to go.

Perhaps it was to be expected that the first step in completely overhauling a 20 year old code-base would result in a few hiccups.  All software has bugs.

But the bigger problem was that it wasn’t fixed quickly.  And the even bigger problem was that because it wasn’t fixed, it gave users the impression that it wasn’t a priority for Adobe.  And this made their user base feel like Adobe just didn’t get it.

And maybe they didn’t.  Maybe, just maybe, Adobe thought that having a ram preview which kind-of worked was good enough?

To this day, a significant number of After Effects users are still using CC 2014 because it’s the most recent version that has a robust, reliable ram preview.  Anyone who is animating video to audio – something fundamental to what After Effects should be able to do – will find CC 2014 to be more reliable than the later releases of CC 2017, CC 2018 and CC 2019.

Don’t you forget about me

Five years is a long time to feel ignored, and it’s particularly difficult to feel ignored at a time when it seemed as though the rest of the industry was racing ahead.

As I mentioned above – if it was any other feature, it wouldn’t have been so bad.  But the ram preview is essential to everyday workflows, and for nearly five years every time someone sat down to use After Effects they were faced with an animation program that couldn’t play animations properly.

Just as Adobe broke the ram preview in CC 2015, GPU rendering really began to take off. Cinema 4D emerged as a valuable tool for motion design in its own right.   While 3D animators were building monster machines with multiple GPUs and the latest multi-core processors, After Effects users were left with an application that felt like it was getting slower and slower.

From my own personal experiences, the motion designers I worked with on a daily basis were becoming increasingly frustrated with After Effects and were looking for alternatives.  It’s not difficult to find people who are quick to criticize Adobe products as slow and bloated, and nothing has done more to provoke animosity amongst motion designers than breaking the ram preview in After Effects and not fixing it for five years.

Standing still is moving backwards

It’s one thing for me to express my own opinion and share anecdotes about the various people I’ve worked with.  But perhaps the most telling sign of the motion graphics zeitgeist came from Manchester, in the UK.  In January 2019 an article on Medium announced the development of a new motion graphics app called Cavalry.  But this wasn’t just someone tinkering in their bedroom, this was from an established software developer with a proven track record.  Mainframe had previous developed MASH – the motion graphics plugin for Maya.  Mash had proved so valuable to the 3D community that it was purchased by Autodesk, and had been included with Maya from 2016.  Now the same team was turning their attention towards 2D animation.

The accompanying article / press release included the following lines:

The incumbents in 2d animation have been offering very little true innovation in recent years. Built on ageing architectures they are becoming increasingly reliant on 3rd party plug-ins for any significant feature improvements. While we use and love many of those plug-ins ourselves they can often result in artists jumping through hoops as they wrangle disjointed workflows.

We see a huge gap in the market. One that we intend to fill with Cavalry.

-Chris Hardcastle, January 2019

There’s no ambiguity about who they’re referring to as the incumbents: Adobe After Effects.

The issues with After Effects and the frustrations felt by its users weren’t imaginary, or even isolated.  They were so real they’d prompted a studio to create their own, alternative motion graphics application.  For the first time, After Effects would have some serious competition in the 2D motion graphics space.

Since then, the response to Cavalry has been astonishing.  While it’s still in public beta, anyone can download a copy and play around with it.  Will it replace After Effects?  No, not overnight anyway.  But does it provide valuable competition?  Most definitely.

2020 foresight

Around the middle of 2019, six months after Cavalry’s first press release, Adobe announced that the next version of After Effects would be all about performance.  In particular – smooth playback of cached frames.  In other words, they were going to fix the ram preview.

In November last year After Effects CC 2020 was released to the public, and finally things started to feel better.  But even with all the attention given to performance, the initial release had issues where the ram preview would start but not stop.  Even the very latest release has problems with specific nVidia drivers, and although that might not strictly be Adobe’s fault, it still means the user base has been waiting over five years for a version of After Effects that has rock solid, reliable ram previews.

But compared to the disappointment that was CC 2015, it’s finally clear that progress is being made.

In this article, I’ve focused on the ram preview because I believe it’s such a fundamental aspect of motion design.  But – as outlined in the very first article in this series – there are many different parts of After Effects that all relate to the notion of “performance”.  While the ram preview may have been an obvious casualty with the release of CC 2015, other improvements and invisible changes have taken place over the same time period.  Lets hope that Adobe have finished taking their step backwards, so we can get on to the part where we take two steps forward.

Addendum:

From my own experience, I’ve found that the problems with ram previews are usually related to colour management.  If you’re working in 8 or 16 bit mode, turning off “use display colour management” can make a huge difference to playback performance. For critical work, you could try turning off colour management altogether when animating, and then back on again when real-time playback isn’t as critical.

Turning off Display Colour Management can make a big difference to ram preview playback.

This is part 15 in a long-running series on After Effects and Performance.  Have you read the others?  They’re really good and really long too:

Part 1: In search of perfection

Part 2: What After Effects actually does

Part 3: It’s numbers, all the way down

Part 4: Bottlenecks & Busses

Part 5: Introducing the CPU

Part 6: Begun, the core wars have…

Part 7: Introducing AErender

Part 8: Multiprocessing (kinda, sorta)

Part 9: Cold hard cache

Part 10: The birth of the GPU

Part 11: The rise of the GPGPU

Part 12: The Quadro conundrum

Part 13: The wilderness years

Part 14: Make it faster, for free

Part 15: 3rd Party opinions

And of course, if you liked this series then I have over ten years worth of After Effects articles to go through.  Some of them are really long too!

 

Exit mobile version