28 March 2019
NOTE: Mari increases its level of performance with newer, more advanced hardware configurations. However, Mari is tested and capable of operating on many older, prior-generation systems. For this reason we are listing below-minimum requirements, which are recommended, and on which tests have been performed. Your particular needs may vary from that of other users.
Linux Desktop Managers: Mari is officially tested on GNOME. While it generally works well on other desktop managers like KDE, most of our bug fixes will target GNOME. However some desktop managers like XFCE are not compatible with Mari and will not be supported.
*Displacement preview is currently only available on the cards and drivers that support OpenGL 4.0 or newer.
*The use of virtual memory improves stability and helps prevent data loss on large projects.
'Recommended' does not guarantee that it meets your particular needs.
The configurations listed below are those that The Foundry have tested with Mari. Due to the constantly changing nature and wide variety of computer hardware available in the market, The Foundry is unable to officially certify hardware. The list below can be used as a recommendation and does not guarantee that it meets your particular needs.
Please download and install the latest graphics driver from the NVIDIA or AMD websites, and ensure that you are using 8.982.1 drivers or higher for AMD cards.
If you encounter any issues, please contact Customer Support directly through the Support Portal at the following address: https://support.foundry.com.
|AMD Prosumer Graphics Cards||
|NVIDIA Prosumer Graphics Cards||
|NVIDIA Enterprise Graphics Cards||
Mari 4.5 brings a transformative update to the toolset - a new Materials System. Previously, Mari has excelled in creating high quality hero assets. Now, in addition to this formidable painting power, artists have the ability to quickly and easily create less complex, higher-volume assets. The new workflow enables artists to rapidly block out the look of an asset using material presets, without having to start from scratch. They can then use all of the detail-painting power of Mari to weather and finish the final art direction, giving them the best of both worlds in one application.
It’s now much easier to share isolated material set ups across your team for use on new projects. Everything needed to replicate the material gets bundled up, along with source images, into a single file. This can then be passed across to whoever needs it, and they can start working with the material in a few clicks, saving time and eliminating the need to go hunting for files on the network.
Found the perfect PBR texture set for your asset? Mari now allows artists to quickly import and convert any set of texture maps into a Mari material preset. The Material Ingest Tool creates the presets, sets up the controls, and loads everything into the Mari shelf ready to use, allowing you to continually grow your material library. That means you can use thousands of PBR texture sets through Mari with very little effort.
For artists who like to work using a layer stack approach, the new Materials workflow has been integrated into Mari’s existing Layer system, allowing for smoother adoption of the Materials System. Material files are applied to a project through simple layering, allowing artists to control the material properties, visibility of each component, and global material visibility, from a single area of the interface. Achieving the specific look you need - such as dust over paint over metal - is now easy and straightforward.
Want to make channel-specific adjustments, like tweaking color hue, without affecting all previous layers in the stack? We’ve extended the multi-channel behaviors to a new group layer feature, allowing artists to modify material streams independently of the rest of the layers in the channel. This offers more creative freedom while maintaining full control on the look you’re trying to achieve.
The node graph is Mari’s powerhouse, and we’ve updated it to enable more controlled complexity than was previously possible. These improvements will make it easier to wield the Node Graph and harness its potential. Group nodes now support multiple output ports for additional arbitrary data streams, unlocking more complex workflows. It's now easier to create knobs for gizmos or materials with in-line property promotion; artists can intuitively auto-connect multiple ports when connecting one pair of a set, for a faster and more efficient workflow, and there are simpler methods to access a group node sub-graph.
A new shader allows artists that use the Arnold render engine to paint textures in Mari with a higher degree of confidence that their art will look correct in the final render, reducing feedback loops between Mari and Katana. This shader has been authored and contributed by the Autodesk team behind Arnold.
TP 370836 - Launching Mari in terminal or execute mode now uses a Render licence if it is available.
TP 378796 - Users are now able to toggle inputs on and off for Shaders in the Shaders palette. To improve performance, the Displacement input is toggled off by default for all newly created Shaders.
TP 379515 - Multiple items, including Shelf files .msh, can now be simultaneously loaded into the current Shelf using RMB > Load Items in the Shelf palette . This is also compatible with drag-and-drop from file explorer.
TP 373228 - OpenEXR images without RGBA channel data are now supported.
TP367028 - Peturb Normals now defaults to No on Shader creation.
TP 375572 - The 8-bit integer scalar colorspace has been extended to cover all scalar integer data.
TP 384427 - The Current Channel Shader input option has been removed due to conflicts with the unified stack workflow.
TP 113823 / BZ 49238 - Promoted Group node attributes now appear in corresponding Graph Layer, Layer Properties.
TP 364284 - Node Properties panels now have a smaller default height.
TP 379001 - Brush tip icon generation speed has been improved, allowing for fluid editing of gradient-based brush tips.
TP 378529 - When saving or exporting data Mari would occasionally crash if the Max Memory limit, found in Preferences > Data > Project, was exceeded.
TP 373403 - It was not possible to duplicate a layer above itself using Alt+Drag in the Layers palette.
TP 369401 - The Principled BRDF and Unreal shaders exhibited rendering issues where the surface pointed away from the light.
TP 380698 - Importing Tiled procedurals using Session Scripts did not correctly link up their tiled images.
TP 376012 - Highlights on the Transform tool handles were not reset after moving the cursor away from them.
TP 207913 - Mari may crash, or operate with lower than expected performance, when using recent graphics drivers with some AMD cards.
There have been reports that Plays.tv and Raptr, which come bundled with the AMD FirePro drivers, can cause instability in Mari. If you are experiencing instability, please try uninstalling these applications.
TP 16225 / BZ 18457 - Using NVIDIA graphics cards from the Fermi series with drivers older than version 270 results in various rendering issues when the Virtual Texture Type is set to Half or Float.
To resolve this, please download and install the latest graphics driver for your card from the NVIDIA website
TP 9404 / BZ 12567 - Enabling Sync to VBlank in NVIDIA settings can drastically reduce Mari’s performance. If you experience very slow interaction, even with low-polygon models, on one of the Tested Workstation Hardware, navigate to:
• Linux: NVIDIA X Server Settings > X Screen 0 > OpenGL Settings and turn off Sync to VBlank.
• Windows: NVIDIA Control Panel > 3D Settings > Manage 3DSettings > Vertical Sync > Force off
Then, restart Mari.
TP 123514 / BZ 50886 - Imported shaders don't have channels assigned.
TP 113036 / BZ 49131 - High polygon .obj files, exported using the OBJ Exporter plug-in, cannot be read back in to Mari.
TP 57756 / BZ 29386 - When using the Export for Maya script, Maya’s viewport may incorrectly show some patches as transparent. This can be resolved by selecting High Quality Rendering or Viewport 2.0 from the Renderer menu within Maya.
TP 10157 / BZ 16324 - Windows only: You cannot currently import an image into a channel using a relative file path. To work around this, use an absolute path when importing images.
TP 9854 / BZ 14985 - There may be a slight pause after importing textures when creating new projects, while Mari saves the project.
TP 383360 - Using Displacement on Shaders may significantly decrease Canvas frame rate whilst navigating. This can be offset by disabling displacement on individual Shaders, or by globally disallowing the Tesselation Allowed setting found under Preferences > GPU > Shaders.
TP 64924 / BZ 34690 - Flattening or caching layers or channels on complex projects may cause Windows to reset the graphics driver due to the long processing time. To work around this issue, you can try to flatten or cache fewer layers at a time, or reduce the value of the Max Render Size For Baking setting. This setting can be found under Preferences > GPU > Baking and Projection.
Reducing this size breaks the flattening or caching operation up into smaller pieces, which individually take less time to calculate, and thereby avoids a Windows graphics driver reset.
TP 53959 / BZ 26460 - Layers - Painting a mask in a Mask Layer Group sometimes results in unexpected paint results. To prevent this from happening, either:
• Use a white “color” layer at the bottom of your mask stack. Any layer used over this initial “color” layer should then be fine, or
• If you want to create a mask in a Mask Layer Group, simply add another layer on your Mask Layer Group instead, and paint white into it to create a mask.
TP 10046 / BZ 13640 - The Blur tool can be slow to use on the initial stroke. Wait for Mari to process the blur before applying a second stroke.
TP 9567 / BZ 13394 - Using the Select Items tool with the Facing set to Front to select and hide a portion of faces causes some of the faces within the selection to remain visible when zoomed in. To catch all selected faces, either:
• select Facing > Through instead of Front, or
• zoom in closer to the object.
TP 168753 - AIStandard nodes created in Mari3.0v1 are not compatible with Mari 3.0v2, or later. As a workaround, remove the old AIStandard nodes and recreate them in Mari 3.0v2, or later.
TP 126902 / BZ 51462 - Creating a shader and attempting to view it in the Node Graph palette gives the impression that the DiffuseColor input edge is missing from the shader node. The input is present, but is incorrectly hidden. This is related to bug 51263 below
TP 126816 / BZ 51452 - When importing a gizmo, the nodes in the gizmo did not retain their organization if they were created using the item name in the menu.
TP 125961 / BZ 51263 - It is not currently possible to attach the Viewer node to standard Mari shaders, because they are hidden. As a workaround, you can click the View the current channel button above the Node Graph.
TP 125813 / BZ 51247 - Channel transfer doesn't transfer Graph Layers as expected.
TP 124611 / BZ 51082 - The Ambient Occlusion node's properties don't include a generate AO option.
TP 111329 / BZ 48790 - Autoplace does not respect Backdrop nodes.
TP 48970 / BZ 23010 - If Mari crashes when receiving incoming components from Nuke when the Virtual Texture Type is set to Float, lower the Virtual Texture Size to a value below 8192x8192.
TP 17678 / BZ 19780 - A projector created in Ortho view in Mari does not re-project correctly in Nuke.
TP 13600 / BZ 17626 - It can take a long time to import very large or very high polygon count ptex models. The work-around is to assign a small uniform face size (1x1 or 2x2) on import, and then upres the relevant bits of the model as necessary after loading.
TP 13531 / BZ 17618 - Ptex does not bake properly if the resolution of the face is too small. The workaround is to increase the resolution of the selected faces you are having problems with.
TP 64961 / BZ 34729 - Mari displays a rendering error on the canvas when it is unable to create a shader. More information has been included to help you determine the cause of the error. Some solutions might be to hide groups and layers, or to cache parts of your layer stack until a shader can be created
TP 64911 / BZ 34679 - On extremely large projects, issues can arise with shader limits, and reaching the maximum allowed texture slots available. To avoid reaching these shader limits on large projects, try the following workarounds:
• hide groups and layers, or
• cache groups and layers.
TP 360737 - Linux only: When using the Select Color dialog, the colors picked with the eye dropper Pick Screen Pixels option may be incorrect due to an OS driven behaviour of darkening the rest of the Mari application.
To stop this behaviour the following preference can be disabled:
- CentOS 7: Applications > Utilities > Tweak Tool > Windows > Attached Modal Dialogues
This will also disable other desktop manager specific effects.
TP 308268 - Windows only: When working on multiple monitors, palettes sometimes cannot be docked.
TP 200836 - Scrolling in the Brush Editor or Tool Properties palette makes the scratch pad go blank.
TP 194832 - Bake times were significantly increased when baking into channels containing non-linear data.
TP 167883 / BZ 51934 - When a project that contains a Tiled procedural is upgraded from 2.6 to 3.0, the frame rate drops drastically. To avoid this, replace the image in the Tiled procedural once the project has been upgraded.
TP 129292 / BZ 51771 - Removing, changing, or hiding subdivided objects takes a long time.
TP 126389 / BZ 51370 - Heavier projects are initially slower to render when colorspace is enabled.
TP 126164 / BZ 51322 - Modo Render: The preview occasionally fails to update fully.
TP 125437 / BZ 51199 - The AiStandard, RedshiftArchitectural, and VRayMtl shaders are not connected to the Current Channel automatically.
TP 125319 / BZ 51185 - PythonAPI: Mari's Paint node does not appear in typeList(). To add a Paint node Pythonically, call:
ng = mari.geo.current().nodeGraph() ng.createPaintNode(width, height, bitDepth)
TP 124614 / BZ 51084 - Animated objects can take a long time to subdivide.
TP 124233 / BZ 51049 - Texture transfer does not take object transformation into account
TP 123532 / BZ 50898 - Existing subdivision calculations are lost when recalculating, even if recalculation fails.
TP 121276 / BZ 50548 - Modo Render: Only camera moves are respected by live update.
TP 121139 / BZ 50520 - Although faces with degenerate UVs can be loaded into Mari, they can cause issues in some cases. They do not occupy any space in UV, so it's impossible to properly paint on such faces. There is also the risk that some shaders may show undesirable lighting effects on faces with degenerate UVs.
TP 100303 / BZ 46600 - Ambient Occlusion must be updated after any OpenSubdiv calculation.
TP 99115 / BZ 46223 - The Sponge Desaturate mode does not work through the full dynamic range as it uses HSL for desaturation. HSL cannot be used with HDR because HSL works well only in LDR values.
TP 86007 / BZ 41573 - Windows 8 only: The Windows key (Meta key) does not disengage when used in conjunction with a Wacom pen.
TP 62668 / BZ 33293 - Linux: Launching Mari with the language set to one without certain character symbols resulted in Mari failing with an error that the specified transform could not be loaded. To work around this, set the locale (language) to English.
TP 60643 / BZ 31946 - Sometimes paint is not baked because of memory management issues on the graphics card. This can be due to issues such as a high resolution paint buffer, a high bit-depth paint buffer, large virtual texture size, or even a large scale value on the paint buffer transform. These issues can usually be identified by glError: 0x505 out of memory messages in the log. Try reducing any or all of these values to prevent it happening. Graphics drivers are continually improving, so it’s also worth checking whether upgrading your drivers resolves the problem.
TP 45590 / BZ 20510 - If you find that the startup time for Mari is longer than usual, please check that the LIC files in your RLM licensing data folder do not refer to obsolete server ports. If they do, place them in another directory and restart Mari.
TP 37066 / BZ 20021 - Textures in the canvas intermittently switch between lower and higher resolutions. This issue is more likely to occur if your virtual texture resolution is low, and you're working on a complex model with displacement. Possible workarounds include increasing your virtual texture size, reducing the number of channels Mari has to access at once (for example, by reducing the number of channels required for the current shader), to reduce the patch resolution of patches in the channels used in the shader, or to use a smaller canvas window or monitor.
TP 9758 / BZ 14201 - Linux only: Mari becomes unresponsive after the system is woken from sleep.
TP 9631 / BZ 13700 - Adjusting the Camera > Perspective settings for a Projector is not reflected on the canvas until the Projector is made Current.
TP 9363 / BZ 12102 - Current brush settings do not get saved as part of the project. Instead, Mari reverts to the default settings when you close and relaunch it.
TP 9342 / BZ 11874 - Mari doesn’t recognize 3-digit padded .obj sequences as animation
TP 8030 / BZ 13571 - Launching a new version of Mari for the first time, when a config file exists from a previous version, sometimes results in an object not appearing in the Ortho view.
To solve this, close Mari, delete the following config file and relaunch Mari:
• Linux: ~/.config/TheFoundry/Mari.conf
• Windows: C:/Users//.mari/TheFoundry/Mari.ini
TP 7945 / BZ 13294 - Windows: Mari sometimes crashes when trying to load data on large projects due to the program exhausting all window manager objects.
To reconfigure the user object limit:
If this number gets too large, you may also have to modify GDIProcessHandleQuota.
These are the changes relevant to developers.
TP 361617 - The new function, Node.outputNodes(PortName=None), has been added to return the directly connected output nodes of a given node.
TP 361616 - The new functions, Node.outputPortNames(), Node.outputPortName(Index) and Node.outputPortCount(), have been added to return information about the output ports of a given node.
TP 364641 - The new function, GroupNode.linkKnobs(KnobName, TargetKnobNames, PrettyKnobName=""), has been added to perform Group node knob linking.
TP 374629 - The new function mari.history.cancelMacro() has been added. When called after a mari.history.startMacro(MacroName) call, all actions taken since shall be undone and no history item will be added to the history stack.
TP 377193 - The following classes have been introduced to allow Python interaction with Multi-Channel Layers:
TP 384669 - The new function mari.app.popupsAllowed() has been added to enable querying whether the application is running in a non-interactive mode, such as terminal mode, or performing a long non-blocking batch of processing, where it's important that popups are not displayed.
TP 355032 - The Python API Node.setInputNode() function now accepts a new argument, OutputPortName, to specify which output port of the source node to connect to.
TP 369453 - The shelf API has been extended to match the counterpart UI functionality. This now allows manipulating shelves and shelf items using python in Mari.
TP 352684 - Archiving projects now returns the filename of the new archive in its callback functions mari.projects.aboutToArchive(UUID, FileName) and mari.projects.archived(UUID, FileName).
TP 385898 - The GeoEntity.removeShader function takes a new argument to specify whether to Convert or Disconnect Multi-Channel Layers when removing their associated Shader.
TP 373896 - Documentation for the Custom Shader API has been updated to describe how shader models are described and used in Mari.
TP 378475 - Custom Shaders without a DefaultName tag, defined in their XML, will use the name given when registered with the Custom Shader API. This dictates the name of the Shader Model generated for that shader.
TP 310192 - Mari did not correctly export textures with the Python API, when the function was called immediately after importing textures.
TP 366709 - Linux only: Running Mari with the command line argument --help caused the application to crash.
TP 374175 - mari.utils.getExistingDirectory() and mari.utils.getOpenFileName() didn't handle the initial directory argument properly.
Copyright © 2019 The Foundry Visionmongers Ltd.