Apple Event: May 7th at 7 am PT

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

FCPX 10.4.7. egpu problem

So, i just updated Catalina to my macbook pro and installed FCPX 10.4.7...

Am i missing something or what the heck is going on with the external GPU support here? I'm using Blackmagic eGPU pro btw.

That checkbox is now gone (right click on fcpx program icon) where you could select the use of eGPU on 10.4.6.

FCPX 10.4.7 use now eGPU render/export only. Not for playback what i'm used to. So this 10.4.7 is useless to me right now...

Anyone have same problem?

MacBook Pro with Touch Bar

Posted on Oct 8, 2019 8:08 AM

Reply
227 replies

Dec 27, 2019 4:02 PM in response to dre2k25

If all your displays are all connected to the external GPU the flag on final cut application was irrelevant.

In 10.4.8 this is exactly the set up I run with my mac mini and one display connected to the eGPU and no other displays. All applications flag or not are going through the eGPU and the internal GPU is always at zero.


See following


https://support.apple.com/en-us/HT208544


Set an external eGPU-connected display as the primary display

If you have an external display connected to your eGPU, you can choose it as the primary display for all apps. Since apps default to the GPU associated with the primary display, this option works with a variety of apps:

  1. Quit any open apps that you want the eGPU to accelerate on the primary display.
  2. Choose Apple () menu > System Preferences. Select Displays, then select the Arrangement tab.
  3. Drag the white menu bar to the box that represents the display that's attached to the eGPU. 
  4. Open the apps that you want to use with the eGPU.

If you disconnect the eGPU, your Mac defaults back to the internal graphics processors that drives the built-in display. When the eGPU is re-attached, it automatically sets the external display as the primary display.


The only case in which the internal GPU is used is if in the playback preferences this is set to internal

instead of external

The use of a egpu on an external device with displays connected to it and set as primary is a feature of OSX not final cut.

Final cut only establishes who is doing the background processing of rendering and sharing. This is mostly for set up where you use the internal display and have no others and want to still take some advantage from the egpu


In most cases in sharing eGPU utilisation is around 7-10% if the whole timeline was rendered and the sharing is done with a codec that is inferior to prores 422 for example H264 with project rendering in ProRes 422 will use around 7% GPU and 50% CPU as most of encoding tasks are computational not graphic


I would check your final cut playback preferences as by default they would be set to the first GPU that is the internal

Dec 28, 2019 8:35 AM in response to MZTVPD

I am sorry if you feel the attitude is dismissive anyway to clarify the situation I have been having discussions with Apple Final Cut pro media team on and off for the last year. At the end of the day what matters is what is in the official documentation


https://support.apple.com/en-gb/HT208544


