Supported Features and Known Limitations

Beta

  • Arnold GPU is a beta feature, intended to give users an early look into what is coming and a chance to test Arnold GPU and provide feedback.
  • Arnold GPU is not intended for use in production.
  • Please use Arnold Answers if you have any technical problems, questions, or feedback on Arnold GPU.

Quick Summary

  • Arnold GPU supports complex shading networks, SSS, hair, atmospherics, instancing, and procedurals.

  • With the same settings, GPU renders will currently be noisier than CPU renders, since GPU renders are "non-splitting" (i.e. one path per camera/AA sample). Accordingly, to achieve equivalent noise the AA sample count will need to be increased in GPU renders. Adaptive rendering is fully supported.

  • Standard Surface, Standard Hair, and Standard Volume are supported, with some limitations (see the table below).
  • OSL is supported, with some limitations currently (see below).
  • OpenVDB volumes are supported, with some limitations currently (see below).
  • Volume displacement is supported, with some limitations currently (see below).
  • Floating point textures are converted to half-float. Filename attribute tags and mipmap bias are not supported.
  • Light filters and light linking are not supported.
  • Limited AOV support.

  • Light groups, shadow groups, trace sets are not supported.

OSL

Initial support for OSL has been added to the GPU renderer. As in the CPU renderer, you can mix and match OSL and Arnold shaders in the same shading network. Note that this initial support is still not complete and currently has a number of limitations as listed below.

Closures:

Supported closures include:

  • Emission
  • Diffuse
  • Reflection
  • Refraction
  • Translucent
  • Oren-Nayar
  • Sheen
  • SSS
  • Metal & Microfacet (only GGX distribution is supported)

Shading operations:

Currently, there is limited support for shading operations, as follows:

  • Some matrix operations are unsupported.
  • Texture, transform, trace and string operations are currently unsupported.

OpenVDB

Initial support for OpenVDB has been added to the GPU renderer. In this initial implementation, each VDB grid is loaded to GPU in a dense format. While this matches the CPU renderer visually quite well and is feature-complete, the memory consumption can be larger due to the lack of sparse representation. The rendering speed may be slower than CPU in cases with high opacity volumes, as the GPU implementation does not skip empty space as efficiently as the CPU version. The match with CPU will become increasingly good as the step-size parameter is reduced.

Volume displacement

Initial support for volume displacement has been added to the GPU renderer. The rendering speed may be slower than CPU in cases with high opacity volumes, as the GPU implementation does not skip empty space as efficiently as the CPU version. The match with CPU will become increasingly good as the step-size parameter is reduced.

Supported Features and Known Limitations

Feature

GPU Support

Notes

Cameras

cyl_camera

Yes

 

fisheye_camera

Yes

 

ortho_camera

Yes

 

persp_camera

Yes

uv_remap is not supported.

spherical_camera

Yes

 

uv_camera

No

 

vr_camera

Yes

Merge shaders are not supported.

Color Managers

color_manager_ocio

Yes

 

color_manager_syncolor

Yes

 

Drivers

cryptomatte_manifest_driver

No

 

driver_deepexr

No

 

driver_exr

Yes

 

driver_jpeg

Yes

 

driver_png

Yes

 

driver_tiff

Yes

 

Filters

blackman_harris_filter

Yes

One single filter for all AOVs.

box_filter

Yes

One single filter for all AOVs.

gaussian_filter

Yes

One single filter for all AOVs.

triangle_filter

Yes

One single filter for all AOVs.

All other filters

No

Fallback to box filter. One single filter for all AOVs.

Lights

cylinder_light

Yes

 

disk_light

Yes

 

distant_light

Yes

Light groups, light filters not supported.

mesh_light

Yes

Light groups, light filters not supported.

photometric_light

No

 

point_light

Yes

Light groups, light filters not supported.

quad_light

Yes

Light groups, light filters not supported.

skydome_light

Yes

Light groups, light filters not supported.

spot_light

Yes

Light groups, light filters not supported.

Operators

collection

Yes

 

disable

Yes

 

include_graph

Yes

 

materialx

Yes

 

merge

Yes

 

set_parameter

Yes

 

set_transform

Yes

 

switch_operator

Yes

 

options

Yes

 

override

Yes

 

Shaders

abs

Yes

 

add

Yes

 

ambient_occlusion

Yes

Trace sets are not supported.

aov_write_float

No

 

aov_write_int

No

 

aov_write_rgb

No

 

aov_write_rgba

No

 

atan

Yes

 

atmosphere_volume

Yes

 

barndoor

No

Light filters are not supported.

blackbody

Yes

 

bump2d

Yes

 

bump3d

Yes

 

c4d_texture_tag

Yes

 

c4d_texture_tag_rgba

Yes

 

cache

Yes

This is a no-op on GPU.

camera_projection

Yes

 

car_paint

Yes

 

cell_noise

Yes

 

checkerboard

Yes

UV sets are not supported.

clamp

Yes

 

clip_geo

No

 

color_convert

Yes

 

color_correct

