Final Cut Pro finally gets new Metal engine and GPU selection
• New Metal-based processing engine improves playback and accelerates graphics tasks including rendering, compositing, real-time effects, exporting, and more
• Enhances graphics performance with support for multiple GPUs including Radeon Pro Vega II and Radeon Pro Vega II Duo on Mac Pro
• Optimizes CPU performance with support for up to 28 CPU cores on Mac Pro
• Accelerates ProRes and ProRes RAW playback when using the Afterburner card on Mac Pro
• View, edit, grade, and deliver stunning High Dynamic Range video on Pro Display XDR
• Connect Pro Display XDR with a single Thunderbolt cable to use as a display or reference monitor
• Simultaneously use up to three Pro Display XDR units connected to Mac Pro — two for the Final Cut Pro interface and one for dedicated monitoring
• Grade High Dynamic Range video with enhanced color mask and range isolation tools
• View High Dynamic Range video tone-mapped to compatible Standard Dynamic Range displays when using Final Cut Pro on macOS Catalina
• Select which internal or external GPU is used to accelerate graphics processing
@mac_editor Doesn't say how many GPUs are supported. Is Catalina limited to 4?
Not sure. I'm not even sure how to leverage multi-GPUs either. I only get the option to choose between my one internal dGPU and one eGPU as shown below. I'll try with another eGPU attached. With @itsage's tests, it seems the max eGPUs were still at 4 - but with the Mac Pro, this limit would not make sense given how much one could potentially expand.
So optical flow uses all GPUs - but IIRC this was previously true as well. Ironically, the new version for some reason uses the internal GPU for export/share even though I've selected the External GPU as my Render/Share GPU. Perhaps others could chime in.
@mac_editor Thank you for sharing this update! Do you have the ability to try with an external monitor with the MacBook Pro in clamshell mode? The Activity Monitor screenshot showed eGPUs not being used much compared to iGPU and dGPU.
I was in clamshell mode during the tests. With regard to less eGPU % utilization, I recall seeing this previously as well. I am not sure what's at play here, but is possible that the underlying optical flow analysis algorithm prefers the internal GPU for reasons (bandwidth?). Perhaps an interesting way to test would be to first get normal readings of H2D and D2H bandwidths for each of the GPUs using Cl!ng. Then run optical flow and observe decrease in bandwidth per GPU. Will try this and report back shortly.
For timeline performance, the GPU connected to the display on which the application is launched (essentially the main display) is used. In my case, both displays are plugged into the Vega 64 - hence it's used for timeline performance.
@itsage This test was to observe bandwidth fluctuations for GPUs during optical flow analysis in Final Cut Pro. Ideally, highly fluctuating values imply high data transaction between CPU-GPU.
RX Vega 64 Normal
R9 Fury Normal
Radeon Pro 560X Normal
Intel UHD 630 Normal
RX Vega 64 During Analysis
R9 Fury During Analysis
Radeon Pro 560X During Analysis
Intel UHD 630 During Analysis
The Intel GPU had the most fluctuating bandwidth (especially in terms of absolute bandwidth difference vs. normal), potentially indicating high bandwidth needs for optical flow analysis. Note that we would not get consistent lower H2D/D2H readings during render due to variable GPU task scheduling and periodicity, as bandwidth computation is also probably a periodic task.
Defaulting to the internal GPU seems to be format related in FCPX 10.4.7. Selecting any of the Apple Devices presets for h.264 and HEVC seem to use the internal GPU and ignore the eGPU no matter what.
Selecting ProRes or Master with the h.264 codec will use the eGPU for rendering. So it seems to be encoder related. Sending to Compressor seems to have the same issue because it is still using the same encoders.
I'm not entirely sure that is it. FCPX 10.4.6 did use my eGPU for rendering all the formats. I think its just a small glitch with some encoders and hopefully it will be fixed soon. Quicksync or not my Mac mini is vastly slower at rendering using the internal GPU now compared to when I could render with my eGPU with 10.4.6.
I guess that's not too surprising but what about compressor?
2018 Mac mini I7 - Sonnet BB550W + Gigabyte RX570 4GB - Alpine Ridge AIC – (TB3 to TB adapter) – Apple Thunderbolt Display
2019 15" MBP i9 also works as expected in above setup
2012 15" rMBP works with purge-wrangler
All on 10.14.6 (18G84/b) for debug kernel...
iMac14,2, no Built-in LCD, GT 755M dGPU - Bricked after Catalina DP update tried to flash nonexistent T2 chip. Mucking around with Pomona clip, looking for BootROM dump if anyone has one 🙁
I have no option to use any other monitor.
plus as I said previously FCPX will use the eGPU for the master formats. So while it may be true for playback and some formats that it should be a monitor connected to the eGPU there seems to be another issue going on here that is related to specific formats.
I think the Apple devices formats are all based on Compressor while the mast is based on encoders built into FCPX.
Display connection status is irrelevant to render/share in FCPX. This was also previously the case with older FCP versions.
In my case, it seems to be very relevant. I worked the whole day yesterday testing out both setups. When FCPX was opened on a eGPU powered monitor the internal GPU was barely used. The only instance when it was used heavily was when exporting to h.264. To be honest Final Cut has never worked this good for me.
The project tested had a pool of HD Proress,4k h264, HD 264 & AVC1 clips. all clips had Correction Wheels+Curves, Sharpener and Film Convert.
When FCPX was opened on a eGPU powered monitor the internal GPU was barely used. The only instance when it was used heavily was when exporting to h.264. To be honest Final Cut has never worked this good for me.
As I wrote before, this was already the case, except that when Prefer External GPU was ticked, even H264 encodes were done on eGPU. When you're editing on the timeline, the GPU that is driving the display is used. You are only corroborating @thomas-s and my experience with the new version.
Again, render/share is different from timeline performance (which includes background rendering).
Oh i hadnt realised that - this is the first time im using FCPX on an external monitor, sorry. In the past and for the lifetime of 10.4.6, i had FCPX opened on the iMac's monitor and would force eGPU through the Finder. In that setup both GPU's would be used almost equally (playback/rendering) as seen in the photo.
Can I just say this forum is an absolute godsend. What an incredible group and wealth of information! So glad and relieved I have found this!
I'm in a bit of a tight issue I have a Macbook Late 2016 with Touchbar, 16GB Ram, 2TB SSD, Radeon Pro 460 4GB, 2.9 Quad i7 and just bought a Razer Core X and a Radeon vii for use with FCPX. I was so excited to read that 10.4.7 had improved eGPU support and I bought FCPX and moved from Preimere Pro for this reason. Upon opening FCPX I found that the eGPU is hardly used at all in playback and rendering [yes I made it use the egpu] I don't really care for faster export times I bought the eGPU for playback and render. I even tried 10.4.6 and it's faster but both times its a little slower with the eGPU than with internal?? I posted in more detail here of the test but no one could help there: https://discussions.apple.com/thread/250745284
Is it essential I have a external monitor to get use of this? At this stage I think I might as well return the eGPU or do you think support for a laptop is going to get any better? Thank you! 🙂
Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts
in my case it seems that an external monitor is crucial for utilising the power of your eGPU.
Also i have noticed that if you use an external monitor as your main Display (in Catalina) through System Preferences then the system recognises the eGPU as your main gpu which could mean that we are getting eGPU support across the board.
First picture is when the iMac is used as main display - second picture when an external monitor powered from an eGPU is used a main Dipslay.