Skip to content
Roy Nieterau edited this page Aug 3, 2019 · 5 revisions

Acre

Currently we have been dropping the .toml environments for our applications and have adopted Acre for some slightly more involved environment management.

As such the Acre Branch is actually our most active branch.

The nice thing with acre is that we could define one global.json and maya2018.json instead of relying one one .toml file for the application that embeds all data. This allows to make it more easy to manage the environment that our full studio shares.

Additionally, it simplified how we submit our render jobs. We didn't have to pass along the explicit environment variables but we could just pass along global;maya2018 so that the renderfarm machines could recreate the same environment in their own way.

That allowed compatibility across multiple OS-es. As maya2018 could define a different environment for Maya on Linux blades than it would build up for Windows machines.

Requirements

The acre branch uses some minor changes in core to force the launching of applications to use acre to build the environment. As such you'll need to work with the colorbleed/core acre branch for the Launcher to correctly understand how to launch the applications in the colorbleed-config acre branch.

As this was an ad hoc solution we tried to change as little as possible in core, since we believed we would switch to a more elaborate system in the future. For example Rez or Allzpark. Because we changed so little Avalon's launcher still relies on .toml files to exist, however they can now be trimmed down to only the core necessities. For example:

maya2018.toml

application_dir = "maya"
default_dirs = [
	"scenes",
	"data",
	"renderData/shaders",
	"images",
    "renders"
]
label = "Autodesk Maya 2018"
schema = "avalon-core:application-1.0"
executable = "maya"
description = ""
icon = "cubes"
color = "#CCBD14"
order = -2

[copy]
"{COLORBLEED_CONFIG}/res/workspace.mel" = "workspace.mel"

[environment]
AVALON_TOOLS="global;maya2018;yeti3.1.11;ffmpeg"
CREATE_NEW_CONSOLE = "Yes"

Example

For example, global.json could contain:

global.json

{
    "SERVER_P": {
        "windows": "P:",
        "linux": "/mnt/P"
    },

    "CB_PIPELINE": "{SERVER_P}/pipeline",
    
    "COLORBLEED_CONFIG": "{CB_PIPELINE}/2.1_dev/git/colorbleed-config",
    "AVALON_CORE": "{CB_PIPELINE}/2.1_dev/git/avalon-core",
    "AVALON_SETUP": "{CB_PIPELINE}/2.1_dev/git/avalon-setup",
    
    "AVALON_CONFIG": "colorbleed",
    "AVALON_LABEL": "Avalon",
    "AVALON_PROJECTS": "{SERVER_P}/Projects",
    "AVALON_DEADLINE": "http://cbserver:8082",
    "AVALON_MONGO": "mongodb://STORAGE1:27017",
    
    "AVALON_EARLY_ADOPTER": "1",

    "CGWIRE_HOST": "https://colorbleed.cg-wire.com/api",
}

And maya2018.json could contain:

maya2018.json

{
    "MAYA_VERSION": "2018",
    "MAYA_LOCATION": {
        "darwin": "/Applications/Autodesk/maya{MAYA_VERSION}/Maya.app/Contents",
        "linux": "/usr/autodesk/maya{MAYA_VERSION}",
        "windows": "C:/Program Files/Autodesk/Maya{MAYA_VERSION}"
    },

    "PATH": {
        "darwin": "{MAYA_LOCATION}/bin;{PATH}",
        "linux": "{MAYA_LOCATION}/bin;{PATH}",
        "windows": [
            "{MAYA_LOCATION}/bin",
            "C:/Program Files/Common Files/Autodesk Shared/",
            "C:/Program Files (x86)/Autodesk/Backburner/",
            "{PATH}"
        ]
    },

    "DYLD_LIBRARY_PATH": {
        "darwin": "{MAYA_LOCATION}/MacOS"
    },

    "MAYA_DISABLE_CLIC_IPM": "Yes",
    "MAYA_DISABLE_CIP": "Yes",
    "MAYA_DISABLE_CER": "Yes",
    "PYMEL_SKIP_MEL_INIT": "Yes",
    "LC_ALL": "C",

    "CB_MAYA_SHARED": "{CB_PIPELINE}/dev/apps/maya_shared/{MAYA_VERSION}",

    "XBMLANGPATH": [
        "{CB_MAYA_SHARED}/prefs/icons",
        "{XBMLANGPATH}"
    ],

    "PYTHONPATH": [
        "{CB_PIPELINE}/dev/git/maya-capture",
        "{CB_PIPELINE}/dev/git/maya-capture-gui",
        "{CB_PIPELINE}/dev/git/maya-capture-gui-cb",
        "{AVALON_CORE}/setup/maya",
        "{PYTHONPATH}"
    ],

    "COLORBLEED_SCRIPTS": "{CB_PIPELINE}/dev/git/cbMayaScripts/cbMayaScripts",

    "VRAY_USE_THREAD_AFFINITY": "0",
    "MAYA_ENABLE_LEGACY_VIEWPORT": "1",

}
Clone this wiki locally