Yes

 

color_jitter

Yes

 

compare

Yes

 

complement

Yes

 

complex_ior

Yes

 

cross

Yes

 

cryptomatte

No

 

curvature

Yes

Trace sets are not supported.

divide

Yes

 

dot

Yes

 

exp

Yes

 

facing_ratio

Yes

 

flakes

Yes

 

flat

Yes

 

float_to_int

Yes

 

float_to_matrix

No

 

float_to_rgb

Yes

 

float_to_rgba

Yes

 

fog

Yes

 

fraction

Yes

 

gobo

No

Light filters are not supported.

image

Yes

All textures converted to half-float. Filename attribute tags and mipmap bias are not supported.

is_finite

Yes

 

lambert

Yes

 

layer_float

Yes

 

layer_rgba

Yes

 

layer_shader

Yes

 

length

Yes

 

light_blocker

No

Light filters are not supported.

light_decay

No

Light filters are not supported.

log

Yes

 

matrix_interpolate

No

 

matrix_multiply_vector

Yes

The matrix parameter is not linkable on GPU.

matrix_transform

No

 

matte

No

 

max

Yes

 

maya_layered_shader

Yes

 

min

Yes

 

mix_rgba

Yes

 

mix_shader

Yes

 

modulo

Yes

 

motion_vector

No

 

multiply

Yes

 

negate

Yes

 

noise

Yes

 

normal_map

Yes

 

normalize

Yes

 

osl

Yes

Some limited support for closures and shading operations.

passthrough

Yes

 

physical_sky

Yes

 

pow

Yes

 

query_shape

Yes

 

ramp_float

Yes

Connected colors and positions not supported.

ramp_rgb

Yes

Connected colors and positions not supported.

random

Yes

 

range

Yes

 

ray_switch_rgba

Yes

 

ray_switch_shader

Yes

 

reciprocal

Yes

 

rgb_to_float

Yes

 

rgb_to_vector

Yes

 

rgba_to_float

Yes

 

round_corners

Yes

Trace sets are not supported.

shadow_matte

No

 

shuffle

Yes

 

sign

Yes

 

space_transform

Yes

Camera and screen spaces are not supported.

sqrt

Yes

 

standard_hair

Yes

ID AOVs are not supported

standard_surface

Yes

ID AOVs are not supported. Diffusion SSS mode is not supported.

standard_volume

Yes

 

state_float

Yes

 

state_int

Yes

 

state_vector

Yes

 

subtract

Yes

 

switch_rgba

Yes

 

switch_shader

Yes

 

toon

No

 

trace_set

No

 

trigo

Yes

 

triplanar

Yes

 

two_sided

Yes

 

user_data_float

Yes

 

user_data_int

Yes

 

user_data_rgb

Yes

 

user_data_rgba

Yes

 

user_data_string

No

 

utility

Yes

The wire, polywire, edgelength, pixelerror, nlights color modes are not supported.

uv_projection

Yes

 

uv_transform

Yes

 

vector_map

Yes

 

vector_to_rgb

Yes

 

volume_sample_float

Yes

 

volume_sample_rgb

Yes

 

wireframe

No

 

Shapes

box

Yes

Light groups, shadow groups, trace sets are not supported.

cone

No

 

curves

Yes

Light groups, shadow groups, trace sets are not supported. Oriented curves are not supported.

cylinder

No

 

disk

No

 

ginstance

Yes

Light groups, shadow groups, trace sets are not supported.

nurbs

Yes

 

plane

Yes

Light groups, shadow groups, trace sets are not supported.

points

Yes

Light groups, shadow groups, trace sets are not supported.

polymesh

Yes

Light groups, shadow groups, trace sets are not supported.

sphere

Yes

Light groups, shadow groups, trace sets are not supported.

implicit

No

 

volume_implicit

No

 

alembic

Yes

Light groups, shadow groups, trace sets are not supported.

procedural

Yes

Light groups, shadow groups, trace sets are not supported.

volume

Yes

Light groups, shadow groups, trace sets are not supported.

AOVs
AA_inv_densityYes 
IDYes 
NYes 
PYes 
PrefNo 
RGBAYes 
ZYes 
albedoYes 
backgroundYes 
coatYes 
coat_albedoYes 
coat_directYes 
coat_indirectYes 
cputimeYes 
diffuseYes 
diffuse_albedoYes 
diffuse_directYes 
diffuse_indirectYes 
directYes 
emissionYes 
indirectYes 
motionvectorNo 
opacityYes 
raycountYes 
shadow_matteNo 
sheenYes 
sheen_albedoYes 
sheen_directYes 
sheen_indirectYes 
specularYes 
specular_albedoYes 
specular_directYes 
specular_indirectYes 
sssYes 
sss_albedoYes 
sss_directYes 
sss_indirectYes 
transmissionYes 
transmission_albedoYes 
transmission_directYes 
transmission_indirectYes 
volumeYes 
volume_ZNo 
volume_albedoNo 
volume_indirectNo 
volume_opacityNo 
  • No labels