Cross Platform Rendering

Overview

Many of the applications that Deadline supports are available for multiple operating systems, and if you have a mixed farm, you will probably run into one or more of these scenarios:

  • You want to submit Jobs from one operating system and render on a different one.
  • You want one or more Jobs to render on machines with different operating systems concurrently.

Both of these can be achieved, thanks to Deadline’s Path Mapping feature. While there may be other considerations to take into account, depending on the application you’re rendering with, the Path Mapping feature will do most of the work for you.

Mapped Path Setup

When using a mixed render farm, it is all but guaranteed that asset paths will be different on each operating system. In many cases, Deadline is aware of the paths being passed to the rendering application, so you can configure Path Mappings to swap out these paths when appropriate based on the operating system.

../_images/cro_paths.png

To add a new Path Mapping, just click the ‘Add’ button. Then, you specify the path that needs to be swapped out, along with the paths that will be swapped in based on the operating system. You can also specify a region so you can have different mappings for the same path across different regions. For best results, make sure that all paths end with their appropriate path separator (‘/’ or ‘'). This helps avoid mangled paths that are a result of one path with a trailing separator, and one without.

../_images/add_mapped_path.png

Note that these swaps only work one-way, so if you are swapping from PC to Linux and vice-versa, you will need two separate entries. For example, let’s say the PC machines use the path ‘\server\share' for assets, while the Linux machines use the path ‘/mnt/share/’. Here are what your two entries should look like:

  • Entry 1 (replaces the Linux path with the PC path on PCs):

    Replace Path: /mnt/share/
    Windows Path: \\server\share\
    Linux Path:
    Mac Path:
    
  • Entry 2 (replaces the PC path with the Linux path on Linux):

    Replace Path: \\server\share\
    Windows Path:
    Linux Path: /mnt/share/
    Mac Path:
    

If you have Mac machines as well, you will need three entries. For example, if the Macs use ‘/Volumes/share/’ to access the assets from the previous example, here are what your three entries should look like:

  • Entry 1 (replaces the Linux path with the PC path on PCs and the Mac path on Macs):

    Replace Path: /mnt/share/
    Windows Path: \\server\share\
    Linux Path:
    Mac Path: /Volumes/share/
    
  • Entry 2 (replaces the PC path with the Linux path on Linux and the Mac path on Macs):

    Replace Path: \\server\share\
    Windows Path:
    Linux Path: /mnt/share/
    Mac Path: /Volumes/share/
    
  • Entry 3 (replaces the Mac path with the PC path on PCs and the Linux path on Linux):

    Replace Path: /Volumes/share/
    Windows Path: \\server\share\
    Linux Path: /mnt/share/
    Mac Path:
    

By default, Deadline just uses regular string replacement to swap out the paths. In this case, Deadline takes care of the path separators (‘/’ and ‘') automatically. If you want more flexibility, you can configure your path mappings to use regular expressions, but not that you will need to handle the path separators manually using ‘[/\]’ in your regular expressions.

Application-Specific Considerations

For some applications, like Maya and Nuke, configuring Path Mappings is enough to allow for cross-platform rendering. For other applications, like After Effects and Cinema 4D, more setup is required. More information on how to render with these applications on mixed farms can be found in their Cross-Platform Rendering Considerations sections in the Plugins documentation.

Regions

Regions can be used to setup different mappings for the same path across your farm. For example, let’s say we have a local farm and a remote farm, and we want to map the path ‘/mnt/share/’ in our remote farm but not in our local farm. All we have to do is set the region of our mapping to the same region our remote slaves are in. Slaves in the region will replace ‘/mnt/share/’ but all the other slaves will use ‘/mnt/share/’ normally. We could also setup an alternate path for the slaves in our local farm.

A mapping in the ‘All’ region will apply to every region. It should be noted that a region’s mapping is applied before the ‘All’ region.