Fractal Architect 5 Help Index
Applies to: FA 5, FA X
Reference: Variation Sets
This is a huge update adding 2 more render engines to Fractal Architect.
Since Apple deprecated OpenCL in future Mac OS versions, the Native CPU render engine is a replacement for the CPU render engine. It uses either the Mega2D variation set for 2D fractals or the Mega3D set for 3D fractals.
The Native CPU render engine does not support custom variations types.
Some fractals’ rendered colors are slightly different compared to OpenCL/Metal renders. This is a known bug.
Version 5 of Fractal Architect has a memory leak that only becomes a problem when rendering thousands of video frames. With motion blur, that means rendering about 1 million separate fractals!
Version 5.1 introduces yet another render engine: the XPC Render Service. This render engine is ONLY available when rendering video frames to an image frame sequence.
This engine runs as a service and the memory leak is thus removed from the app itself.
The service runs locally on your Mac, not in the Cloud.
The XPC Render Engine Service feature is only available to users that subscribe to the GPU rendering option.
On the Video Render dialog box, is a Local/Xpc switch. The Local option is the default.
If Local is selected, video frame rendering will occur inside the app itself (as it did in prior FA versions).
If XPC is selected, the XPC Render Service will be used for video frame rendering.
This XPC render engine service can reclaim leaked memory periodically by restarting itself. In practice, this is quite transparent to you.
By default this option is turned on and causes the render service to restart after rendering every 200 video frames.
Previously Fractal Architect had a modest limit on the number of variations that can be put into a single variation set. The original limit was 128 variation types.
A “narrow” variation set is one that only has a small number of variation types in it, less than 30. A A “wide” variation set can contain hundreds of variation types. A “mid” variation set will have about 128 variation types or less.
When creating fractals, a wide variation set is much easier to work with as you can pick from a very large number of variation types.
But wide variation sets may not be compatible with your render devices (especially Intel integrated GPUs).
The Mega2D variation set has 281 2D compatible variation types. The Mega3D variation set has 373 2D and 3D variation types.
If you select the Mega2D set, you will be creating 2D fractals. If you select the Mega3D set, you will be creating 3D fractals.
2D fractals render about 15% faster than 3D ones.
The 2 CPU render engines can both use Wide variation sets.
The whole concept, that a variation set would only allow a subset of the complete variation type library, was created so that customers could use their Intel GPUs for flame fractal rendering. These GPUs work quite well with Fractal Architect, offering 10 X faster renders for Intel Dual Core CPUs and about 5 X faster for Quad Core CPUs.
My estimate is that 95% of all Macs capable of running Fractal Architect have an integrated Intel GPU which can be used for rendering.
The OpenCL/Metal Intel GPU runtime’s kernel compiler unfortunately fails to compile the kernel source code for “wide” variation sets. It can sit there compiling, compiling, … for up to 5 minutes or more. The compile will finally be cancelled by Mac OS itself. This unfortunately leaves the OpenCL/Metal runtime in a weird state, that can be fixed by a simple reboot of your Mac.
The app has a new set of Preference parameters, which are the Max Variation Types Limit for each Render Device type.
These are found on the Home Page > VarSets button > Make Var Set popover.
There are settings for both OpenCL and Metal. These are sticky parameters, so the values will be the same the next time you use the app.
Device | Default Setting | Max Setting | Wide Compatible |
---|---|---|---|
CPU | 1000 | 1000 | Yes |
Intel OpenCL GPU | 128 | 128 (Not compatible) | No |
AMD OpenCl GPU 2015 & Later | 128 | 1000 | Yes |
AMD OpenCL GPU 2014 & Earlier | 128 | Not Known | ??? |
Nvidia OpenCL GPU | 128 | Not Known | ??? |
Device | Default Setting | Max Setting | Wide Compatible |
---|---|---|---|
AMD Metal GPU 2015 & Later | 128 | ??? | No |
AMD Metal GPU 2014 & Earlier | 128 | ??? | No |
Nvidia Metal GPU | 128 | Not Known | ??? |
Kernel compile failures crash the app and mess up the Mac OS OpenCL/Metal systems.
Rebooting your Mac to recover from this is mandatory.
Yet, some of you have Macs with AMD GPUs capable of handling Wide variation sets.
Warning: Many users may experience serious issues with Wide variation sets and should not use them for GPU rendering.
If the Mega3D kernel compile fails, reset the Max Variation types value to 128, then reboot your Mac.
Set the Max Variation Type Limit for your render device to the older limit of 128.
The older limits were conservative, but did ensure reliable compiles.
If your Mac has an AMD GPU, use that and avoid the Intel GPU.
Or use the Intel CPU: fast compiles but slow renders.
These configurations are untested and might be compatible:
If you select more than one render device, the render device with the lowest limit will establish the limit for the mixed group of selected devices.
So for example, if you choose to use both the Intel GPU and the AMD GPU on a recent MacBook Pro, the limit for that combination will be the same as the Intel GPU.
If you select the Intel GPU for rendering, you will not be able to select the Mega2D, Mega3D, or other wide variation sets.
If you open a fractal that references a wide variation set, when using the Intel GPU, a temporary narrow variation set might be created for that fractal. The fractal will be rendered using that temporary variation set.
The app first checks if another permanent variation set can be used as a substitute first.
These temporary variation sets are discarded when the app is closed.
The active variation set will be set to either Flam3 Legacy or Core3D.
A temporary variation set is created for that specific fractal and used for rendering.
The app first checks if another permanent variation set can be used as a substitute first.