Pro apps and 3D games that accelerate the built-in display of iMac, iMac Pro, MacBook Air, and MacBook Pro (This capability must be enabled by the app's developer.)


https://support.apple.com/en-gb/guide/final-cut-pro/verb8e60ab7/mac


Render/Share GPU

  • Render/Share GPU: Use this pop-up menu to choose which graphics processing unit (GPU) to use in Final Cut Pro when rendering or sharing. This choice affects only rendering and sharing; real-time effects use the default GPU.


https://developer.apple.com/documentation/metal/gpu_selection_in_macos/understanding_multi-gpu_and_multi-display_setups


Built-in GPU with a Built-in Display

Some Macs have only one built-in GPU (integrated or discrete). This GPU always drives the built-in display.


Multiple Built-in GPUs with a Built-in Display

Some Macs have multiple built-in GPUs (integrated, discrete, or both). Any of the built-in GPUs can drive the built-in display.


https://developer.apple.com/documentation/metal/gpu_selection_in_macos/understanding_gpu_bandwidth


Private resources are stored in video memory. Private resources can be accessed only by the GPU. This memory location means that discrete and external GPUs can access a resource directly from within their own video memory. Compared to accessing system memory, accessing video memory is much faster for discrete and external GPUs. Thus, private resources incur the lowest bandwidth and data transfer costs.


What does all of that mean? If you have a game or an application where you can give a specific piece to execute to the eGPU this will be working fine. If you have another piece where both the internal GPU and external GPU can have access the recommendation is that the internal or discrete GPU will access that due to superior bandwidth.


In short this is the reason why in final cut the internal display that can only be controlled by the onboard GPU will not receive acceleration as in FCP the resources are shared. When you have a background rendering task the system passes a piece of data to the egpu and this processes it and returns it back.


If you still have access to your 10.4.6 version disable background rendering all together wait until rendering tasks are complete and then playback a project or grade some footage in the correction panel and check if the eGPU is being used.


if this holds true then we can conclude that Apple deliberately enabled GPU support for some live tasks and then removed it with 10.4.7 this will not mean that the new behaviour is a but because the functionality is actually working as described but indicates that apple themselves were not following their same guidelines.

Dec 28, 2019 1:47 PM in response to Interceptor121

You continue to miss the point or simply ignore what is being said. You are talking about windowserver tasks now?


You are attempting to build some case that because windowserver can't run on an eGPUs, that it's impossible for Final Cut Pro X to accelerated realtime playback tasks? I suppose all these users with 10.4.6 and eGPUs must have made up all the ways their workflow was much faster prior to 10.4.7/8?


Here's what Apple highlighted (Sept. 2018) as features when official eGPU support was given to Final Cut Pro X with Mojave:

* The support document https://support.apple.com/en-us/HT209134 now redirects to the Final Cut Pro User Guide.


  • Improved playback of projects with color correction and video effects.
  • Improved performance when working with 3D titles.
  • Faster analysis for effects including stabilization and optical flow retiming.
  • Faster rendering of complex project timelines.
  • Faster export of complex project timelines.


That first point is a big deal for most video editors since almost all footage has basic colour or effects applied (even if only Broadcast Safe). I can personally add third-party OpenCL capable filters such as FilmConvert and BeautyBox to that list, which are able to playback in realtime thanks to the eGPU. The creation of ProRes Proxy files was also offloaded to the eGPU.


You want to present yourself as the "working example" for FCPX 10.4.7+, yet your whole setup is based on the assumption that the display is connected directly to the eGPU, probably was with 10.4.6 and is now with 10.4.8 (please let me know if not), so it makes sense for you not to see a dramatic change.


However, the majority of the people that are having issues in this thread, do not use displays connected to the eGPU. That is the real issue here! Think of how ridiculous it is that a Retina 5K 27" iMac users need to use another monitor as their primary display to see eGPU benefits. And not everyone wants to run their eGPU 24/7 as their primary display.


I will also say that not everything carries over when you use an eGPU connected display. For some reason, Proxy generation still does not offload.


Oct 15, 2019 4:09 PM in response to TheSultan88

I have the same issue. Instead of the Get info -> Prefer eGPU option in 10.4.7 you select to use external GPU in Preferences.

The only problem is you are right it doesn't help for playback anymore!!! FCPX 10.4.7 is completely useless to me now too with an eGPU.


I did some tests here to compare the versions 10.4.6 and 10.4.7 and the older version is better overall in terms of playback/render. https://discussions.apple.com/thread/250745284?page=1

An eGPU is completely useless it seems for this on FPCX now. So sad, especially since the update was advertising how great it was with eGPU support.



Dec 28, 2019 12:38 PM in response to MZTVPD

I think the issue is that if you send to Apple some data to demonstrate that 10.4.7 or 10.4.8 are doing something without giving them the evidence that there has been a change they will just come back to you and tell you things work as expected.

I have used an eGPU with my mini and macbook pro now for 13 months and I can confirm that the eGPU never accelerates live tasks this is because the process windowserver that is what drives the display runs on the gpu where the display is physically connected this is a physical limitation and cannot be overcome

In terms of 10.4.7 or 10.4.8 not using the GPU the behaviour has to be as set in the preferences. This lets you choose any GPU you have if you set to GPUx and quit final cut then reopen and launch a render task this GPU must be working, in this example I have set the internal first changed quit final cut and then set external and you can see GPU utilisation moving during render

If for some reason this is not working this is a bug to be corrected

The live tasks in final cut pro like playback are executed where the process windowserver runs this is where the display is attached. There is no instance possible where windowserver runs on a GPU not attached to the display. If you have any screenshot where this is demonstrated with system report and activity report showing 10.4.6 running windowserver on the eGPU on a mini or macbook without a display attached to it this is what need to be sent to apple


Finally it is possible that performance in a user set up deteriorates after an upgrade final cut pro is very much dependend on user configuration this is a performance issue and not a bug but can be reported


So it would be useful to show


  1. FCPX using a GPU different to what is set in the preference after restart
  2. A version of 10.4.6 where windowserver runs on the eGPU on a macbook or imac with no external display
  3. Some performance report with exactly the same file and doing the same task of the two versions


I have yet to see any of the above on this thread except the first original poster, do you have any of this available if not nobody is going to do anything final cut has more than 2 million users worldwide several forums user groups facebook groups and a small minority runs eGPU and there are right now only complaints about Catalina that are systematic but nothing on fcps


I look forward to some real data to look at

Dec 29, 2019 4:03 PM in response to Interceptor121

Bruce 5K tests macbook Pro 13 with eGPU connected and internal display


1046 Render 13 Share 19

1048 Render 10 Share 20

1046 total 32

1048 total 30


So the conclusion is that on mac mini with display on eGPU and macbook pro 13 without external display 1048 is faster on all account except a marginal deterioration on share only


Also just to confirm on sharing the GPU activity on 1048 is zero and on 1046 is 2% so confirming that writing a rendered file is not a GPU task - I knew this already but for the benefit of everyone else. This remains true in any constellation


I also notice that on 1046 windowserver is open on both iGPU and eGPU probably because it needs it to exchange data.


Now considering that those are two units the mini and the mbp with a basic iGPU on board I cannot imagine why units with a discrete eGPU would do worse actually the gap should increase


I also want so say a few other things

  1. analysing a stream for stabilisation and colour is a decoding and computation task is not a GPU task as there is calculation but no rendering or drawables
  2. transcoding media is decoding and encoding again this is for most a CPU task and Apple at no point has said there was an eGPU benefit
  3. Sharing a project is made of two parts rendering that is a GPU task and encoding that is a CPU task. If your project was fully rendered sharing becomes purely a CPU task. Fast CPU with h264 acceleration are preferred in case you want to produce h264 from FCPX (not recommended in my opinion if you do any high quality production) ProRes has no hardware acceleration and needs just CPU power
  4. The whole idea of an eGPU is to work together with the onboard GPU in cases where you use the internal display not to replace it and as the internal or discrete gpu controls the screen the eGPU has to focus on background units of work
  5. As the PCI bus is much faster than thunderbolt unless you have some really complex timelines the benefit of an eGPU on a system with a strong discrete graphic card is limited. On those with a really crappy graphic card that cannot be upgraded for some reason an eGPU that focusses on background render relieves the pressure on the on board GPU however in this set up as the on board GPU is weak is likely you will need to use optimised media as the system can't keep up and the eGPU can't drive live tasks
  6. If like me you process high bitrate 10 bit material it is possible that on a unit with an integrated GPU your system can't keep up on real time rendering and unless you want to optimise the only solution is to use a display connected to the eGPU and close the lid / eliminate displays connected to the unit. This has a disadvantage as now background rendering will pause any time the GPU is put to do something else but if you have something really powerful like my Vega 64 this is not an issue


There also seems to be some confusion on live tasks and background

The background tasks are those listed under Command + 9




Of those eGPU are relevant to rendering and sharing the rest is CPU and disk

The live tasks include:

Playback of a clip in the media browser

Playback of part of the timeline

Adding effects

Playing effects

And anything involving a key stroke that are in the foreground have an output on the display. For those the eGPU does nothing unless it drives the display directly connected to it


I think I have gone as far as humanly possible in my education efforts but am sure am going to get some abuse. I am sorry if someone out there has bought some hardware on expectations that have not been met I was one of your last year

There is still value in an eGPU but one needs to understand what is the value and what are the situation where there is a benefit at least for final cut pro. For example 360 VR editor takes great benefit from an eGPU as you can connect visors directly and this would not be possible otherwise

Also from what I can see there is no performance drop from 10.4.6 to 10.4.8 so maybe is a case of understanding how final cut really works and making sure you are following best practices that you can find plenty on this forum


Jan 8, 2020 1:59 AM in response to MrBroons

For a Share option as explained there are few things that happen

  1. Render any parts not yet rendered
  2. Compression
  3. Upload if you use the native YouTube export

If background rendering is active the timeline will be almost fully rendered so performance will be according to standard multi core benchmarks

https://browser.geekbench.com/mac-benchmarks/ and fundamentally driven by the number of cores as well as RAM

The i7 would do worse than the Mac Mini 3.2 has it has same cores but less speed the i9 should do better but if it has 16 MB it won't


The key is background rendering the concept apple implements is as follows:

GPU controlling the display (in the case of macbook the internal or discrete) -> Live tasks

eGPU -> rendering tasks


This allows you to focus all the internal resources on the live tasks and at the same time the eGPU is doing the crunching when you get to the point of sharing 90% of the timeline is rendered so only the residual part will be done and the rest will be CPU work as this is hardware accelerated


If you do not subscribe to this and want to disable background rendering altogether you will have to wait when you share until your timeline is rendered here the speed is dictated only by the power of the graphic card. This however is not the best scenario to get the most of your eGPU.

Alternatively for those macs that do not have a display like the Mini or if you want to use an external display with your laptop you can connect a GPU to the display this will accelerate all live tasks regardless of any eGPU preferences in the application as the eGPU drives the display. You cannot accelerate live tasks on a display not connected to a GPU

It is important to understand how Apple envisages the eGPU workflow as well as to understand that compression which is one of the two key parts of the share process is not a GPU task but a CPU task using the embedded GPU when there is graphic acceleration or using only the CPU if there is only sofware encoding. I think this last part is what confuses people

An external eGPU may be very well worth for gaming on an old machine as this has discrete unit of code that can be give to an external eGPU and this allows for a real acceleration. A game all in all is a series of expected results

With final cut live effect there is no way to predict what a user will do and therefore eGPU cannot be involved in live tasks if it is not connected to the display.

Resolve as it is provided by blackmagic that produces an eGPU is likely to make better use of it than apple that does not manufacture one themselves however this does not mean Resolve is a better solution for your needs so you need to consider what you require.

Feb 17, 2020 11:34 AM in response to abjacobs

OSX does not support either of encoding or decoding hardware acceleration through a GPU not now not before never. The only supported hardware acceleration is using VT API and that uses Intel Quick Sync in the CPU not on the GPU


With regards to poor understanding of English maybe you need to read what apple says about eGPU in final cut let me write it down for you here then we can have an english understanding competition?


Render/Share GPU

  • Render/Share GPU: Use this pop-up menu to choose which graphics processing unit (GPU) to use in Final Cut Pro when rendering or sharing. This choice affects only rendering and sharing; real-time effects use the default GPU.


Can you tell me what the part in bold means in English? In case you are struggling let me try and help you

The GPU selected in preference is the one you can use for render and share (that does NOT mean encoding will happen using the eGPU as that is physically NOT possible as the code does not exist) this can be integrated, discrete or external you choose

The second sentence means that the default GPU which is the one attached to the display perform real time tasks


So a device like that only has an internal display like an iMac or a macbook has the default GPU set to the onboard or discrete GPU and this will be used for live effect this never changed and does not depend on final cut


What I am trying to say to you guys that if prior to 10.4.7 you had a better performance has NOTHING to do with eGPU unless the GPU is not used for rendering as per document. If you have a problem with live tasks simply is a performance regression issue not eGPU related and has to be logged as such not as an eGPU issue (that can't physically be) otherwise you are not going to get any answer ever as the eGPU is out of scope for live tasks despite some graphics on activity monitor


Has someone here demonstrated that final cut pro does not respect the GPU selected in the playback preferences yes or no?

Oct 11, 2019 11:27 PM in response to njovusann

Guys, sorry but I am trying to help from memory. My eGPU is an Akitio one with NVIDIA cards which Apple killed with High Sierra.


I just remember setting the eGPU prefer in finder and then in system preferences>displays - arrangement tab, I had to drag the white bar onto the eGPU Monitor for FCPX to use the eGPU. See my screen grab. Bottom screen is my laptop and I moved the bar so the system knows to use that GPU.


Try that or has this completely changed?


I currently have: Still on Mojave


rMBP 15.5" 2019 model connected to Akitio Thunder3 Dock Pro via TB3 cable. (BottomDisplay)


Then an Samsung 28 UHD Monitor connected via Display Post on the Dock. Top Left Display)


And Apple 27" Display also connected to the Dock via TB2 cable and Akitio TB3/TB2 adapter.


So when I launch FCPX 10.4.7, I get Full screen Picture on the Samsung. FCPX 2 view over the Laptop screen and Apple Display according to my choice.



Oct 16, 2019 8:51 AM in response to andyfromnz

Let me preface this by saying that this is the fastest FCPX has ever run on any system i have ever had, its amazingly fast - Im super super happy with it.


My setup when i updated to FCPX 10.4.7 & Catalina was as follows:

Late 2014 5K iMac 27inch - 4 GHz Quad-Core Intel Core i7 - 32 GB 1600 MHz DDR3

AMD Radeon R9 M295X 4 GB graphics

MacOS Catalina 10.15

FCPX 10.4.7

Target Display mode with a late 2011 27inch iMac and external 55inch UHD monitor connected to an

Akitio Node Pro - Vega 64 daisy chained to an Akitio SSD bay (4TB Raid0)


The above setup worked very well in FCPX 10.4.6 & Mojave - FCPX would use both internal and external GPU in tandem and never would i experience any lag though i had to open FCPX in low resolution mode for it to work properly. I would force the eGPU & Low Resolution mode from the Finder.


Original Setup with an older iMac as a secondary display.

Before the Update - with a Vega64


After the update (to FCPX 10.4.7 & Catalina) only the internal GPU was utilised so i tried testing various setups and options finally concluding to remove the 2nd iMac (Target Display) from the equation and use an external monitor powered from the eGPU directly instead.


From the System Preferences i set one of the external monitors as the main monitor (Dragged the menu bar). Then i opened FCPX and chose through Preferences my external GPU. After that - wow - everything was been running super smooth super fast - with my usual effects maxed out. And the thing is that now the internal GPU is only used for h.264 sharing.


.


Also i have noticed that if you choose an external monitor powered through an eGPU as your main display MacOS will recognise the eGPU as your main graphics card.

So now my main monitor now is a 27inch BenQ. Doesn't look that nice but if im getting the performance boost who cares.


When external monitor is used as main Display


When iMac is used as main Display


Which could essentially mean that we are getting full eGPU support across the board. I don't have the time to test this but im sure someone out there could test it out.

Oct 22, 2019 8:21 AM in response to mathieu241

It is no longer set in Get Info.

In 10.4.7:


Final Cut Pro->Preferences->Playback, select the GPU next to "Render/Share GPU:".



This affects render and sharing - for some share destinations. (It appears that Apple Devices does not follow this setting)


For playback, the GPU associated with the display where FCP X is running will be used.

So for best results one should attach the display to the eGPU.

FCPX 10.4.7. egpu problem

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.