From 061bf18068064492d5459b41380047299111098d Mon Sep 17 00:00:00 2001 From: Sebastien Blaineau-Ortega Date: Fri, 24 Nov 2023 10:44:08 +0100 Subject: [PATCH 01/10] Update tests after arnold changes on curves (#1766) (cherry picked from commit 2fcc262f3e52deb35685937847171b6dd104973c) --- testsuite/test_0072/ref/reference.log | 474 ++++++++++++++------------ testsuite/test_0072/ref/reference.tif | Bin 8138 -> 8162 bytes testsuite/test_0086/ref/reference.log | 394 +++++++++++---------- testsuite/test_0086/ref/reference.tif | Bin 16266 -> 16283 bytes 4 files changed, 480 insertions(+), 388 deletions(-) diff --git a/testsuite/test_0072/ref/reference.log b/testsuite/test_0072/ref/reference.log index c4d01ad532..49a8c283ca 100644 --- a/testsuite/test_0072/ref/reference.log +++ b/testsuite/test_0072/ref/reference.log @@ -1,212 +1,262 @@ -00:00:00 89MB | log started Wed May 17 21:05:21 2023 -00:00:00 89MB | Arnold 7.2.2.0 [16d4b1c9] windows x86_64 clang-15.0.7 oiio-2.4.1 osl-1.12.9 vdb-7.1.1 adlsdk-7.4.2.47 clmhub-3.1.1.43 rlm-14.2.5 optix-6.6.0 2023/05/03 17:26:56 -00:00:00 89MB | running on REMS4QL1726, pid=50460 -00:00:00 89MB | 2 x Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz (32 cores, 64 logical) with 65154MB -00:00:00 101MB | NVIDIA driver version 522.06 (Optix 60804) -00:00:00 101MB | GPU 0: Quadro RTX 4000 @ 1545MHz (compute 7.5) with 8191MB (6201MB available) (NVLink:0) -00:00:00 101MB | Windows 10 (version 10.0, build 19044) -00:00:00 101MB | soft limit for open files is set at 2048 -00:00:00 101MB | -00:00:00 112MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio -00:00:00 112MB | loading plugins from C:\arnold\arnold-usd\build\windows_x86_64\msvc_opt\usd-0.22.11_arnold-7.2.2.0\procedural ... -00:00:00 118MB | usd_proc.dll: usd uses Arnold 7.2.2.0 -00:00:00 118MB | loaded 1 plugins from 1 lib(s) in 0:00.10 -00:00:00 118MB | loading plugins from C:\arnold\sdk\latest\bin\..\plugins ... -00:00:00 118MB | alembic_proc.dll: alembic uses Arnold 7.2.2.0 -00:00:00 118MB | cryptomatte.dll: cryptomatte uses Arnold 7.2.2.0 -00:00:00 118MB | cryptomatte.dll: cryptomatte_filter uses Arnold 7.2.2.0 -00:00:00 118MB | cryptomatte.dll: cryptomatte_manifest_driver uses Arnold 7.2.2.0 -00:00:00 118MB | skipping already loaded plugin: C:\arnold\sdk\latest\bin\..\plugins\usd_proc.dll ... -00:00:00 118MB | loaded 4 plugins from 2 lib(s) in 0:00.00 -00:00:00 119MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio -00:00:00 123MB | [kick] command: C:\arnold\sdk\latest\bin\kick test_resaved.usda -dw -r 160 120 -sm lambert -bs 16 -o testrender.tif -set driver_tiff.dither false -nocrashpopup -dp -v 6 -00:00:00 123MB | loading plugins from . ... -00:00:00 123MB | no plugins loaded -00:00:00 123MB | ARNOLD_ADP_DISABLE envar passed in -- ADP is disabled for this session -00:00:00 165MB WARNING | node entry "standard" is deprecated, and may be removed in the future -Warning (secondary thread): in BindingsAtPrim at line 709 of S:\gocd\pipelines\kook\kook\usd\build\usd-22.11_windows-x86_64_static_vc-14.2_cxx14\pxr\usd\usdShade\materialBindingAPI.cpp -- Found material bindings on prim at path (/curve2/curveShape2) but MaterialBindingAPI is not applied on the prim -Warning (secondary thread): in BindingsAtPrim at line 709 of S:\gocd\pipelines\kook\kook\usd\build\usd-22.11_windows-x86_64_static_vc-14.2_cxx14\pxr\usd\usdShade\materialBindingAPI.cpp -- Found material bindings on prim at path (/curve1/curveShape1) but MaterialBindingAPI is not applied on the prim -Coding Error (secondary thread): in _FailGet at line 567 of S:\gocd\pipelines\kook\kook\usd\build\usd-22.11_windows-x86_64_static_vc-14.2_cxx14\pxr\base\vt\value.cpp -- Attempted to get value of type 'string' from VtValue holding 'GfVec4f' -00:00:00 166MB | [kick] applying 2 attr value overrides -00:00:00 166MB | -00:00:00 166MB | authorizing with license manager: network ... -00:00:00 166MB WARNING | rendering with watermarks because of failed authorization: -00:00:00 166MB | [clm.v1] license server was not set (51) -00:00:00 166MB | environment variables: -00:00:00 166MB | ARNOLD_LICENSE_ORDER = (not set) -00:00:00 166MB | ARNOLD_LICENSE_MANAGER = (not set) -00:00:00 166MB | [rlm] solidangle_LICENSE = (not set) -00:00:00 166MB | [rlm] RLM_LICENSE = (not set) -00:00:00 166MB | [clm] ADSKFLEX_LICENSE_FILE = (not set) -00:00:00 166MB | [clm] LM_LICENSE_FILE = (not set) -00:00:00 166MB | -00:00:00 167MB | [color_manager] using color manager of type "color_manager_ocio" -00:00:00 168MB | [color_manager_ocio] using config file C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio -00:00:00 168MB | [color_manager] rendering color space is "ACEScg" -00:00:00 223MB | -00:00:00 223MB | there are 1 light and 3 objects: -00:00:00 223MB | 1 persp_camera -00:00:00 223MB | 1 distant_light -00:00:00 223MB | 2 utility -00:00:00 223MB | 1 standard -00:00:00 223MB | 1 standard_hair -00:00:00 223MB | 1 ramp_rgb -00:00:00 223MB | 1 driver_tiff -00:00:00 223MB | 3 box_filter -00:00:00 223MB | 1 gaussian_filter -00:00:00 223MB | 2 curves -00:00:00 223MB | 2 list_aggregate -00:00:00 223MB | 2 color_manager_ocio -00:00:00 223MB | -00:00:00 223MB | rendering image at 160 x 120, 3 AA samples -00:00:00 223MB | AA samples max -00:00:00 223MB | AA sample clamp -00:00:00 223MB | diffuse samples 2 / depth 1 -00:00:00 223MB | specular samples 2 / depth 1 -00:00:00 223MB | transmission samples 2 / depth 8 -00:00:00 223MB | volume indirect -00:00:00 223MB | total depth 10 -00:00:00 223MB | bssrdf samples 2 -00:00:00 223MB | light -00:00:00 223MB | transparency depth 10 -00:00:00 223MB | initializing 15 nodes -00:00:00 224MB | creating root object list ... -00:00:00 224MB | node initialization done in 0:00.00 (multithreaded) -00:00:00 224MB | updating 16 nodes -00:00:00 224MB | /directionalLight1/directionalLightShape1: distant_light using 1 sample, 2 volume samples -00:00:00 224MB | scene bounds: (-3.12011647 -0.300000012 -1.96346307) -> (2.73150778 0.300000012 6.11522675) -00:00:00 224MB | node update done in 0:00.00 (multithreaded) -00:00:00 224MB | [aov] parsing 1 output statements ... -00:00:00 224MB | [aov] registered driver: "mydriver" (driver_tiff) -00:00:00 224MB | [aov] * "RGBA" of type RGBA filtered by "myfilter" (gaussian_filter) -00:00:00 224MB | [aov] done preparing 2 AOVs for 1 output to 1 driver (0 deep AOVs) -00:00:00 227MB | starting 64 bucket workers of size 16x16 ... -00:00:00 234MB | [accel] list_aggregate bvh4 done - 0:00.00 (wall time) - 2 prims, 1 key -00:00:00 238MB | [accel] curves bvh4 done - 0:00.00 (wall time) - 60 prims, 1 key -00:00:00 237MB | [accel] curves bvh4 done - 0:00.00 (wall time) - 45 prims, 1 key -00:00:00 241MB | 0% done - 20 rays/pixel -00:00:00 267MB | 5% done - 23 rays/pixel -00:00:00 270MB | 10% done - 12 rays/pixel -00:00:00 287MB | 15% done - 36 rays/pixel -00:00:00 287MB | 20% done - 37 rays/pixel -00:00:00 294MB | 25% done - 13 rays/pixel -00:00:00 296MB | 30% done - 45 rays/pixel -00:00:00 296MB | 35% done - 12 rays/pixel -00:00:00 297MB | 40% done - 8 rays/pixel -00:00:00 297MB | 45% done - 13 rays/pixel -00:00:00 297MB | 50% done - 9 rays/pixel -00:00:00 298MB | 55% done - 5 rays/pixel -00:00:00 299MB | 60% done - 13 rays/pixel -00:00:00 299MB | 65% done - 5 rays/pixel -00:00:00 300MB | 70% done - 4 rays/pixel -00:00:00 302MB | 75% done - 6 rays/pixel -00:00:00 303MB | 80% done - 17 rays/pixel -00:00:00 303MB | 85% done - 5 rays/pixel -00:00:00 303MB | 90% done - 2 rays/pixel -00:00:00 304MB | 95% done - 5 rays/pixel -00:00:00 304MB | 100% done - 1 rays/pixel -00:00:00 304MB | render done in 0:00.049 -00:00:00 304MB | [driver_tiff] writing file `testrender.tif' -00:00:00 305MB | render done -00:00:00 305MB | -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | scene creation time 0:00.36 machine utilization (1.93%) -00:00:00 305MB | unaccounted 0:00.36 -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | frame time 0:00.11 machine utilization (16.42%) -00:00:00 305MB | driver init/close 0:00.01 -00:00:00 305MB | rendering 0:00.04 -00:00:00 305MB | pixel rendering 0:00.04 -00:00:00 305MB | unaccounted 0:00.05 -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | top session self-times by category -00:00:00 306MB | RenderBucket 0:00.01 (38.40%) -00:00:00 306MB | surface closure 0:00.00 (12.80%) -00:00:00 306MB | /mtl/curveShape2_hairShader/curveShape2_hairShader 0:00.00 (12.23%) -00:00:00 306MB | /mtl/aiStandard2/aiStandard2 0:00.00 ( 0.57%) -00:00:00 306MB | curves::intersect (/curve1/curveShape1) 0:00.00 ( 6.22%) -00:00:00 306MB | ADP 0:00.00 ( 6.17%) -00:00:00 306MB | accumulateBucketSamples 0:00.00 ( 5.70%) -00:00:00 306MB | TraceCameraRay 0:00.00 ( 5.67%) -00:00:00 306MB | AiMalloc 0:00.00 ( 4.57%) -00:00:00 306MB | Plugin loader 0:00.00 ( 3.96%) -00:00:00 306MB | thread blocked 0:00.00 ( 2.89%) -00:00:00 306MB | sampleNextBatch 0:00.00 ( 2.83%) -00:00:00 306MB | AiSceneLoad 0:00.00 ( 2.29%) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | top session self-times by node -00:00:00 306MB | RenderBucket 0:00.01 (38.40%) -00:00:00 306MB | standard_hair:/mtl/curveShape2_hairShader/curveShape2_hairShader 0:00.00 (12.23%) -00:00:00 306MB | surface closure 0:00.00 (12.23%) -00:00:00 306MB | curves:/curve1/curveShape1 0:00.00 ( 7.36%) -00:00:00 306MB | curves::intersect 0:00.00 ( 6.22%) -00:00:00 306MB | AiLightsPrepare 0:00.00 ( 0.57%) -00:00:00 306MB | BVH::intersect 0:00.00 ( 0.57%) -00:00:00 306MB | ADP 0:00.00 ( 6.17%) -00:00:00 306MB | accumulateBucketSamples 0:00.00 ( 5.70%) -00:00:00 306MB | TraceCameraRay 0:00.00 ( 5.67%) -00:00:00 306MB | AiMalloc 0:00.00 ( 4.57%) -00:00:00 306MB | Plugin loader 0:00.00 ( 3.96%) -00:00:00 306MB | list_aggregate:root 0:00.00 ( 2.86%) -00:00:00 306MB | thread blocked 0:00.00 ( 1.16%) -00:00:00 306MB | BVH::intersect 0:00.00 ( 1.12%) -00:00:00 306MB | BVH::build 0:00.00 ( 0.58%) -00:00:00 306MB | sampleNextBatch 0:00.00 ( 2.83%) -00:00:00 306MB | AiSceneLoad 0:00.00 ( 2.29%) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | peak CPU memory used 305.96MB -00:00:00 306MB | at startup 101.98MB -00:00:00 306MB | AOV samples 2.76MB -00:00:00 306MB | output buffers 0.32MB -00:00:00 306MB | framebuffers 0.31MB -00:00:00 306MB | node overhead 0.01MB -00:00:00 306MB | message passing 0.13MB -00:00:00 306MB | memory pools 60.52MB -00:00:00 306MB | geometry 0.00MB -00:00:00 306MB | curves 0.00MB -00:00:00 306MB | accel structs 0.03MB -00:00:00 306MB | strings 24.50MB -00:00:00 306MB | profiler 0.01MB -00:00:00 306MB | unaccounted 115.39MB -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | ray counts ( /pixel, /sample) (% total) (avg. hits) (max hits) -00:00:00 306MB | camera 192800 ( 10.04, 1.00) ( 74.08%) ( 0.12) ( 1) -00:00:00 306MB | shadow 22691 ( 1.18, 0.12) ( 8.72%) ( 0.00) ( 1) -00:00:00 306MB | diffuse_reflect 40713 ( 2.12, 0.21) ( 15.64%) ( 0.04) ( 1) -00:00:00 306MB | specular_reflect 4051 ( 0.21, 0.02) ( 1.56%) ( 0.00) ( 1) -00:00:00 306MB | total 260255 ( 13.55, 1.35) (100.00%) ( 0.10) ( 1) -00:00:00 306MB | by ray depth: 0 1 2 -00:00:00 306MB | total 82.5% 17.5% 0.0% -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | shader calls ( /pixel, /sample) (% total) -00:00:00 306MB | primary 39387 ( 2.05, 0.20) (100.00%) -00:00:00 306MB | total 39387 ( 2.05, 0.20) (100.00%) -00:00:00 306MB | by ray depth: 0 1 2 -00:00:00 306MB | total 92.5% 7.5% 0.0% -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | geometry (% hit ) (instances) ( init mem, final mem) -00:00:00 306MB | lists 1 (100.0%) ( 0) ( 0.00, 0.00) -00:00:00 306MB | curves 2 (100.0%) ( 0) ( 0.00, 0.00) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | geometric elements ( min) ( avg.) ( max) -00:00:00 306MB | curves 2 ( 1) ( 1.0) ( 1) -00:00:00 306MB | curve segments 105 ( 45) ( 52.5) ( 60) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | acceleration structures: (% total) -00:00:00 306MB | bvh 3 (100.00%) -00:00:00 306MB | total 3 (100.00%) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | number of warnings, warning type: -00:00:00 306MB | 1: node entry "%s" is deprecated, and may be removed in the future -00:00:00 306MB | 1: rendering with watermarks because of failed authorization: -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | -00:00:00 305MB | releasing resources -00:00:00 207MB | -00:00:00 207MB | releasing resources -00:00:00 194MB | unloading 3 plugins -00:00:00 194MB | closing usd_proc.dll ... -00:00:00 194MB | closing alembic_proc.dll ... -00:00:00 194MB | closing cryptomatte.dll ... -00:00:00 194MB | unloading plugins done -00:00:00 194MB | Arnold shutdown +00:00:00 90MB | log started Fri Nov 24 10:16:45 2023 +00:00:00 90MB | Arnold 7.2.5.0 [6144cbef] windows x86_64 clang-15.0.7 oiio-2.4.1 osl-1.13.0 vdb-7.1.1 adlsdk-7.4.2.47 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2023/11/23 12:34:10 +00:00:00 90MB | running on REMS4QL1726, pid=27472 +00:00:00 90MB | 2 x Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz (32 cores, 64 logical) with 65154MB +00:00:00 102MB | NVIDIA driver version 535.98 (Optix 0) +00:00:00 102MB | GPU 0: Quadro RTX 4000 @ 1545MHz (compute 7.5) with 8191MB (6777MB available) (NVLink:0) +00:00:00 102MB | Windows 10 (version 10.0, build 19045) +00:00:00 102MB | soft limit for open files is set at 2048 +00:00:00 102MB | +00:00:00 113MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 113MB | loading plugins from C:\arnold\arnold-usd\build\windows_x86_64\msvc_opt\usd-0.22.11_arnold-7.2.5.0\plugins\procedural ... +00:00:00 120MB | usd_proc.dll: usd uses Arnold 7.2.5.0 +00:00:00 120MB | loaded 1 plugins from 1 lib(s) in 0:00.11 +00:00:00 120MB | loading plugins from C:\arnold\sdk\latest\bin\..\plugins ... +00:00:00 120MB | alembic_proc.dll: alembic uses Arnold 7.2.5.0 +00:00:00 121MB | cryptomatte.dll: cryptomatte uses Arnold 7.2.5.0 +00:00:00 121MB | cryptomatte.dll: cryptomatte_filter uses Arnold 7.2.5.0 +00:00:00 121MB | cryptomatte.dll: cryptomatte_manifest_driver uses Arnold 7.2.5.0 +00:00:00 121MB | skipping already loaded plugin: C:\arnold\sdk\latest\bin\..\plugins\usd_proc.dll ... +00:00:00 121MB | loaded 4 plugins from 2 lib(s) in 0:00.00 +00:00:00 121MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 125MB | [kick] command: C:\arnold\sdk\latest\bin\kick test.ass -resave test_resaved.usda -v 6 +00:00:00 125MB | loading plugins from . ... +00:00:00 125MB | no plugins loaded +00:00:00 125MB | ARNOLD_ADP_DISABLE envar passed in -- ADP is disabled for this session +00:00:00 131MB | [metadata] loading metadata file: test.ass +00:00:00 131MB | [ass] loading test.ass ... +00:00:00 131MB WARNING | node entry "standard" is deprecated, and may be removed in the future +00:00:00 131MB | [ass] read 6663 bytes, 10 nodes in 0:00.00 +00:00:00 169MB | [usd] Saved scene as test_resaved.usda +00:00:00 170MB | +00:00:00 170MB | releasing resources +00:00:00 166MB | +00:00:00 166MB | releasing resources +00:00:00 154MB | unloading 3 plugins +00:00:00 154MB | closing usd_proc.dll ... +00:00:00 154MB | closing alembic_proc.dll ... +00:00:00 153MB | closing cryptomatte.dll ... +00:00:00 153MB | unloading plugins done +00:00:00 153MB | Arnold shutdown +00:00:00 90MB | log started Fri Nov 24 10:16:46 2023 +00:00:00 90MB | Arnold 7.2.5.0 [6144cbef] windows x86_64 clang-15.0.7 oiio-2.4.1 osl-1.13.0 vdb-7.1.1 adlsdk-7.4.2.47 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2023/11/23 12:34:10 +00:00:00 90MB | running on REMS4QL1726, pid=26100 +00:00:00 90MB | 2 x Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz (32 cores, 64 logical) with 65154MB +00:00:00 103MB | NVIDIA driver version 535.98 (Optix 0) +00:00:00 103MB | GPU 0: Quadro RTX 4000 @ 1545MHz (compute 7.5) with 8191MB (6777MB available) (NVLink:0) +00:00:00 103MB | Windows 10 (version 10.0, build 19045) +00:00:00 103MB | soft limit for open files is set at 2048 +00:00:00 103MB | +00:00:00 114MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 114MB | loading plugins from C:\arnold\arnold-usd\build\windows_x86_64\msvc_opt\usd-0.22.11_arnold-7.2.5.0\plugins\procedural ... +00:00:00 121MB | usd_proc.dll: usd uses Arnold 7.2.5.0 +00:00:00 121MB | loaded 1 plugins from 1 lib(s) in 0:00.12 +00:00:00 121MB | loading plugins from C:\arnold\sdk\latest\bin\..\plugins ... +00:00:00 121MB | alembic_proc.dll: alembic uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte_filter uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte_manifest_driver uses Arnold 7.2.5.0 +00:00:00 122MB | skipping already loaded plugin: C:\arnold\sdk\latest\bin\..\plugins\usd_proc.dll ... +00:00:00 122MB | loaded 4 plugins from 2 lib(s) in 0:00.00 +00:00:00 122MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 126MB | [kick] command: C:\arnold\sdk\latest\bin\kick test_resaved.usda -dw -r 160 120 -sm lambert -bs 16 -o testrender.tif -set driver_tiff.dither false -nocrashpopup -dp -v 6 +00:00:00 126MB | loading plugins from . ... +00:00:00 127MB | no plugins loaded +00:00:00 127MB | ARNOLD_ADP_DISABLE envar passed in -- ADP is disabled for this session +00:00:00 170MB WARNING | node entry "standard" is deprecated, and may be removed in the future +00:00:00 170MB | [kick] applying 2 attr value overrides +00:00:00 170MB | +00:00:00 170MB | authorizing with license manager: network ... +00:00:00 171MB WARNING | rendering with watermarks because of failed authorization: +00:00:00 171MB | [clm.v1] license server was not set (51) +00:00:00 171MB | environment variables: +00:00:00 171MB | ARNOLD_LICENSE_ORDER = (not set) +00:00:00 171MB | ARNOLD_LICENSE_MANAGER = (not set) +00:00:00 171MB | [rlm] solidangle_LICENSE = (not set) +00:00:00 171MB | [rlm] RLM_LICENSE = (not set) +00:00:00 171MB | [clm] ADSKFLEX_LICENSE_FILE = (not set) +00:00:00 171MB | [clm] LM_LICENSE_FILE = (not set) +00:00:00 171MB | +00:00:00 171MB | [color_manager] using color manager of type "color_manager_ocio" +00:00:00 172MB | [color_manager_ocio] using config file C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 172MB | [color_manager] rendering color space is "ACEScg" +00:00:00 227MB | +00:00:00 227MB | there are 1 light and 3 objects: +00:00:00 227MB | 1 persp_camera +00:00:00 227MB | 1 distant_light +00:00:00 227MB | 2 utility +00:00:00 227MB | 1 standard +00:00:00 227MB | 1 standard_hair +00:00:00 227MB | 1 ramp_rgb +00:00:00 227MB | 1 driver_tiff +00:00:00 227MB | 3 box_filter +00:00:00 227MB | 1 gaussian_filter +00:00:00 227MB | 2 curves +00:00:00 227MB | 2 list_aggregate +00:00:00 227MB | 2 color_manager_ocio +00:00:00 227MB | +00:00:00 227MB | rendering image at 160 x 120, 3 AA samples +00:00:00 227MB | AA samples max +00:00:00 227MB | AA sample clamp +00:00:00 227MB | diffuse samples 2 / depth 1 +00:00:00 227MB | specular samples 2 / depth 1 +00:00:00 227MB | transmission samples 2 / depth 8 +00:00:00 227MB | volume indirect +00:00:00 227MB | total depth 10 +00:00:00 227MB | bssrdf samples 2 +00:00:00 227MB | light +00:00:00 227MB | transparency depth 10 +00:00:00 227MB | initializing 15 nodes +00:00:00 227MB | creating root object list ... +00:00:00 227MB | node initialization done in 0:00.00 (multithreaded) +00:00:00 227MB | updating 16 nodes +00:00:00 227MB | /directionalLight1/directionalLightShape1: distant_light using 1 sample, 2 volume samples +00:00:00 228MB | scene bounds: (-3.12011647 -0.300000012 -1.96346307) -> (2.73150778 0.300000012 6.11522675) +00:00:00 228MB | node update done in 0:00.00 (multithreaded) +00:00:00 228MB | [aov] parsing 1 output statements ... +00:00:00 228MB | [aov] registered driver: "mydriver" (driver_tiff) +00:00:00 228MB | [aov] * "RGBA" of type RGBA filtered by "myfilter" (gaussian_filter) +00:00:00 228MB | [aov] done preparing 2 AOVs for 1 output to 1 driver (0 deep AOVs) +00:00:00 230MB | starting 64 bucket workers of size 16x16 ... +00:00:00 234MB | [accel] curves bvh4 done - 0:00.00 (wall time) - 60 prims, 1 key +00:00:00 236MB | [accel] list_aggregate bvh4 done - 0:00.00 (wall time) - 2 prims, 1 key +00:00:00 243MB | 1% done - 10 rays/pixel +00:00:00 246MB | [accel] curves bvh4 done - 0:00.00 (wall time) - 45 prims, 1 key +00:00:00 283MB | 5% done - 14 rays/pixel +00:00:00 289MB | 10% done - 10 rays/pixel +00:00:00 291MB | 15% done - 17 rays/pixel +00:00:00 291MB | 20% done - 8 rays/pixel +00:00:00 297MB | 25% done - 15 rays/pixel +00:00:00 300MB | 30% done - 19 rays/pixel +00:00:00 301MB | 35% done - 12 rays/pixel +00:00:00 302MB | 40% done - 12 rays/pixel +00:00:00 303MB | 45% done - 10 rays/pixel +00:00:00 303MB | 50% done - 11 rays/pixel +00:00:00 304MB | 55% done - 10 rays/pixel +00:00:00 305MB | 60% done - 7 rays/pixel +00:00:00 305MB | 65% done - 20 rays/pixel +00:00:00 306MB | 70% done - 16 rays/pixel +00:00:00 306MB | 75% done - 12 rays/pixel +00:00:00 306MB | 80% done - 14 rays/pixel +00:00:00 307MB | 85% done - 20 rays/pixel +00:00:00 307MB | 90% done - 15 rays/pixel +00:00:00 307MB | 95% done - 18 rays/pixel +00:00:00 307MB | 100% done - 9 rays/pixel +00:00:00 307MB | render done in 0:00.045 +00:00:00 307MB | [driver_tiff] writing file `testrender.tif' +00:00:00 309MB | render done +00:00:00 309MB | +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | scene creation time 0:00.39 machine utilization (0.80%) +00:00:00 309MB | unaccounted 0:00.39 +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | frame time 0:00.11 machine utilization (29.01%) +00:00:00 309MB | rendering 0:00.04 +00:00:00 309MB | pixel rendering 0:00.04 +00:00:00 309MB | unaccounted 0:00.06 +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | top session self-times by category +00:00:00 309MB | surface closure 0:00.01 (30.22%) +00:00:00 309MB | /mtl/curveShape2_hairShader/curveShape2_hairShader 0:00.01 (28.03%) +00:00:00 309MB | /mtl/aiStandard2/aiStandard2 0:00.00 ( 2.19%) +00:00:00 309MB | TraceCameraRay 0:00.00 (11.50%) +00:00:00 309MB | RenderBucket 0:00.00 (10.23%) +00:00:00 309MB | sampleNextBatch 0:00.00 ( 7.23%) +00:00:00 309MB | accumulateBucketSamples 0:00.00 ( 6.15%) +00:00:00 309MB | BVH::intersect 0:00.00 ( 5.70%) +00:00:00 309MB | root 0:00.00 ( 3.51%) +00:00:00 309MB | /curve2/curveShape2 0:00.00 ( 2.19%) +00:00:00 309MB | Plugin loader 0:00.00 ( 4.20%) +00:00:00 309MB | ADP 0:00.00 ( 4.10%) +00:00:00 309MB | curves::intersect 0:00.00 ( 3.72%) +00:00:00 309MB | /curve2/curveShape2 0:00.00 ( 2.04%) +00:00:00 309MB | /curve1/curveShape1 0:00.00 ( 1.68%) +00:00:00 309MB | AiMalloc 0:00.00 ( 3.51%) +00:00:00 309MB | AiSceneLoad 0:00.00 ( 3.19%) +00:00:00 309MB | AiLightsPrepare 0:00.00 ( 2.70%) +00:00:00 309MB | /curve2/curveShape2 0:00.00 ( 2.04%) +00:00:00 309MB | /curve1/curveShape1 0:00.00 ( 0.66%) +00:00:00 309MB | thread blocked 0:00.00 ( 2.64%) +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | top session self-times by node +00:00:00 309MB | standard_hair:/mtl/curveShape2_hairShader/curveShape2_hairShader 0:00.01 (29.56%) +00:00:00 309MB | surface closure 0:00.01 (28.03%) +00:00:00 309MB | AiShaderEvalParamFuncFlt 0:00.00 ( 1.02%) +00:00:00 309MB | TraceCameraRay 0:00.00 (11.50%) +00:00:00 309MB | RenderBucket 0:00.00 (10.23%) +00:00:00 309MB | sampleNextBatch 0:00.00 ( 7.23%) +00:00:00 309MB | curves:/curve2/curveShape2 0:00.00 ( 6.26%) +00:00:00 309MB | BVH::intersect 0:00.00 ( 2.19%) +00:00:00 309MB | AiLightsPrepare 0:00.00 ( 2.04%) +00:00:00 309MB | curves::intersect 0:00.00 ( 2.04%) +00:00:00 309MB | accumulateBucketSamples 0:00.00 ( 6.15%) +00:00:00 309MB | Plugin loader 0:00.00 ( 4.20%) +00:00:00 309MB | ADP 0:00.00 ( 4.10%) +00:00:00 309MB | list_aggregate:root (BVH::intersect) 0:00.00 ( 3.51%) +00:00:00 309MB | AiMalloc 0:00.00 ( 3.51%) +00:00:00 309MB | AiSceneLoad 0:00.00 ( 3.19%) +00:00:00 309MB | standard:/mtl/aiStandard2/aiStandard2 0:00.00 ( 2.70%) +00:00:00 309MB | surface closure 0:00.00 ( 2.19%) +00:00:00 309MB | ray traversal+intersection 0:00.00 ( 0.51%) +00:00:00 309MB | thread blocked 0:00.00 ( 2.64%) +00:00:00 309MB | curves:/curve1/curveShape1 0:00.00 ( 2.34%) +00:00:00 309MB | curves::intersect 0:00.00 ( 1.68%) +00:00:00 309MB | AiLightsPrepare 0:00.00 ( 0.66%) +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | peak CPU memory used 309.27MB +00:00:00 309MB | at startup 103.07MB +00:00:00 309MB | plugins 0.06MB +00:00:00 309MB | AOV samples 2.91MB +00:00:00 309MB | output buffers 0.33MB +00:00:00 309MB | framebuffers 0.31MB +00:00:00 309MB | node overhead 0.01MB +00:00:00 309MB | message passing 0.13MB +00:00:00 309MB | memory pools 65.02MB +00:00:00 309MB | geometry 0.00MB +00:00:00 309MB | curves 0.00MB +00:00:00 309MB | accel structs 0.03MB +00:00:00 309MB | strings 24.50MB +00:00:00 309MB | profiler 0.02MB +00:00:00 309MB | unaccounted 112.89MB +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | ray counts ( /pixel, /sample) (% total) (avg. hits) (max hits) +00:00:00 309MB | camera 192800 ( 10.04, 1.00) ( 74.08%) ( 0.12) ( 2) +00:00:00 309MB | shadow 22698 ( 1.18, 0.12) ( 8.72%) ( 0.00) ( 1) +00:00:00 309MB | diffuse_reflect 40722 ( 2.12, 0.21) ( 15.65%) ( 0.04) ( 2) +00:00:00 309MB | specular_reflect 4052 ( 0.21, 0.02) ( 1.56%) ( 0.00) ( 1) +00:00:00 309MB | total 260272 ( 13.56, 1.35) (100.00%) ( 0.10) ( 2) +00:00:00 309MB | by ray depth: 0 1 2 +00:00:00 309MB | total 82.5% 17.5% 0.0% +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | shader calls ( /pixel, /sample) (% total) +00:00:00 309MB | primary 39384 ( 2.05, 0.20) (100.00%) +00:00:00 309MB | total 39384 ( 2.05, 0.20) (100.00%) +00:00:00 309MB | by ray depth: 0 1 2 +00:00:00 309MB | total 92.5% 7.5% 0.0% +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | geometry (% hit ) (instances) ( init mem, final mem) +00:00:00 309MB | lists 1 (100.0%) ( 0) ( 0.00, 0.00) +00:00:00 309MB | curves 2 (100.0%) ( 0) ( 0.00, 0.00) +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | geometric elements ( min) ( avg.) ( max) +00:00:00 309MB | curves 2 ( 1) ( 1.0) ( 1) +00:00:00 309MB | curve segments 105 ( 45) ( 52.5) ( 60) +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | acceleration structures: (% total) +00:00:00 309MB | bvh 3 (100.00%) +00:00:00 309MB | total 3 (100.00%) +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | number of warnings, warning type: +00:00:00 309MB | 1: node entry "%s" is deprecated, and may be removed in the future +00:00:00 309MB | 1: rendering with watermarks because of failed authorization: +00:00:00 309MB | ----------------------------------------------------------------------------------- +00:00:00 309MB | +00:00:00 309MB | releasing resources +00:00:00 208MB | +00:00:00 208MB | releasing resources +00:00:00 195MB | unloading 3 plugins +00:00:00 195MB | closing usd_proc.dll ... +00:00:00 195MB | closing alembic_proc.dll ... +00:00:00 195MB | closing cryptomatte.dll ... +00:00:00 195MB | unloading plugins done +00:00:00 195MB | Arnold shutdown diff --git a/testsuite/test_0072/ref/reference.tif b/testsuite/test_0072/ref/reference.tif index 1bdf71628f8bd1139c5024e37ebbcab075ce2d10..a0cdb6e3fb0e1b3f7e4c47a2189ca3538b8e4d4f 100644 GIT binary patch delta 6841 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 delta 6826 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 diff --git a/testsuite/test_0086/ref/reference.log b/testsuite/test_0086/ref/reference.log index 4aecd7a977..14938359fe 100644 --- a/testsuite/test_0086/ref/reference.log +++ b/testsuite/test_0086/ref/reference.log @@ -1,32 +1,70 @@ -00:00:00 89MB | log started Thu Sep 21 10:29:19 2023 -00:00:00 89MB | Arnold 7.2.4.0 [90402f98] windows x86_64 clang-15.0.7 oiio-2.4.1 osl-1.12.9 vdb-7.1.1 adlsdk-7.4.2.47 clmhub-3.1.1.43 rlm-14.2.5 optix-6.6.0 2023/09/21 00:15:25 -00:00:00 89MB | running on REMS4QL1726, pid=10380 -00:00:00 89MB | 2 x Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz (32 cores, 64 logical) with 65154MB -00:00:00 101MB | NVIDIA driver version 522.06 (Optix 60804) -00:00:00 101MB | GPU 0: Quadro RTX 4000 @ 1545MHz (compute 7.5) with 8191MB (6237MB available) (NVLink:0) -00:00:00 101MB | Windows 10 (version 10.0, build 19045) -00:00:00 101MB | soft limit for open files is set at 2048 -00:00:00 101MB | -00:00:00 112MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio -00:00:00 112MB | loading plugins from C:\arnold\arnold-usd\build\windows_x86_64\msvc_opt\usd-0.22.11_arnold-7.2.4.0\plugins\procedural ... -00:00:00 120MB | usd_proc.dll: usd uses Arnold 7.2.4.0 -00:00:00 120MB | loaded 1 plugins from 1 lib(s) in 0:00.08 -00:00:00 120MB | loading plugins from C:\arnold\sdk\latest\bin\..\plugins ... -00:00:00 120MB | alembic_proc.dll: alembic uses Arnold 7.2.4.0 -00:00:00 121MB | cryptomatte.dll: cryptomatte uses Arnold 7.2.4.0 -00:00:00 121MB | cryptomatte.dll: cryptomatte_filter uses Arnold 7.2.4.0 -00:00:00 121MB | cryptomatte.dll: cryptomatte_manifest_driver uses Arnold 7.2.4.0 -00:00:00 121MB | skipping already loaded plugin: C:\arnold\sdk\latest\bin\..\plugins\usd_proc.dll ... -00:00:00 121MB | loaded 4 plugins from 2 lib(s) in 0:00.00 -00:00:00 121MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio -00:00:00 125MB | [kick] command: C:\arnold\sdk\latest\bin\kick test_resaved.usda -dw -r 160 120 -sm lambert -bs 16 -o testrender.tif -set driver_tiff.dither false -nocrashpopup -dp -v 6 -00:00:00 125MB | loading plugins from . ... -00:00:00 125MB | no plugins loaded -00:00:00 125MB | ARNOLD_ADP_DISABLE envar passed in -- ADP is disabled for this session -Coding Error (secondary thread): in _FailGet at line 567 of S:\gocd\pipelines\kook\kook\usd\build\usd-22.11_windows-x86_64_static_vc-14.2_cxx14\pxr\base\vt\value.cpp -- Attempted to get value of type 'string' from VtValue holding 'GfVec4f' -00:00:00 171MB | [kick] applying 2 attr value overrides -00:00:00 171MB | -00:00:00 171MB | authorizing with license manager: network ... +00:00:00 91MB | log started Fri Nov 24 10:16:45 2023 +00:00:00 91MB | Arnold 7.2.5.0 [6144cbef] windows x86_64 clang-15.0.7 oiio-2.4.1 osl-1.13.0 vdb-7.1.1 adlsdk-7.4.2.47 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2023/11/23 12:34:10 +00:00:00 91MB | running on REMS4QL1726, pid=26412 +00:00:00 91MB | 2 x Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz (32 cores, 64 logical) with 65154MB +00:00:00 103MB | NVIDIA driver version 535.98 (Optix 0) +00:00:00 103MB | GPU 0: Quadro RTX 4000 @ 1545MHz (compute 7.5) with 8191MB (6777MB available) (NVLink:0) +00:00:00 103MB | Windows 10 (version 10.0, build 19045) +00:00:00 103MB | soft limit for open files is set at 2048 +00:00:00 103MB | +00:00:00 114MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 114MB | loading plugins from C:\arnold\arnold-usd\build\windows_x86_64\msvc_opt\usd-0.22.11_arnold-7.2.5.0\plugins\procedural ... +00:00:00 121MB | usd_proc.dll: usd uses Arnold 7.2.5.0 +00:00:00 122MB | loaded 1 plugins from 1 lib(s) in 0:00.11 +00:00:00 122MB | loading plugins from C:\arnold\sdk\latest\bin\..\plugins ... +00:00:00 122MB | alembic_proc.dll: alembic uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte_filter uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte_manifest_driver uses Arnold 7.2.5.0 +00:00:00 122MB | skipping already loaded plugin: C:\arnold\sdk\latest\bin\..\plugins\usd_proc.dll ... +00:00:00 122MB | loaded 4 plugins from 2 lib(s) in 0:00.00 +00:00:00 122MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 126MB | [kick] command: C:\arnold\sdk\latest\bin\kick test.ass -resave test_resaved.usda -v 6 +00:00:00 126MB | loading plugins from . ... +00:00:00 126MB | no plugins loaded +00:00:00 126MB | ARNOLD_ADP_DISABLE envar passed in -- ADP is disabled for this session +00:00:00 131MB | [metadata] loading metadata file: test.ass +00:00:00 132MB | [ass] loading test.ass ... +00:00:00 132MB | [ass] read 387458 bytes, 8 nodes in 0:00.00 +00:00:00 171MB | [usd] Saved scene as test_resaved.usda +00:00:00 171MB | +00:00:00 171MB | releasing resources +00:00:00 167MB | +00:00:00 167MB | releasing resources +00:00:00 155MB | unloading 3 plugins +00:00:00 155MB | closing usd_proc.dll ... +00:00:00 155MB | closing alembic_proc.dll ... +00:00:00 155MB | closing cryptomatte.dll ... +00:00:00 155MB | unloading plugins done +00:00:00 155MB | Arnold shutdown +00:00:00 90MB | log started Fri Nov 24 10:16:46 2023 +00:00:00 91MB | Arnold 7.2.5.0 [6144cbef] windows x86_64 clang-15.0.7 oiio-2.4.1 osl-1.13.0 vdb-7.1.1 adlsdk-7.4.2.47 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2023/11/23 12:34:10 +00:00:00 91MB | running on REMS4QL1726, pid=17180 +00:00:00 91MB | 2 x Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz (32 cores, 64 logical) with 65154MB +00:00:00 103MB | NVIDIA driver version 535.98 (Optix 0) +00:00:00 103MB | GPU 0: Quadro RTX 4000 @ 1545MHz (compute 7.5) with 8191MB (6777MB available) (NVLink:0) +00:00:00 103MB | Windows 10 (version 10.0, build 19045) +00:00:00 103MB | soft limit for open files is set at 2048 +00:00:00 103MB | +00:00:00 114MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 114MB | loading plugins from C:\arnold\arnold-usd\build\windows_x86_64\msvc_opt\usd-0.22.11_arnold-7.2.5.0\plugins\procedural ... +00:00:00 122MB | usd_proc.dll: usd uses Arnold 7.2.5.0 +00:00:00 122MB | loaded 1 plugins from 1 lib(s) in 0:00.11 +00:00:00 122MB | loading plugins from C:\arnold\sdk\latest\bin\..\plugins ... +00:00:00 122MB | alembic_proc.dll: alembic uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte_filter uses Arnold 7.2.5.0 +00:00:00 122MB | cryptomatte.dll: cryptomatte_manifest_driver uses Arnold 7.2.5.0 +00:00:00 122MB | skipping already loaded plugin: C:\arnold\sdk\latest\bin\..\plugins\usd_proc.dll ... +00:00:00 122MB | loaded 4 plugins from 2 lib(s) in 0:00.00 +00:00:00 123MB | [color_manager_ocio] default ocio.config found in C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio +00:00:00 127MB | [kick] command: C:\arnold\sdk\latest\bin\kick test_resaved.usda -dw -r 160 120 -sm lambert -bs 16 -o testrender.tif -set driver_tiff.dither false -nocrashpopup -dp -v 6 +00:00:00 127MB | loading plugins from . ... +00:00:00 127MB | no plugins loaded +00:00:00 127MB | ARNOLD_ADP_DISABLE envar passed in -- ADP is disabled for this session +00:00:00 170MB | [kick] applying 2 attr value overrides +00:00:00 170MB | +00:00:00 170MB | authorizing with license manager: network ... 00:00:00 171MB WARNING | rendering with watermarks because of failed authorization: 00:00:00 171MB | [clm.v1] license server was not set (51) 00:00:00 171MB | environment variables: @@ -37,156 +75,160 @@ Coding Error (secondary thread): in _FailGet at line 567 of S:\gocd\pipelines\ko 00:00:00 171MB | [clm] ADSKFLEX_LICENSE_FILE = (not set) 00:00:00 171MB | [clm] LM_LICENSE_FILE = (not set) 00:00:00 171MB | -00:00:00 172MB | [color_manager] using color manager of type "color_manager_ocio" +00:00:00 171MB | [color_manager] using color manager of type "color_manager_ocio" 00:00:00 172MB | [color_manager_ocio] using config file C:\arnold\sdk\latest\bin\../ocio/configs/arnold/config.ocio -00:00:00 173MB | [color_manager] rendering color space is "ACEScg" -00:00:00 228MB | -00:00:00 228MB | there are 0 lights and 3 objects: -00:00:00 228MB | 1 persp_camera -00:00:00 228MB | 4 utility -00:00:00 228MB | 1 driver_tiff -00:00:00 228MB | 3 box_filter -00:00:00 228MB | 1 gaussian_filter -00:00:00 228MB | 2 curves -00:00:00 228MB | 2 list_aggregate -00:00:00 228MB | 2 color_manager_ocio -00:00:00 228MB | -00:00:00 228MB | rendering image at 160 x 120, 3 AA samples -00:00:00 228MB | AA samples max -00:00:00 228MB | AA sample clamp -00:00:00 228MB | diffuse samples 2 / depth 1 -00:00:00 228MB | specular samples 2 / depth 1 -00:00:00 228MB | transmission samples 2 / depth 8 -00:00:00 228MB | volume indirect -00:00:00 228MB | total depth 10 -00:00:00 228MB | bssrdf samples 2 -00:00:00 228MB | light -00:00:00 228MB | transparency depth 10 -00:00:00 228MB | initializing 13 nodes +00:00:00 172MB | [color_manager] rendering color space is "ACEScg" +00:00:00 227MB | +00:00:00 227MB | there are 0 lights and 3 objects: +00:00:00 227MB | 1 persp_camera +00:00:00 227MB | 4 utility +00:00:00 227MB | 1 driver_tiff +00:00:00 227MB | 3 box_filter +00:00:00 227MB | 1 gaussian_filter +00:00:00 227MB | 2 curves +00:00:00 227MB | 2 list_aggregate +00:00:00 227MB | 2 color_manager_ocio +00:00:00 227MB | +00:00:00 227MB | rendering image at 160 x 120, 3 AA samples +00:00:00 227MB | AA samples max +00:00:00 227MB | AA sample clamp +00:00:00 227MB | diffuse samples 2 / depth 1 +00:00:00 227MB | specular samples 2 / depth 1 +00:00:00 227MB | transmission samples 2 / depth 8 +00:00:00 227MB | volume indirect +00:00:00 227MB | total depth 10 +00:00:00 227MB | bssrdf samples 2 +00:00:00 227MB | light +00:00:00 227MB | transparency depth 10 +00:00:00 227MB | initializing 13 nodes 00:00:00 229MB | creating root object list ... 00:00:00 229MB | node initialization done in 0:00.00 (multithreaded) 00:00:00 229MB | updating 14 nodes 00:00:00 229MB | scene bounds: (-48.8762207 -7.71772814 -12.0571108) -> (5.90755939 31.2313271 18.1581707) 00:00:00 229MB | node update done in 0:00.00 (multithreaded) -00:00:00 229MB | [aov] parsing 1 output statements ... -00:00:00 229MB | [aov] registered driver: "mydriver" (driver_tiff) -00:00:00 229MB | [aov] * "RGBA" of type RGBA filtered by "myfilter" (gaussian_filter) -00:00:00 229MB | [aov] done preparing 2 AOVs for 1 output to 1 driver (0 deep AOVs) -00:00:00 231MB | starting 64 bucket workers of size 16x16 ... -00:00:00 237MB | [accel] list_aggregate bvh4_motion done - 0:00.00 - 2 prims, 2 keys -00:00:00 268MB | [accel] curves bvh4_motion done - 0:00.00 - 65 prims, 2 keys -00:00:00 294MB | [accel] curves bvh4_motion done - 0:00.01 - 7990 prims, 2 keys -00:00:00 295MB | 0% done - 78 rays/pixel -00:00:00 298MB | 5% done - 38 rays/pixel -00:00:00 300MB | 10% done - 27 rays/pixel -00:00:00 300MB | 15% done - 24 rays/pixel -00:00:00 301MB | 20% done - 16 rays/pixel -00:00:00 301MB | 25% done - 14 rays/pixel -00:00:00 301MB | 30% done - 14 rays/pixel -00:00:00 301MB | 35% done - 6 rays/pixel -00:00:00 302MB | 40% done - 8 rays/pixel -00:00:00 302MB | 45% done - 5 rays/pixel -00:00:00 302MB | 50% done - 7 rays/pixel -00:00:00 302MB | 55% done - 9 rays/pixel -00:00:00 303MB | 60% done - 4 rays/pixel -00:00:00 303MB | 65% done - 5 rays/pixel -00:00:00 303MB | 70% done - 2 rays/pixel -00:00:00 303MB | 75% done - 2 rays/pixel -00:00:00 303MB | 80% done - 2 rays/pixel -00:00:00 304MB | 85% done - 2 rays/pixel -00:00:00 304MB | 90% done - 0 rays/pixel -00:00:00 304MB | 95% done - 2 rays/pixel -00:00:00 304MB | 100% done - 1 rays/pixel -00:00:00 304MB | render done in 0:00.047 -00:00:00 304MB | [driver_tiff] writing file `testrender.tif' -00:00:00 305MB | render done -00:00:00 305MB | -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | scene creation time 0:00.39 machine utilization (4.19%) -00:00:00 305MB | unaccounted 0:00.39 -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | frame time 0:00.11 machine utilization (16.61%) -00:00:00 305MB | rendering 0:00.04 -00:00:00 305MB | pixel rendering 0:00.04 -00:00:00 305MB | unaccounted 0:00.05 -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | top session self-times by category -00:00:00 305MB | RenderBucket 0:00.01 (34.20%) -00:00:00 305MB | thread blocked 0:00.00 (19.97%) -00:00:00 305MB | AiMalloc 0:00.00 (12.05%) -00:00:00 305MB | sampleNextBatch 0:00.00 ( 6.29%) -00:00:00 305MB | accumulateBucketSamples 0:00.00 ( 5.21%) -00:00:00 305MB | AiSceneLoad 0:00.00 ( 4.62%) -00:00:00 305MB | ADP 0:00.00 ( 4.58%) -00:00:00 305MB | TraceCameraRay 0:00.00 ( 3.15%) -00:00:00 305MB | Plugin loader 0:00.00 ( 3.11%) -00:00:00 305MB | BVH_motion::build 0:00.00 ( 2.09%) -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | top session self-times by node -00:00:00 305MB | RenderBucket 0:00.01 (34.20%) -00:00:00 305MB | curves:/aiCurveCollector1/aiCurveCollectorShape1 0:00.00 (19.97%) -00:00:00 305MB | thread blocked 0:00.00 (17.35%) -00:00:00 305MB | BVH_motion::build 0:00.00 ( 1.05%) -00:00:00 305MB | BVH_motion::intersect 0:00.00 ( 1.05%) -00:00:00 305MB | AiMsgDebug 0:00.00 ( 0.52%) -00:00:00 305MB | AiMalloc 0:00.00 (12.05%) -00:00:00 305MB | sampleNextBatch 0:00.00 ( 6.29%) -00:00:00 305MB | accumulateBucketSamples 0:00.00 ( 5.21%) -00:00:00 305MB | AiSceneLoad 0:00.00 ( 4.62%) -00:00:00 305MB | ADP 0:00.00 ( 4.58%) -00:00:00 305MB | TraceCameraRay 0:00.00 ( 3.15%) -00:00:00 305MB | Plugin loader 0:00.00 ( 3.11%) -00:00:00 305MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | peak CPU memory used 305.94MB -00:00:00 305MB | at startup 101.99MB -00:00:00 305MB | plugins 0.07MB -00:00:00 305MB | AOV samples 2.96MB -00:00:00 305MB | output buffers 0.33MB -00:00:00 305MB | framebuffers 0.31MB -00:00:00 305MB | node overhead 0.00MB -00:00:00 305MB | message passing 0.13MB -00:00:00 305MB | memory pools 37.01MB -00:00:00 305MB | geometry 0.30MB -00:00:00 305MB | curves 0.30MB -00:00:00 305MB | accel structs 0.75MB -00:00:00 305MB | strings 24.50MB -00:00:00 305MB | profiler 0.01MB -00:00:00 305MB | unaccounted 137.59MB -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | ray counts ( /pixel, /sample) (% total) (avg. hits) (max hits) -00:00:00 306MB | camera 192800 ( 10.04, 1.00) (100.00%) ( 0.04) ( 1) -00:00:00 306MB | total 192800 ( 10.04, 1.00) (100.00%) ( 0.04) ( 1) -00:00:00 306MB | by ray depth: 0 -00:00:00 306MB | total 100.0% -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | shader calls ( /pixel, /sample) (% total) -00:00:00 306MB | primary 7893 ( 0.41, 0.04) (100.00%) -00:00:00 306MB | total 7893 ( 0.41, 0.04) (100.00%) -00:00:00 306MB | by ray depth: 0 -00:00:00 306MB | total 100.0% -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | geometry (% hit ) (instances) ( init mem, final mem) -00:00:00 306MB | lists 1 (100.0%) ( 0) ( 0.00, 0.00) -00:00:00 306MB | curves 2 (100.0%) ( 0) ( 0.30, 0.30) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | geometric elements ( min) ( avg.) ( max) -00:00:00 306MB | curves 1599 ( 1) ( 799.5) ( 1598) -00:00:00 306MB | curve segments 8055 ( 65) ( 4027.5) ( 7990) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | acceleration structures: (% total) -00:00:00 306MB | bvh motion (2 keys) 3 (100.00%) -00:00:00 306MB | total 3 (100.00%) -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 306MB | number of warnings, warning type: -00:00:00 306MB | 1: rendering with watermarks because of failed authorization: -00:00:00 306MB | ----------------------------------------------------------------------------------- -00:00:00 305MB | -00:00:00 305MB | releasing resources -00:00:00 207MB | -00:00:00 207MB | releasing resources -00:00:00 195MB | unloading 3 plugins -00:00:00 195MB | closing usd_proc.dll ... -00:00:00 195MB | closing alembic_proc.dll ... -00:00:00 195MB | closing cryptomatte.dll ... -00:00:00 195MB | unloading plugins done -00:00:00 195MB | Arnold shutdown +00:00:00 230MB | [aov] parsing 1 output statements ... +00:00:00 230MB | [aov] registered driver: "mydriver" (driver_tiff) +00:00:00 230MB | [aov] * "RGBA" of type RGBA filtered by "myfilter" (gaussian_filter) +00:00:00 230MB | [aov] done preparing 2 AOVs for 1 output to 1 driver (0 deep AOVs) +00:00:00 234MB | starting 64 bucket workers of size 16x16 ... +00:00:00 240MB | [accel] list_aggregate bvh4_motion done - 0:00.00 - 2 prims, 2 keys +00:00:00 267MB | [accel] curves bvh4_motion done - 0:00.00 - 65 prims, 2 keys +00:00:00 274MB | 1% done - 10 rays/pixel +00:00:00 277MB | [accel] curves bvh4_motion done - 0:00.01 - 7990 prims, 2 keys +00:00:00 289MB | 5% done - 13 rays/pixel +00:00:00 293MB | 10% done - 14 rays/pixel +00:00:00 297MB | 15% done - 13 rays/pixel +00:00:00 297MB | 20% done - 15 rays/pixel +00:00:00 298MB | 25% done - 14 rays/pixel +00:00:00 298MB | 30% done - 5 rays/pixel +00:00:00 298MB | 35% done - 12 rays/pixel +00:00:00 299MB | 40% done - 10 rays/pixel +00:00:00 299MB | 45% done - 8 rays/pixel +00:00:00 299MB | 50% done - 10 rays/pixel +00:00:00 299MB | 55% done - 12 rays/pixel +00:00:00 300MB | 60% done - 12 rays/pixel +00:00:00 300MB | 65% done - 12 rays/pixel +00:00:00 300MB | 70% done - 12 rays/pixel +00:00:00 301MB | 75% done - 8 rays/pixel +00:00:00 301MB | 80% done - 10 rays/pixel +00:00:00 301MB | 85% done - 6 rays/pixel +00:00:00 301MB | 90% done - 7 rays/pixel +00:00:00 301MB | 95% done - 3 rays/pixel +00:00:00 301MB | 100% done - 3 rays/pixel +00:00:00 301MB | render done in 0:00.034 +00:00:00 301MB | [driver_tiff] writing file `testrender.tif' +00:00:00 303MB | render done +00:00:00 303MB | +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | scene creation time 0:00.41 machine utilization (0.95%) +00:00:00 303MB | unaccounted 0:00.40 +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | frame time 0:00.10 machine utilization (16.43%) +00:00:00 303MB | rendering 0:00.03 +00:00:00 303MB | pixel rendering 0:00.02 +00:00:00 303MB | unaccounted 0:00.05 +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | top session self-times by category +00:00:00 303MB | sampleNextBatch 0:00.00 (19.00%) +00:00:00 303MB | BVH_motion::build 0:00.00 (15.98%) +00:00:00 303MB | thread blocked 0:00.00 (11.92%) +00:00:00 303MB | accumulateBucketSamples 0:00.00 (11.87%) +00:00:00 303MB | RenderBucket 0:00.00 (10.39%) +00:00:00 303MB | TraceCameraRay 0:00.00 ( 5.54%) +00:00:00 303MB | ADP 0:00.00 ( 5.23%) +00:00:00 303MB | AiSceneLoad 0:00.00 ( 4.64%) +00:00:00 303MB | Plugin loader 0:00.00 ( 4.61%) +00:00:00 303MB | BVH_motion::intersect 0:00.00 ( 3.96%) +00:00:00 303MB | root 0:00.00 ( 2.37%) +00:00:00 303MB | /simple_curve:aiCurveCollector1/simple_curve:aiCurveCollectorShape1 0:00.00 ( 0.79%) +00:00:00 303MB | /aiCurveCollector1/aiCurveCollectorShape1 0:00.00 ( 0.79%) +00:00:00 303MB | ray traversal+intersection 0:00.00 ( 3.17%) +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | top session self-times by node +00:00:00 303MB | curves:/aiCurveCollector1/aiCurveCollectorShape1 0:00.01 (26.17%) +00:00:00 303MB | BVH_motion::build 0:00.00 (15.04%) +00:00:00 303MB | thread blocked 0:00.00 (10.34%) +00:00:00 303MB | BVH_motion::intersect 0:00.00 ( 0.79%) +00:00:00 303MB | sampleNextBatch 0:00.00 (19.00%) +00:00:00 303MB | accumulateBucketSamples 0:00.00 (11.87%) +00:00:00 303MB | RenderBucket 0:00.00 (10.39%) +00:00:00 303MB | TraceCameraRay 0:00.00 ( 5.54%) +00:00:00 303MB | ADP 0:00.00 ( 5.23%) +00:00:00 303MB | AiSceneLoad 0:00.00 ( 4.64%) +00:00:00 303MB | Plugin loader 0:00.00 ( 4.61%) +00:00:00 303MB | ray traversal+intersection 0:00.00 ( 3.17%) +00:00:00 303MB | list_aggregate:root (BVH_motion::intersect) 0:00.00 ( 2.37%) +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | peak CPU memory used 303.21MB +00:00:00 303MB | at startup 103.46MB +00:00:00 303MB | plugins 0.07MB +00:00:00 303MB | AOV samples 3.04MB +00:00:00 303MB | output buffers 0.33MB +00:00:00 303MB | framebuffers 0.31MB +00:00:00 303MB | node overhead 0.00MB +00:00:00 303MB | message passing 0.13MB +00:00:00 303MB | memory pools 37.01MB +00:00:00 303MB | geometry 0.29MB +00:00:00 303MB | curves 0.29MB +00:00:00 303MB | accel structs 0.75MB +00:00:00 303MB | strings 24.50MB +00:00:00 303MB | profiler 0.01MB +00:00:00 303MB | unaccounted 133.30MB +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | ray counts ( /pixel, /sample) (% total) (avg. hits) (max hits) +00:00:00 303MB | camera 192800 ( 10.04, 1.00) (100.00%) ( 0.04) ( 1) +00:00:00 303MB | total 192800 ( 10.04, 1.00) (100.00%) ( 0.04) ( 1) +00:00:00 303MB | by ray depth: 0 +00:00:00 303MB | total 100.0% +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | shader calls ( /pixel, /sample) (% total) +00:00:00 303MB | primary 7893 ( 0.41, 0.04) (100.00%) +00:00:00 303MB | total 7893 ( 0.41, 0.04) (100.00%) +00:00:00 303MB | by ray depth: 0 +00:00:00 303MB | total 100.0% +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | geometry (% hit ) (instances) ( init mem, final mem) +00:00:00 303MB | lists 1 (100.0%) ( 0) ( 0.00, 0.00) +00:00:00 303MB | curves 2 (100.0%) ( 0) ( 0.29, 0.29) +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | geometric elements ( min) ( avg.) ( max) +00:00:00 303MB | curves 1599 ( 1) ( 799.5) ( 1598) +00:00:00 303MB | curve segments 8055 ( 65) ( 4027.5) ( 7990) +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | acceleration structures: (% total) +00:00:00 303MB | bvh motion (2 keys) 3 (100.00%) +00:00:00 303MB | total 3 (100.00%) +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | number of warnings, warning type: +00:00:00 303MB | 1: rendering with watermarks because of failed authorization: +00:00:00 303MB | ----------------------------------------------------------------------------------- +00:00:00 303MB | +00:00:00 303MB | releasing resources +00:00:00 204MB | +00:00:00 204MB | releasing resources +00:00:00 192MB | unloading 3 plugins +00:00:00 192MB | closing usd_proc.dll ... +00:00:00 192MB | closing alembic_proc.dll ... +00:00:00 191MB | closing cryptomatte.dll ... +00:00:00 191MB | unloading plugins done +00:00:00 191MB | Arnold shutdown diff --git a/testsuite/test_0086/ref/reference.tif b/testsuite/test_0086/ref/reference.tif index f55f4724bd6019dd8c190b915c1b3d62821a4b2e..978d68a5e53d867f5c76d66719778a95c1368c45 100644 GIT binary patch delta 12851 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 Gq5lV3)N8B& delta 12799 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 E4`y~-8vp Date: Fri, 8 Dec 2023 11:21:16 +0000 Subject: [PATCH 02/10] Fix the incorrect orientation of the PointInstancer instances in the render delegate (#1777) * add test for #1776 * Initialize the rotation matrix with the quad directly * update changelog for #1776 --- CHANGELOG.md | 1 + libs/render_delegate/instancer.cpp | 2 +- testsuite/test_1776/README | 5 ++ testsuite/test_1776/data/test.usda | 88 ++++++++++++++++++++++++++ testsuite/test_1776/ref/reference.tif | Bin 0 -> 5315 bytes 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 testsuite/test_1776/README create mode 100644 testsuite/test_1776/data/test.usda create mode 100644 testsuite/test_1776/ref/reference.tif diff --git a/CHANGELOG.md b/CHANGELOG.md index 811ff8f644..71a6f8a7db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - [usd#1735](https://github.com/Autodesk/arnold-usd/issues/1735) - Fix usdskel geometry and motion blur interpolation outside the keyframe boundaries. - [usd#1524](https://github.com/Autodesk/arnold-usd/issues/1524) - Fix material binding on instances under a SkelRoot - [usd#1718](https://github.com/Autodesk/arnold-usd/issues/1718) - Support primvars:arnold attributes in Arnold typed schemas +- [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. ## [7.2.4.1] - 2023-10-18 diff --git a/libs/render_delegate/instancer.cpp b/libs/render_delegate/instancer.cpp index 9c2dac03a0..b4ae74e7f2 100644 --- a/libs/render_delegate/instancer.cpp +++ b/libs/render_delegate/instancer.cpp @@ -256,7 +256,7 @@ void HdArnoldInstancer::CalculateInstanceMatrices(HdArnoldRenderDelegate* render if (rotates.size() > static_cast(instanceIndex)) { GfMatrix4d m(1.0); #if PXR_VERSION >= 2008 - m.SetRotate(GfRotation{rotates[instanceIndex]}); + m.SetRotate(rotates[instanceIndex]); #else const auto quat = rotates[instanceIndex]; m.SetRotate(GfRotation(GfQuaternion(quat[0], GfVec3f(quat[1], quat[2], quat[3])))); diff --git a/testsuite/test_1776/README b/testsuite/test_1776/README new file mode 100644 index 0000000000..4ee69a42a4 --- /dev/null +++ b/testsuite/test_1776/README @@ -0,0 +1,5 @@ +Test instance orientations, positions and scales + +author: cyril.pichard@autodesk.com + +PARAMS: {'scene':'test.usda'} diff --git a/testsuite/test_1776/data/test.usda b/testsuite/test_1776/data/test.usda new file mode 100644 index 0000000000..9109b23a9c --- /dev/null +++ b/testsuite/test_1776/data/test.usda @@ -0,0 +1,88 @@ +#usda 1.0 +( + endTimeCode = 1 + framesPerSecond = 24 + metersPerUnit = 1 + startTimeCode = 1 + timeCodesPerSecond = 24 + upAxis = "Y" +) + +def PointInstancer "point_instancer" ( + kind = "group" +) +{ + float3[] extent.timeSamples = { + 1: [(-240.63618, -10, -0.96745825), (-180.62123, 74.7527, 94.624466)], + } + int64[] invisibleIds = [] + quath[] orientations = [(1, 0, 0.300049, 0)] + point3f[] positions = [(2, -5, -3)] + matrix3d[] primvars:transform ( + interpolation = "varying" + ) + matrix3d[] primvars:transform.timeSamples = { + 1: [( (0.5, 0, 0.5), (0, 1, 0), (0.5, 0, 0.5) )], + } + int[] protoIndices = [0] + rel prototypes = + float3[] scales = [(0.8, 1.1, 0.9)] + + def Scope "Prototypes" ( + kind = "group" + ) + { + def Xform "ASSET" + { + matrix4d xformOp:transform:xform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform:xform"] + + def Mesh "mesh_0" + { + float3[] extent = [(-2.003641, -2.4241421, -3.0486922), (1.5529331, 1.3240513, 1)] + int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 32, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 32, 1, 1, 32, 2, 2, 32, 3, 3, 32, 4, 4, 32, 5, 5, 32, 6, 6, 32, 7, 7, 32, 8, 8, 32, 9, 9, 32, 10, 10, 32, 11, 11, 32, 12, 12, 32, 13, 13, 32, 14, 14, 32, 15, 15, 32, 16, 16, 32, 17, 17, 32, 18, 18, 32, 19, 19, 32, 20, 20, 32, 21, 21, 32, 22, 22, 32, 23, 23, 32, 24, 24, 32, 25, 25, 32, 26, 26, 32, 27, 27, 32, 28, 28, 32, 29, 29, 32, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 30, 32, 31, 31, 32, 0, 33, 34, 36, 35, 35, 36, 40, 39, 39, 40, 38, 37, 37, 38, 34, 33, 35, 39, 37, 33, 40, 36, 34, 38, 41, 42, 44, 43, 43, 44, 48, 47, 47, 48, 46, 45, 45, 46, 42, 41, 43, 47, 45, 41, 48, 44, 42, 46] + normal3f[] normals = [(0.087753676, 0.89097667, 0.4454883), (0.087753676, 0.89097667, 0.4454883), (0.087753676, 0.89097667, 0.4454883), (0.25988826, 0.8567369, 0.44548833), (0.25988826, 0.8567369, 0.44548833), (0.25988826, 0.8567369, 0.44548833), (0.4220357, 0.7895733, 0.44548845), (0.4220357, 0.7895733, 0.44548845), (0.4220357, 0.7895733, 0.44548845), (0.56796455, 0.6920667, 0.44548836), (0.56796455, 0.6920667, 0.44548836), (0.56796455, 0.6920667, 0.44548836), (0.6920667, 0.56796455, 0.4454883), (0.6920667, 0.56796455, 0.4454883), (0.6920667, 0.56796455, 0.4454883), (0.7895733, 0.4220357, 0.4454883), (0.7895733, 0.4220357, 0.4454883), (0.7895733, 0.4220357, 0.4454883), (0.8567369, 0.25988826, 0.4454883), (0.8567369, 0.25988826, 0.4454883), (0.8567369, 0.25988826, 0.4454883), (0.89097667, 0.087753676, 0.44548833), (0.89097667, 0.087753676, 0.44548833), (0.89097667, 0.087753676, 0.44548833), (0.89097667, -0.087753676, 0.44548833), (0.89097667, -0.087753676, 0.44548833), (0.89097667, -0.087753676, 0.44548833), (0.8567369, -0.25988826, 0.44548833), (0.8567369, -0.25988826, 0.44548833), (0.8567369, -0.25988826, 0.44548833), (0.7895733, -0.4220357, 0.4454883), (0.7895733, -0.4220357, 0.4454883), (0.7895733, -0.4220357, 0.4454883), (0.6920667, -0.56796455, 0.4454883), (0.6920667, -0.56796455, 0.4454883), (0.6920667, -0.56796455, 0.4454883), (0.56796455, -0.6920667, 0.4454883), (0.56796455, -0.6920667, 0.4454883), (0.56796455, -0.6920667, 0.4454883), (0.4220357, -0.7895733, 0.44548845), (0.4220357, -0.7895733, 0.44548845), (0.4220357, -0.7895733, 0.44548845), (0.25988826, -0.8567369, 0.4454883), (0.25988826, -0.8567369, 0.4454883), (0.25988826, -0.8567369, 0.4454883), (0.087753676, -0.89097667, 0.4454883), (0.087753676, -0.89097667, 0.4454883), (0.087753676, -0.89097667, 0.4454883), (-0.087753676, -0.89097667, 0.4454883), (-0.087753676, -0.89097667, 0.4454883), (-0.087753676, -0.89097667, 0.4454883), (-0.25988826, -0.8567369, 0.44548833), (-0.25988826, -0.8567369, 0.44548833), (-0.25988826, -0.8567369, 0.44548833), (-0.4220357, -0.7895733, 0.44548845), (-0.4220357, -0.7895733, 0.44548845), (-0.4220357, -0.7895733, 0.44548845), (-0.56796455, -0.6920667, 0.44548836), (-0.56796455, -0.6920667, 0.44548836), (-0.56796455, -0.6920667, 0.44548836), (-0.6920667, -0.56796455, 0.4454883), (-0.6920667, -0.56796455, 0.4454883), (-0.6920667, -0.56796455, 0.4454883), (-0.7895733, -0.4220357, 0.4454883), (-0.7895733, -0.4220357, 0.4454883), (-0.7895733, -0.4220357, 0.4454883), (-0.8567369, -0.25988826, 0.4454883), (-0.8567369, -0.25988826, 0.4454883), (-0.8567369, -0.25988826, 0.4454883), (-0.89097667, -0.087753676, 0.44548833), (-0.89097667, -0.087753676, 0.44548833), (-0.89097667, -0.087753676, 0.44548833), (-0.89097667, 0.087753676, 0.44548833), (-0.89097667, 0.087753676, 0.44548833), (-0.89097667, 0.087753676, 0.44548833), (-0.8567369, 0.25988826, 0.44548833), (-0.8567369, 0.25988826, 0.44548833), (-0.8567369, 0.25988826, 0.44548833), (-0.7895733, 0.4220357, 0.4454883), (-0.7895733, 0.4220357, 0.4454883), (-0.7895733, 0.4220357, 0.4454883), (-0.6920667, 0.56796455, 0.4454883), (-0.6920667, 0.56796455, 0.4454883), (-0.6920667, 0.56796455, 0.4454883), (-0.56796455, 0.6920667, 0.4454883), (-0.56796455, 0.6920667, 0.4454883), (-0.56796455, 0.6920667, 0.4454883), (-0.4220357, 0.7895733, 0.44548845), (-0.4220357, 0.7895733, 0.44548845), (-0.4220357, 0.7895733, 0.44548845), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-1.9095209e-8, 0, -1), (-0.25988826, 0.8567369, 0.4454883), (-0.25988826, 0.8567369, 0.4454883), (-0.25988826, 0.8567369, 0.4454883), (-0.087753676, 0.89097667, 0.4454883), (-0.087753676, 0.89097667, 0.4454883), (-0.087753676, 0.89097667, 0.4454883), (-0.28579602, 0.07560519, -0.95530343), (-0.28579602, 0.07560519, -0.95530343), (-0.28579602, 0.07560519, -0.95530343), (-0.28579602, 0.07560519, -0.95530343), (-0.7356793, 0.6215021, 0.269279), (-0.7356793, 0.6215021, 0.269279), (-0.7356793, 0.6215021, 0.269279), (-0.7356793, 0.6215021, 0.269279), (0.28579608, -0.07560521, 0.95530343), (0.28579608, -0.07560521, 0.95530343), (0.28579608, -0.07560521, 0.95530343), (0.28579608, -0.07560521, 0.95530343), (0.7356792, -0.6215021, -0.26927897), (0.7356792, -0.6215021, -0.26927897), (0.7356792, -0.6215021, -0.26927897), (0.7356792, -0.6215021, -0.26927897), (0.61408186, 0.7797559, -0.12200169), (0.61408186, 0.7797559, -0.12200169), (0.61408186, 0.7797559, -0.12200169), (0.61408186, 0.7797559, -0.12200169), (-0.6140819, -0.77975583, 0.12200168), (-0.6140819, -0.77975583, 0.12200168), (-0.6140819, -0.77975583, 0.12200168), (-0.6140819, -0.77975583, 0.12200168), (-0.038560033, -0.7446701, -0.66631794), (-0.038560033, -0.7446701, -0.66631794), (-0.038560033, -0.7446701, -0.66631794), (-0.038560033, -0.7446701, -0.66631794), (-0.716196, 0.48559964, -0.5012546), (-0.716196, 0.48559964, -0.5012546), (-0.716196, 0.48559964, -0.5012546), (-0.716196, 0.48559964, -0.5012546), (0.038560092, 0.7446701, 0.66631794), (0.038560092, 0.7446701, 0.66631794), (0.038560092, 0.7446701, 0.66631794), (0.038560092, 0.7446701, 0.66631794), (0.71619606, -0.48559973, 0.5012547), (0.71619606, -0.48559973, 0.5012547), (0.71619606, -0.48559973, 0.5012547), (0.71619606, -0.48559973, 0.5012547), (0.696833, 0.45788592, -0.5520546), (0.696833, 0.45788592, -0.5520546), (0.696833, 0.45788592, -0.5520546), (0.696833, 0.45788592, -0.5520546), (-0.69683313, -0.45788574, 0.5520546), (-0.69683313, -0.45788574, 0.5520546), (-0.69683313, -0.45788574, 0.5520546), (-0.69683313, -0.45788574, 0.5520546)] ( + interpolation = "faceVarying" + ) + point3f[] points = [(0, 1, -1), (0.19509032, 0.98078525, -1), (0.38268346, 0.9238795, -1), (0.55557024, 0.8314696, -1), (0.70710677, 0.70710677, -1), (0.8314696, 0.55557024, -1), (0.9238795, 0.38268346, -1), (0.98078525, 0.19509032, -1), (1, 0, -1), (0.98078525, -0.19509032, -1), (0.9238795, -0.38268346, -1), (0.8314696, -0.55557024, -1), (0.70710677, -0.70710677, -1), (0.55557024, -0.8314696, -1), (0.38268346, -0.9238795, -1), (0.19509032, -0.98078525, -1), (0, -1, -1), (-0.19509032, -0.98078525, -1), (-0.38268346, -0.9238795, -1), (-0.55557024, -0.8314696, -1), (-0.70710677, -0.70710677, -1), (-0.8314696, -0.55557024, -1), (-0.9238795, -0.38268346, -1), (-0.98078525, -0.19509032, -1), (-1, 0, -1), (-0.98078525, 0.19509032, -1), (-0.9238795, 0.38268346, -1), (-0.8314696, 0.55557024, -1), (-0.70710677, 0.70710677, -1), (-0.55557024, 0.8314696, -1), (-0.38268346, 0.9238795, -1), (-0.19509032, 0.98078525, -1), (0, 0, 1), (0.9813409, 0.08104706, -2.7391376), (-0.24682286, -1.4784644, -2.4951344), (-0.4900178, 1.3240513, -2.20058), (-1.7181815, -0.23546016, -1.9565766), (1.5529331, -0.07016337, -0.8285312), (0.32476935, -1.6296748, -0.5845279), (0.08157441, 1.1728408, -0.28997338), (-1.1465893, -0.3866706, -0.045970082), (0.8224175, -1.5083703, -2.046183), (-0.57124877, -2.4241421, -0.94207394), (-0.60997474, -0.5371709, -3.0486922), (-2.003641, -1.4529426, -1.9445833), (0.8995377, -0.019030184, -0.71354705), (-0.4941285, -0.9348018, 0.39056194), (-0.5328546, 0.9521692, -1.7160565), (-1.9265206, 0.036397517, -0.61194736)] + double3 xformOp:translate = (0, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + custom bool primvars:arnold:smoothing = 0 + } + } + } +} + +def SphereLight "Light" +{ + float inputs:intensity = 2 + float inputs:radius = 10 + float3 xformOp:rotateXYZ.timeSamples = { + 1: (-0, -180, 0), + } + double3 xformOp:translate.timeSamples = { + 1: (-5.376137543640766, -3.7901665562419242, 11.303161481354397), + } + uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:rotateXYZ"] +} + +def "Cameras" +{ + def Camera "camera" + { + float4[] clippingPlanes = [] + float2 clippingRange = (0.001, 1000000) + float focalLength = 18.147562 + float focusDistance = 6.69269 + float fStop = 0 + float horizontalAperture = 20.955 + float horizontalApertureOffset = 0 + token projection = "perspective" + float verticalAperture = 11.695814 + float verticalApertureOffset = 0 + matrix4d xformOp:transform = ( (0.8260121945537635, 0.12253087208816199, 0.5501727363599456, 0), (-0.0028013580966152474, 0.9769657977202224, -0.21337755851472312, 0), (-0.5636452845906637, 0.1747112345277316, 0.8073289154294585, 0), (-3.3020119817570475, -3.6787410353590566, 2.742669349510537, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + } +} + diff --git a/testsuite/test_1776/ref/reference.tif b/testsuite/test_1776/ref/reference.tif new file mode 100644 index 0000000000000000000000000000000000000000..5231e7d6d1126c6cb0488965b65dbf1808063ca4 GIT binary patch literal 5315 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 Mxkx|LyD1#*-wwJ0RsaA1 literal 0 HcmV?d00001 From 06089210944653ca67cfef6b4238c814d1fa4cae Mon Sep 17 00:00:00 2001 From: Sebastien Blaineau-Ortega Date: Wed, 3 Jan 2024 09:04:35 +0100 Subject: [PATCH 03/10] Fix changelog for 7.2.5 release (#1788) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71a6f8a7db..a163b05cef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog -## [Unreleased] +## [7.2.5.0] - 2023-12-13 ### Feature - [usd#612](https://github.com/Autodesk/arnold-usd/issues/612) - Add support for orthographic camera in the hydra render delegate. From 453ade267fd098179eda6a257e4b632add00abea Mon Sep 17 00:00:00 2001 From: Sebastien Blaineau-Ortega Date: Wed, 3 Jan 2024 09:19:11 +0100 Subject: [PATCH 04/10] More changelog fixes --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a163b05cef..92d791edb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Changelog +## Unreleased + +### Bug fixes +- [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. + ## [7.2.5.0] - 2023-12-13 ### Feature @@ -17,7 +22,6 @@ - [usd#1735](https://github.com/Autodesk/arnold-usd/issues/1735) - Fix usdskel geometry and motion blur interpolation outside the keyframe boundaries. - [usd#1524](https://github.com/Autodesk/arnold-usd/issues/1524) - Fix material binding on instances under a SkelRoot - [usd#1718](https://github.com/Autodesk/arnold-usd/issues/1718) - Support primvars:arnold attributes in Arnold typed schemas -- [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. ## [7.2.4.1] - 2023-10-18 From a685d60975d56a20536cecbe375dff842d247d20 Mon Sep 17 00:00:00 2001 From: cpichard Date: Fri, 5 Jan 2024 14:02:44 +0000 Subject: [PATCH 05/10] handle vertex interpolated uvs on bspline curves (#1792) --- CHANGELOG.md | 1 + libs/render_delegate/basis_curves.cpp | 63 +++++++++++-------- testsuite/groups | 2 +- testsuite/test_1769/README | 7 +++ testsuite/test_1769/data/test.usda | 83 ++++++++++++++++++++++++++ testsuite/test_1769/ref/reference.tif | Bin 0 -> 4101 bytes 6 files changed, 129 insertions(+), 27 deletions(-) create mode 100644 testsuite/test_1769/README create mode 100644 testsuite/test_1769/data/test.usda create mode 100644 testsuite/test_1769/ref/reference.tif diff --git a/CHANGELOG.md b/CHANGELOG.md index 92d791edb6..a3f7a4321c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Bug fixes - [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. +- [usd#1769](https://github.com/Autodesk/arnold-usd/issues/1769) - Fix curve uvs when they are vertex interpolated. ## [7.2.5.0] - 2023-12-13 diff --git a/libs/render_delegate/basis_curves.cpp b/libs/render_delegate/basis_curves.cpp index f01120d47c..2fe36ab04e 100644 --- a/libs/render_delegate/basis_curves.cpp +++ b/libs/render_delegate/basis_curves.cpp @@ -53,6 +53,30 @@ namespace { } // namespace + +// Function to convert a GfVec3f array to a GfVec2f array, skipping the last component. +// It could be used more generally later by registering it as a VtValue Cast: +// +// VtValue::RegisterCast(&Vec3fToVec2f); +// +// then simply call the Cast function as follows: +// +// value = VtValue::Cast(desc.value); +// +VtValue Vec3fToVec2f(VtValue const &val) { + if (val.IsHolding()) { + const auto& vec3 = val.UncheckedGet(); + VtVec2fArray vec2(vec3.size()); + std::transform( + vec3.cbegin(), vec3.cend(), vec2.begin(), + [](const GfVec3f& in) -> GfVec2f { + return {in[0], in[1]}; + }); + return VtValue::Take(vec2); + } + return {}; +} + #if PXR_VERSION >= 2102 HdArnoldBasisCurves::HdArnoldBasisCurves(HdArnoldRenderDelegate* delegate, const SdfPath& id) : HdArnoldRprim(str::curves, delegate, id), _interpolation(HdTokens->linear) @@ -187,28 +211,16 @@ void HdArnoldBasisCurves::Sync( } continue; } + + // The curves node only knows the "uvs" parameter, so we have to rename the attribute + TfToken arnoldAttributeName = primvar.first; + auto value = desc.value; if (primvar.first == str::t_uv || primvar.first == str::t_st) { - // This is either a VtVec2fArray or VtVec3fArray (in Solaris). - if (desc.value.IsHolding()) { - const auto& v = desc.value.UncheckedGet(); - AiNodeSetArray( - GetArnoldNode(), str::uvs, AiArrayConvert(v.size(), 1, AI_TYPE_VECTOR2, v.data())); - continue; - } + arnoldAttributeName = str::t_uvs; + // Special case if the uvs attribute has 3 dimensions if (desc.value.IsHolding()) { - const auto& v = desc.value.UncheckedGet(); - auto* arr = AiArrayAllocate(v.size(), 1, AI_TYPE_VECTOR2); - if (!v.empty()) { - std::transform( - v.begin(), v.end(), static_cast(AiArrayMap(arr)), - [](const GfVec3f& in) -> GfVec2f { - return {in[0], in[1]}; - }); - AiArrayUnmap(arr); - } - AiNodeSetArray(GetArnoldNode(), str::uvs, arr); - continue; - } + value = Vec3fToVec2f(desc.value); + } } if (desc.interpolation == HdInterpolationConstant) { @@ -216,21 +228,20 @@ void HdArnoldBasisCurves::Sync( // all the primvars. if (primvar.first != _tokens->basis) { HdArnoldSetConstantPrimvar( - GetArnoldNode(), primvar.first, desc.role, desc.value, &_visibilityFlags, &_sidednessFlags, + GetArnoldNode(), arnoldAttributeName, desc.role, value, &_visibilityFlags, &_sidednessFlags, nullptr, GetRenderDelegate()); } } else if (desc.interpolation == HdInterpolationUniform) { - HdArnoldSetUniformPrimvar(GetArnoldNode(), primvar.first, desc.role, desc.value); + HdArnoldSetUniformPrimvar(GetArnoldNode(), arnoldAttributeName, desc.role, value); } else if (desc.interpolation == HdInterpolationVertex || desc.interpolation == HdInterpolationVarying) { if (primvar.first == HdTokens->points) { - HdArnoldSetPositionFromValue(GetArnoldNode(), str::points, desc.value); + HdArnoldSetPositionFromValue(GetArnoldNode(), str::points, value); } else if (primvar.first == HdTokens->normals) { if (_interpolation == HdTokens->linear) AiMsgWarning("%s : Orientations not supported on linear curves", AiNodeGetName(GetArnoldNode())); else - curvesData.SetOrientationFromValue(GetArnoldNode(), desc.value); + curvesData.SetOrientationFromValue(GetArnoldNode(), value); } else { - auto value = desc.value; // For pinned curves, vertex interpolation primvars shouldn't be remapped if (_interpolation != HdTokens->linear && !(isPinned && desc.interpolation == HdInterpolationVertex)) { @@ -238,7 +249,7 @@ void HdArnoldBasisCurves::Sync( bool, VtUCharArray::value_type, unsigned int, int, float, GfVec2f, GfVec3f, GfVec4f, std::string, TfToken, SdfAssetPath>(value); } - HdArnoldSetVertexPrimvar(GetArnoldNode(), primvar.first, desc.role, value); + HdArnoldSetVertexPrimvar(GetArnoldNode(), arnoldAttributeName, desc.role, value); } } } diff --git a/testsuite/groups b/testsuite/groups index e8e74eb31c..087e3386c7 100755 --- a/testsuite/groups +++ b/testsuite/groups @@ -40,7 +40,7 @@ darwin: # SPECIAL TEST GROUPS # ####################### # Tests that can be run in hydra mode -hydra: test_0000 test_0001 test_0002 test_0003 test_0004 test_0005 test_0006 test_0007 test_0008 test_0009 test_0010 test_0011 test_0012 test_0014 test_0016 test_0017 test_0018 test_0019 test_0020 test_0021 test_0022 test_0023 test_0024 test_0025 test_0026 test_0027 test_0028 test_0029 test_0030 test_0031 test_0032 test_0033 test_0034 test_0038 test_0041 test_0046 test_0048 test_0049 test_0055 test_0112 test_0130 test_0132 test_0133 test_0135 test_0139 test_0140 test_0141 test_0142 test_0143 test_0144 test_0145 test_0148 test_0149 test_0150 test_0151 test_0158 test_0159 test_0161 test_0162 test_0163 test_0164 test_0165 test_0166 test_0168 test_0169 test_0170 test_0171 test_0172 test_0173 test_0174 test_0175 test_0177 test_0178 test_0180 test_0183 test_0184 test_0186 test_0187 test_0188 test_0189 test_0191 test_0194 test_0195 test_0196 test_0197 test_0198 test_0200 test_0201 test_0202 test_0204 test_0205 test_0206 test_0207 test_0215 test_0216 test_0217 test_0219 test_0220 test_0221 test_0222 test_0223 test_0225 test_0228 test_0229 test_0230 test_0299 test_0232 test_0233 test_0234 test_0238 test_0239 test_0240 test_0242 test_0243 test_0244 test_0245 test_0739 test_1181 test_1204 test_1209 test_1225 test_1245 test_1262 test_1294 test_1309 test_1311 test_1313 test_1333 test_1334 test_1416 test_1420 test_1426 test_1427.3 test_1433 test_1435 test_1438 test_1457 test_1486 test_1499 test_1524 test_1525 test_1530 test_1535 test_1538 test_1546 test_1550 test_1567 test_1588 test_1590 test_1593 test_1607 test_1613 test_1625 test_1632 test_1654 test_1657 test_1678 test_1718 test_1726 test_1735 +hydra: test_0000 test_0001 test_0002 test_0003 test_0004 test_0005 test_0006 test_0007 test_0008 test_0009 test_0010 test_0011 test_0012 test_0014 test_0016 test_0017 test_0018 test_0019 test_0020 test_0021 test_0022 test_0023 test_0024 test_0025 test_0026 test_0027 test_0028 test_0029 test_0030 test_0031 test_0032 test_0033 test_0034 test_0038 test_0041 test_0046 test_0048 test_0049 test_0055 test_0112 test_0130 test_0132 test_0133 test_0135 test_0139 test_0140 test_0141 test_0142 test_0143 test_0144 test_0145 test_0148 test_0149 test_0150 test_0151 test_0158 test_0159 test_0161 test_0162 test_0163 test_0164 test_0165 test_0166 test_0168 test_0169 test_0170 test_0171 test_0172 test_0173 test_0174 test_0175 test_0177 test_0178 test_0180 test_0183 test_0184 test_0186 test_0187 test_0188 test_0189 test_0191 test_0194 test_0195 test_0196 test_0197 test_0198 test_0200 test_0201 test_0202 test_0204 test_0205 test_0206 test_0207 test_0215 test_0216 test_0217 test_0219 test_0220 test_0221 test_0222 test_0223 test_0225 test_0228 test_0229 test_0230 test_0299 test_0232 test_0233 test_0234 test_0238 test_0239 test_0240 test_0242 test_0243 test_0244 test_0245 test_0739 test_1181 test_1204 test_1209 test_1225 test_1245 test_1262 test_1294 test_1309 test_1311 test_1313 test_1333 test_1334 test_1416 test_1420 test_1426 test_1427.3 test_1433 test_1435 test_1438 test_1457 test_1486 test_1499 test_1524 test_1525 test_1530 test_1535 test_1538 test_1546 test_1550 test_1567 test_1588 test_1590 test_1593 test_1607 test_1613 test_1625 test_1632 test_1654 test_1657 test_1678 test_1718 test_1726 test_1735 test_1769 # Tests in this group will never be executed (you can use it to temporarily disable some tests and/or groups) ignore: diff --git a/testsuite/test_1769/README b/testsuite/test_1769/README new file mode 100644 index 0000000000..c795276e6c --- /dev/null +++ b/testsuite/test_1769/README @@ -0,0 +1,7 @@ +BSpline curve with vertex interpolated uvs + +author: cyril.pichard@autodesk.com + +see #1769 + +PARAMS: {'scene':'test.usda'} diff --git a/testsuite/test_1769/data/test.usda b/testsuite/test_1769/data/test.usda new file mode 100644 index 0000000000..703483acda --- /dev/null +++ b/testsuite/test_1769/data/test.usda @@ -0,0 +1,83 @@ +#usda 1.0 +( + defaultPrim = "sopimport1" + endTimeCode = 1 + framesPerSecond = 24 + metersPerUnit = 1 + startTimeCode = 1 + timeCodesPerSecond = 24 + upAxis = "Y" +) + +def Xform "sopimport1" ( + kind = "component" +) +{ + def BasisCurves "curve_0" + { + uniform token basis = "bspline" + int[] curveVertexCounts = [9] + float3[] extent = [(0.6149099, 0, 1.2895236), (0.6149099, 0.799, 1.2895236)] + point3f[] points = [(0.6149099, 0, 1.2895236), (0.6149099, 0, 1.2895236), (0.6149099, 0, 1.2895236), (0.6149099, 0.19975, 1.2895236), (0.6149099, 0.3995, 1.2895236), (0.6149099, 0.59925, 1.2895236), (0.6149099, 0.799, 1.2895236), (0.6149099, 0.799, 1.2895236), (0.6149099, 0.799, 1.2895236)] ( + interpolation = "vertex" + ) + texCoord2f[] primvars:st = [(0.6537275, 0.8223809), (0.6537275, 0.8223809), (0.6537275, 0.8223809), (0.6537275, 0.8223809), (0.6537275, 0.8223809), (0.6537275, 0.8223809), (0.6537275, 0.8223809), (0.6537275, 0.8223809), (0.6537275, 0.8223809)] ( + interpolation = "vertex" + ) + int[] primvars:st:indices = None + uniform token type = "cubic" + uniform token wrap = "nonperiodic" + } +} + +def Xform "lights" +{ + def RectLight "arealight1" ( + prepend apiSchemas = ["HoudiniViewportLightAPI", "HoudiniViewportGuideAPI"] + ) + { + float2 houdini:clippingRange = (0.001, 10000) + bool houdini:inviewermenu = 1 + color3f inputs:color = (1, 1, 1) + float inputs:diffuse = 1 + bool inputs:enableColorTemperature = 0 + float inputs:exposure = 0 + float inputs:height = 7.448014 + float inputs:intensity = 0.1 + bool inputs:normalize = 0 + float inputs:specular = 1 + asset inputs:texture:file = @@ + float inputs:width = 8.364269 + rel light:filters = None + matrix4d xformOp:transform = ( (-0.02482371480219213, -0.9990594771725642, 0.03555199368674425, 0), (-1.8395864258974326e-12, -0.035562952619954354, -0.9993674381332178, 0), (0.999691844111684, -0.024808012266881785, 0.0008828045915237619, 0), (1.5704420804977417, 0.43900111317634605, 1.7137359082698838, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + } +} + +def Xform "cameras" +{ + def Camera "camera1" ( + prepend apiSchemas = ["HoudiniCameraPlateAPI", "HoudiniViewportGuideAPI"] + ) + { + float2 clippingRange = (1, 1000000) + float exposure = 0 + float focalLength = 0.45 + float focusDistance = 10.78378 + float fStop = 0 + float horizontalAperture = 0.20955 + float horizontalApertureOffset = 0 + asset houdini:backgroundimage = @@ + asset houdini:foregroundimage = @@ + float houdini:guidescale = 1 + bool houdini:inviewermenu = 1 + token projection = "perspective" + double shutter:close = 0.25 + double shutter:open = -0.25 + float verticalAperture = 0.11787187 + float verticalApertureOffset = 0 + matrix4d xformOp:transform = ( (0.5250461978776859, -0.0007888840709954176, -0.8510733621469471, 0), (-0.036986569010682126, 0.999033644144815, -0.023743874569022813, 0), (0.8502696535846755, 0.04394491470755142, 0.5245096382949908, 0), (3.7343048332866244, 0.550095433860866, 3.2061258043688006, 1) ) + uniform token[] xformOpOrder = ["xformOp:transform"] + } +} + diff --git a/testsuite/test_1769/ref/reference.tif b/testsuite/test_1769/ref/reference.tif new file mode 100644 index 0000000000000000000000000000000000000000..748f601747f79b281235598a8d3a0aad00b4668e GIT binary patch literal 4101 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 Date: Tue, 16 Jan 2024 06:15:41 +0000 Subject: [PATCH 06/10] FIx the error "Cannot load _htoa_pygeo library required for volume rendering in Solaris" (#1811) --- CHANGELOG.md | 1 + libs/render_delegate/volume.cpp | 36 ++++++++++++++------------------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3f7a4321c..e7a82b9f51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Bug fixes - [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. - [usd#1769](https://github.com/Autodesk/arnold-usd/issues/1769) - Fix curve uvs when they are vertex interpolated. +- [usd#1808](https://github.com/Autodesk/arnold-usd/issues/1808) - Fix the error "Cannot load _htoa_pygeo library required for volume rendering in Solaris" in Houdini 19.5+. ## [7.2.5.0] - 2023-12-13 diff --git a/libs/render_delegate/volume.cpp b/libs/render_delegate/volume.cpp index 2581775ce0..a331fafde3 100644 --- a/libs/render_delegate/volume.cpp +++ b/libs/render_delegate/volume.cpp @@ -44,6 +44,7 @@ #include "utils.h" #include +#include #include #include @@ -111,7 +112,7 @@ struct HtoAFnSet { HtoAFnSet() { - /// The symbol is stored in _htoa_pygeo.so in python2.7libs, and + /// The symbol is stored in _htoa_pygeo.so in pythonX.Xlibs, and /// htoa is typically configured using HOUDINI_PATH. We should refine /// this method in the future. /// One of the current limitations is that we don't support HtoA @@ -122,29 +123,22 @@ struct HtoAFnSet { if (path == "&") { return false; } - const auto dsoPath27 = path + ARCH_PATH_SEP + "python2.7libs" + ARCH_PATH_SEP + "_htoa_pygeo" + -//. HTOA sets this library's extension .so on MacOS. + std::string dsoPath; + void* htoaPygeo = nullptr; #ifdef ARCH_OS_WINDOWS - ".dll" + std::string ext = ".dll"; #else - ".so" + std::string ext = ".so"; #endif - ; - const auto dsoPath37 = path + ARCH_PATH_SEP + "python3.7libs" + ARCH_PATH_SEP + "_htoa_pygeo" + -#ifdef ARCH_OS_WINDOWS - ".dll" -#else - ".so" -#endif - ; - std::string dsoPath = dsoPath27; - void* htoaPygeo = ArchLibraryOpen(dsoPath27, ARCH_LIBRARY_NOW); - if (htoaPygeo == nullptr) { - dsoPath = dsoPath37; - htoaPygeo = ArchLibraryOpen(dsoPath37, ARCH_LIBRARY_NOW); - if (htoaPygeo == nullptr) { - return false; - } + // TODO: we need to find a solution that doesn't require to add the future python version of houdini + std::array pythonVersions = {"2.7", "3.7", "3.9", "3.10"}; + for (const auto &pyVer : pythonVersions) { + dsoPath = path + ARCH_PATH_SEP + "python" + pyVer + "libs" + ARCH_PATH_SEP + "_htoa_pygeo" + ext; + htoaPygeo = ArchLibraryOpen(dsoPath, ARCH_LIBRARY_NOW); + if (htoaPygeo) break; + } + if (!htoaPygeo) { + return false; } convertPrimVdbToArnold = reinterpret_cast(GETSYM(htoaPygeo, convertVdbName)); if (convertPrimVdbToArnold == nullptr) { From 61b55a81f77b21b9d2a4d80c892b8908cd73e534 Mon Sep 17 00:00:00 2001 From: cpichard Date: Thu, 18 Jan 2024 09:06:58 +0000 Subject: [PATCH 07/10] Improve material network creation times by caching the nodes returned by Arnold (#1813) * Improve material network creation by caching the nodes returned by arnold * optimize further by first checking if the shader is an arnold shader * move shader node entry and osl code cache in the render delegate and use lock/mutex * cache materialx nodes only --- CHANGELOG.md | 1 + libs/render_delegate/node_graph.cpp | 123 ++++++++++++----------- libs/render_delegate/render_delegate.cpp | 31 ++++++ libs/render_delegate/render_delegate.h | 10 ++ 4 files changed, 107 insertions(+), 58 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7a82b9f51..af20823df8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. - [usd#1769](https://github.com/Autodesk/arnold-usd/issues/1769) - Fix curve uvs when they are vertex interpolated. - [usd#1808](https://github.com/Autodesk/arnold-usd/issues/1808) - Fix the error "Cannot load _htoa_pygeo library required for volume rendering in Solaris" in Houdini 19.5+. +- [usd#1812](https://github.com/Autodesk/arnold-usd/issues/1812) - Improve Material network creation by caching the node entries and the osl code. ## [7.2.5.0] - 2023-12-13 diff --git a/libs/render_delegate/node_graph.cpp b/libs/render_delegate/node_graph.cpp index b96ea46225..00a2a61970 100644 --- a/libs/render_delegate/node_graph.cpp +++ b/libs/render_delegate/node_graph.cpp @@ -786,6 +786,7 @@ HdArnoldNodeGraph::NodeDataPtr HdArnoldNodeGraph::GetNode( const SdfPath& path, const AtString& nodeType, const ConnectedInputs &connectedInputs, bool &isMaterialx) { + const auto nodeIt = _nodes.find(path); // If the node already exists, we are checking if the node type is the same // as the requested node type. While this is not meaningful for applications @@ -807,76 +808,82 @@ HdArnoldNodeGraph::NodeDataPtr HdArnoldNodeGraph::GetNode( } } + // At this stage we didn't find the node, we have to create one. Let's first see if this nodeType is known by arnold + isMaterialx = false; const AtString nodeName = GetLocalNodeName(path); - // first check if there is a materialx shader associated to this node type - AtParamValueMap *params = AiParamValueMap(); - - // if a custom USD plugin path is set, we need to provide it to materialx - // so that it can find node definitions - const AtString &pxrMtlxPath = _renderDelegate->GetPxrMtlxPath(); - if (!pxrMtlxPath.empty()) { - AiParamValueMapSetStr(params, str::MATERIALX_NODE_DEFINITIONS, pxrMtlxPath); - } + const AtNodeEntry *nodeEntry = AiNodeEntryLookUp(nodeType); + AtNode *arnoldNode = nodeEntry ? _renderDelegate->CreateArnoldNode(nodeType, nodeName) : nullptr; + + // If the node type, is not known by Arnold, it might be a MaterialX shader that we'll convert as an osl + if (!arnoldNode) { + AtParamValueMap *params = AiParamValueMap(); + + // if a custom USD plugin path is set, we need to provide it to materialx + // so that it can find node definitions + const AtString &pxrMtlxPath = _renderDelegate->GetPxrMtlxPath(); + if (!pxrMtlxPath.empty()) { + AiParamValueMapSetStr(params, str::MATERIALX_NODE_DEFINITIONS, pxrMtlxPath); + } - AtNode *node = nullptr; - // MaterialX support in USD was added in Arnold 7.1.4 + // MaterialX support in USD was added in Arnold 7.1.4 #if ARNOLD_VERSION_NUM >= 70104 - const char *nodeTypeChar = nodeType.c_str(); + const char *nodeTypeChar = nodeType.c_str(); #if ARNOLD_VERSION_NUM > 70203 - const AtNodeEntry* shaderNodeEntry = AiMaterialxGetNodeEntryFromDefinition(nodeTypeChar, params); + + // Create a key with the params and the nodeType name + std::string nodeEntryKey(nodeType.c_str()); + if (pxrMtlxPath.c_str()) nodeEntryKey += pxrMtlxPath.c_str(); + + const AtNodeEntry* shaderNodeEntry = _renderDelegate->GetMtlxCachedNodeEntry(nodeEntryKey, nodeType, params); #else - // arnold backwards compatibility. We used to rely on the nodedef prefix to identify - // the shader type - AtString shaderEntryStr; - if (nodeType == str::ND_standard_surface_surfaceshader) - shaderEntryStr = str::standard_surface; - else if (strncmp(nodeTypeChar, "ND_", 3) == 0) - shaderEntryStr = str::osl; - else if (strncmp(nodeTypeChar, "ARNOLD_ND_", 10) == 0) - shaderEntryStr = AtString(nodeTypeChar + 10); - - const AtNodeEntry *shaderNodeEntry = shaderEntryStr.empty() ? - nullptr : AiNodeEntryLookUp(shaderEntryStr); + // arnold backwards compatibility. We used to rely on the nodedef prefix to identify + // the shader type + AtString shaderEntryStr; + if (nodeType == str::ND_standard_surface_surfaceshader) + shaderEntryStr = str::standard_surface; + else if (strncmp(nodeTypeChar, "ND_", 3) == 0) + shaderEntryStr = str::osl; + else if (strncmp(nodeTypeChar, "ARNOLD_ND_", 10) == 0) + shaderEntryStr = AtString(nodeTypeChar + 10); + + const AtNodeEntry *shaderNodeEntry = shaderEntryStr.empty() ? + nullptr : AiNodeEntryLookUp(shaderEntryStr); #endif - isMaterialx = false; - if (shaderNodeEntry) { - node = _renderDelegate->CreateArnoldNode(AtString(AiNodeEntryGetName(shaderNodeEntry)), nodeName); - if (AiNodeIs(node, str::osl)) { - isMaterialx = true; - // In order to get the Osl code for this shader, we need to provide the list - // of attribute connections, through the params map. - // We want to add them on top of the eventual PxrMtlPath that was set above - auto inputsIt = connectedInputs.find(path); - if (inputsIt != connectedInputs.end()) { - for(const TfToken &attrName : inputsIt->second) { - AiParamValueMapSetStr(params, AtString(attrName.GetText()), AtString("")); + + if (shaderNodeEntry) { + arnoldNode = _renderDelegate->CreateArnoldNode(AtString(AiNodeEntryGetName(shaderNodeEntry)), nodeName); + if (AiNodeIs(arnoldNode, str::osl)) { + isMaterialx = true; + // As we cache the osl code to reduce the number of calls to AiMaterialxGetOslShaderCode, we construct a key + // with the param names + std::string oslCodeKey = nodeEntryKey; + + // In order to get the Osl code for this shader, we need to provide the list + // of attribute connections, through the params map. + // We want to add them on top of the eventual PxrMtlPath that was set above + auto inputsIt = connectedInputs.find(path); + if (inputsIt != connectedInputs.end()) { + for(const TfToken &attrName : inputsIt->second) { + AiParamValueMapSetStr(params, AtString(attrName.GetText()), AtString("")); + oslCodeKey += attrName.GetString(); + } } - } - // Get the OSL description of this mtlx shader. Its attributes will be prefixed with - // "param_shader_" - // The params argument was added in Arnold 7.2.0.0 - AtString oslCode; -#if ARNOLD_VERSION_NUM > 70104 - oslCode = AiMaterialxGetOslShaderCode(nodeType.c_str(), "shader", params); -#elif ARNOLD_VERSION_NUM >= 70104 - oslCode = AiMaterialxGetOslShaderCode(nodeType.c_str(), "shader"); -#endif - // Set the OSL code. This will create a new AtNodeEntry with parameters - // based on the osl code - if (!oslCode.empty()) - AiNodeSetStr(node, str::code, oslCode); + // Get the OSL description of this mtlx shader. Its attributes will be prefixed with + // "param_shader_" + // The params argument was added in Arnold 7.2.0.0 + AtString oslCode = _renderDelegate->GetCachedOslCode(oslCodeKey, nodeType, params); + // Set the OSL code. This will create a new AtNodeEntry with parameters + // based on the osl code + if (!oslCode.empty()) + AiNodeSetStr(arnoldNode, str::code, oslCode); + } } - } - AiParamValueMapDestroy(params); + AiParamValueMapDestroy(params); #endif - - if (node == nullptr) { - // Not a materialx shader, let's create it as a regular shader - node = _renderDelegate->CreateArnoldNode(nodeType, nodeName); } - auto ret = NodeDataPtr(new NodeData(node, false, _renderDelegate)); + auto ret = NodeDataPtr(new NodeData(arnoldNode, false, _renderDelegate)); _nodes.emplace(path, ret); if (ret == nullptr) { TF_DEBUG(HDARNOLD_MATERIAL).Msg(" unable to create node of type %s - aborting\n", nodeType.c_str()); diff --git a/libs/render_delegate/render_delegate.cpp b/libs/render_delegate/render_delegate.cpp index bf93e9d867..69b1d3598d 100644 --- a/libs/render_delegate/render_delegate.cpp +++ b/libs/render_delegate/render_delegate.cpp @@ -351,6 +351,37 @@ void _RemoveArnoldGlobalPrefix(const TfToken& key, TfToken& key_new) } // namespace + +const AtNodeEntry * HdArnoldRenderDelegate::GetMtlxCachedNodeEntry(const std::string &nodeEntryKey, const AtString &nodeType, AtParamValueMap *params) { + // First we check if the nodeType is an arnold shader + std::lock_guard lock(_nodeEntrymutex); + const auto shaderNodeEntryIt = _shaderNodeEntryCache.find(nodeEntryKey); + if (shaderNodeEntryIt == _shaderNodeEntryCache.end()) { + // NOTE for the future: we are in lock and the following function calls the system and query the disk + // This might be the source of contention or deadlock + const AtNodeEntry* nodeEntry = AiMaterialxGetNodeEntryFromDefinition(nodeType.c_str(), params); + _shaderNodeEntryCache[nodeEntryKey] = nodeEntry; + return nodeEntry; + } + return shaderNodeEntryIt->second; +}; + +AtString HdArnoldRenderDelegate::GetCachedOslCode(const std::string &oslCodeKey, const AtString &nodeType, AtParamValueMap *params) { + std::lock_guard lock(_oslCodeCacheMutex); + const auto oslCodeIt = _oslCodeCache.find(oslCodeKey); + if (oslCodeIt == _oslCodeCache.end()) { +#if ARNOLD_VERSION_NUM > 70104 + _oslCodeCache[oslCodeKey] = AiMaterialxGetOslShaderCode(nodeType.c_str(), "shader", params); +#elif ARNOLD_VERSION_NUM >= 70104 + _oslCodeCache[oslCodeKey] = AiMaterialxGetOslShaderCode(nodeType.c_str(), "shader"); +#endif + } + return _oslCodeCache[oslCodeKey]; +} + + + + std::mutex HdArnoldRenderDelegate::_mutexResourceRegistry; std::atomic_int HdArnoldRenderDelegate::_counterResourceRegistry; HdResourceRegistrySharedPtr HdArnoldRenderDelegate::_resourceRegistry; diff --git a/libs/render_delegate/render_delegate.h b/libs/render_delegate/render_delegate.h index cd8decaed5..9dae11aaf2 100644 --- a/libs/render_delegate/render_delegate.h +++ b/libs/render_delegate/render_delegate.h @@ -577,6 +577,8 @@ class HdArnoldRenderDelegate final : public HdRenderDelegate { } return node; } + const AtNodeEntry * GetMtlxCachedNodeEntry (const std::string &nodeEntryKey, const AtString &nodeType, AtParamValueMap *params); + AtString GetCachedOslCode (const std::string &oslCacheKey, const AtString &nodeType, AtParamValueMap *params); std::vector _nodes; private: @@ -686,6 +688,14 @@ class HdArnoldRenderDelegate final : public HdRenderDelegate { std::mutex _nodesMutex; bool _renderDelegateOwnsUniverse; + + // We cache the shader's node entry and the osl code returned by the AiMaterialXxxx functions as + // those are too costly/slow to be called for each shader prim. + // We might want to get rid of this optimization once they are themselves optimized. + AtMutex _nodeEntrymutex; + std::unordered_map _shaderNodeEntryCache; + AtMutex _oslCodeCacheMutex; + std::unordered_map _oslCodeCache; }; PXR_NAMESPACE_CLOSE_SCOPE From 9f52659f185a1f9341797b23be3170d989e35012 Mon Sep 17 00:00:00 2001 From: cpichard Date: Fri, 19 Jan 2024 09:22:26 +0000 Subject: [PATCH 08/10] Fix build with older versions of arnold (#1820) * fix build with older versions of arnold * fix compatibility with older versions of arnold * convert AtString to string * allow materialx for versions > 7.1.4 * fix ifdef versions for materialx * compatibility with older arnold versions --- libs/render_delegate/node_graph.cpp | 5 ++++- libs/render_delegate/render_delegate.cpp | 9 ++++----- libs/render_delegate/render_delegate.h | 10 ++++++++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/libs/render_delegate/node_graph.cpp b/libs/render_delegate/node_graph.cpp index 00a2a61970..34302611f1 100644 --- a/libs/render_delegate/node_graph.cpp +++ b/libs/render_delegate/node_graph.cpp @@ -856,8 +856,11 @@ HdArnoldNodeGraph::NodeDataPtr HdArnoldNodeGraph::GetNode( isMaterialx = true; // As we cache the osl code to reduce the number of calls to AiMaterialxGetOslShaderCode, we construct a key // with the param names +#if ARNOLD_VERSION_NUM > 70203 std::string oslCodeKey = nodeEntryKey; - +#else + std::string oslCodeKey = nodeType.c_str(); +#endif // In order to get the Osl code for this shader, we need to provide the list // of attribute connections, through the params map. // We want to add them on top of the eventual PxrMtlPath that was set above diff --git a/libs/render_delegate/render_delegate.cpp b/libs/render_delegate/render_delegate.cpp index 69b1d3598d..1871dd3705 100644 --- a/libs/render_delegate/render_delegate.cpp +++ b/libs/render_delegate/render_delegate.cpp @@ -351,7 +351,7 @@ void _RemoveArnoldGlobalPrefix(const TfToken& key, TfToken& key_new) } // namespace - +#if ARNOLD_VERSION_NUM > 70203 const AtNodeEntry * HdArnoldRenderDelegate::GetMtlxCachedNodeEntry(const std::string &nodeEntryKey, const AtString &nodeType, AtParamValueMap *params) { // First we check if the nodeType is an arnold shader std::lock_guard lock(_nodeEntrymutex); @@ -365,7 +365,8 @@ const AtNodeEntry * HdArnoldRenderDelegate::GetMtlxCachedNodeEntry(const std::st } return shaderNodeEntryIt->second; }; - +#endif +#if ARNOLD_VERSION_NUM >= 70104 AtString HdArnoldRenderDelegate::GetCachedOslCode(const std::string &oslCodeKey, const AtString &nodeType, AtParamValueMap *params) { std::lock_guard lock(_oslCodeCacheMutex); const auto oslCodeIt = _oslCodeCache.find(oslCodeKey); @@ -378,9 +379,7 @@ AtString HdArnoldRenderDelegate::GetCachedOslCode(const std::string &oslCodeKey, } return _oslCodeCache[oslCodeKey]; } - - - +#endif std::mutex HdArnoldRenderDelegate::_mutexResourceRegistry; std::atomic_int HdArnoldRenderDelegate::_counterResourceRegistry; diff --git a/libs/render_delegate/render_delegate.h b/libs/render_delegate/render_delegate.h index 9dae11aaf2..180ed538f6 100644 --- a/libs/render_delegate/render_delegate.h +++ b/libs/render_delegate/render_delegate.h @@ -577,9 +577,12 @@ class HdArnoldRenderDelegate final : public HdRenderDelegate { } return node; } +#if ARNOLD_VERSION_NUM > 70203 const AtNodeEntry * GetMtlxCachedNodeEntry (const std::string &nodeEntryKey, const AtString &nodeType, AtParamValueMap *params); +#endif +#if ARNOLD_VERSION_NUM >= 70104 AtString GetCachedOslCode (const std::string &oslCacheKey, const AtString &nodeType, AtParamValueMap *params); - +#endif std::vector _nodes; private: HdArnoldRenderDelegate(const HdArnoldRenderDelegate&) = delete; @@ -688,14 +691,17 @@ class HdArnoldRenderDelegate final : public HdRenderDelegate { std::mutex _nodesMutex; bool _renderDelegateOwnsUniverse; - +#if ARNOLD_VERSION_NUM > 70203 // We cache the shader's node entry and the osl code returned by the AiMaterialXxxx functions as // those are too costly/slow to be called for each shader prim. // We might want to get rid of this optimization once they are themselves optimized. AtMutex _nodeEntrymutex; std::unordered_map _shaderNodeEntryCache; +#endif +#if ARNOLD_VERSION_NUM >= 70104 AtMutex _oslCodeCacheMutex; std::unordered_map _oslCodeCache; +#endif }; PXR_NAMESPACE_CLOSE_SCOPE From 592b42b7c4d9ab326ae47dbd83a7848c6e3007db Mon Sep 17 00:00:00 2001 From: cpichard Date: Thu, 25 Jan 2024 09:54:39 +0000 Subject: [PATCH 09/10] update changelog for fix-7.2.5.0 (#1827) --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af20823df8..c75c886a3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,17 @@ ## Unreleased ### Bug fixes -- [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. -- [usd#1769](https://github.com/Autodesk/arnold-usd/issues/1769) - Fix curve uvs when they are vertex interpolated. + - [usd#1808](https://github.com/Autodesk/arnold-usd/issues/1808) - Fix the error "Cannot load _htoa_pygeo library required for volume rendering in Solaris" in Houdini 19.5+. - [usd#1812](https://github.com/Autodesk/arnold-usd/issues/1812) - Improve Material network creation by caching the node entries and the osl code. +## [7.2.5.1] - 2024-01-18 + +### Bug fixes +- [usd#1776](https://github.com/Autodesk/arnold-usd/issues/1776) - Fix incorrect PointInstancer instance orientations in the render delegate. +- [usd#1769](https://github.com/Autodesk/arnold-usd/issues/1769) - Fix curve uvs when they are vertex interpolated. + + ## [7.2.5.0] - 2023-12-13 ### Feature From e8b748950c54b05c82325c6f3fe4e5a7d7613eb3 Mon Sep 17 00:00:00 2001 From: cpichard Date: Thu, 25 Jan 2024 13:16:46 +0000 Subject: [PATCH 10/10] Fix crash happening in maya aiStandin when scrolling the timeline (#1830) * make the UsdArnoldReaderRegistry non static * register readers before reading --- CHANGELOG.md | 1 + libs/translator/reader/reader.cpp | 47 +++++++++++++------------------ libs/translator/reader/reader.h | 24 ++++------------ 3 files changed, 26 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c75c886a3d..03ff5778c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - [usd#1808](https://github.com/Autodesk/arnold-usd/issues/1808) - Fix the error "Cannot load _htoa_pygeo library required for volume rendering in Solaris" in Houdini 19.5+. - [usd#1812](https://github.com/Autodesk/arnold-usd/issues/1812) - Improve Material network creation by caching the node entries and the osl code. +- [usd#1781](https://github.com/Autodesk/arnold-usd/issues/1781) - Fix a crash happening in a aiStandin usd when scrolling the timeline in maya. ## [7.2.5.1] - 2024-01-18 diff --git a/libs/translator/reader/reader.cpp b/libs/translator/reader/reader.cpp index 7be72bf457..e0c89caeaa 100644 --- a/libs/translator/reader/reader.cpp +++ b/libs/translator/reader/reader.cpp @@ -82,22 +82,27 @@ namespace { WorkDispatcher *dispatcher; }; }; -// global reader registry, will be used in the default case -static UsdArnoldReaderRegistry *s_readerRegistry = nullptr; -static int s_mustDeleteRegistry = 0; + static AtMutex s_globalReaderMutex; static std::unordered_map s_cacheRefCount; - +UsdArnoldReader::UsdArnoldReader() + : _procParent(nullptr), + _universe(nullptr), + _convert(true), + _debug(false), + _threadCount(1), + _mask(AI_NODE_ALL), + _defaultShader(nullptr), + _hasRootPrim(false), + _readStep(READ_NOT_STARTED), + _purpose(UsdGeomTokens->render), + _dispatcher(nullptr), + _readerRegistry(new UsdArnoldReaderRegistry()) + {} UsdArnoldReader::~UsdArnoldReader() { - if (s_mustDeleteRegistry && _registry) { - delete _registry; - s_mustDeleteRegistry = false; - _registry = s_readerRegistry; - } - // What do we want to do at destruction here ? - // Should we delete the created nodes in case there was no procParent ? + delete _readerRegistry; } void UsdArnoldReader::TraverseStage(UsdPrim *rootPrim, UsdArnoldReaderContext &context, @@ -284,19 +289,7 @@ void UsdArnoldReader::ReadStage(UsdStageRefPtr stage, const std::string &path) // and the eventual procedural mask set above _mask = _mask & procMask; - // eventually use a dedicated registry - if (_registry == nullptr) { - // No registry was set (default), let's use the global one - { - std::lock_guard guard(s_globalReaderMutex); - if (s_readerRegistry == nullptr) { - s_readerRegistry = new UsdArnoldReaderRegistry(); // initialize the global registry - s_readerRegistry->RegisterPrimitiveReaders(); - } - } - _registry = s_readerRegistry; - } else - _registry->RegisterPrimitiveReaders(); + _readerRegistry->RegisterPrimitiveReaders(); UsdPrim *rootPrimPtr = nullptr; @@ -602,7 +595,7 @@ void UsdArnoldReader::ReadPrimitive(const UsdPrim &prim, UsdArnoldReaderContext _renderSettings = objName; } - UsdArnoldPrimReader *primReader = _registry->GetPrimReader(objType); + UsdArnoldPrimReader *primReader = _readerRegistry->GetPrimReader(objType); if (primReader && (_mask & primReader->GetType())) { if (_debug) { std::string txt; @@ -699,8 +692,8 @@ void UsdArnoldReader::SetProceduralParent(AtNode *node) } void UsdArnoldReader::CreateViewportRegistry(AtProcViewportMode mode, const AtParamValueMap* params) { - s_mustDeleteRegistry = true; - _registry = new UsdArnoldViewportReaderRegistry(mode, params); + delete _readerRegistry; + _readerRegistry = new UsdArnoldViewportReaderRegistry(mode, params); } void UsdArnoldReader::SetUniverse(AtUniverse *universe) diff --git a/libs/translator/reader/reader.h b/libs/translator/reader/reader.h index 11254cd9a6..ee7abe6f77 100644 --- a/libs/translator/reader/reader.h +++ b/libs/translator/reader/reader.h @@ -47,21 +47,7 @@ class UsdArnoldReaderRegistry; class UsdArnoldReader : public ProceduralReader { public: - UsdArnoldReader() - : _procParent(nullptr), - _universe(nullptr), - _registry(nullptr), - _convert(true), - _debug(false), - _threadCount(1), - _mask(AI_NODE_ALL), - _defaultShader(nullptr), - _hasRootPrim(false), - _readStep(READ_NOT_STARTED), - _purpose(UsdGeomTokens->render), - _dispatcher(nullptr) - { - } + UsdArnoldReader(); ~UsdArnoldReader(); void ReadStage(UsdStageRefPtr stage, @@ -74,7 +60,7 @@ class UsdArnoldReader : public ProceduralReader { void SetProceduralParent(AtNode *node) override; void SetUniverse(AtUniverse *universe) override; - // void SetRegistry(UsdArnoldReaderRegistry *registry); + void CreateViewportRegistry(AtProcViewportMode mode, const AtParamValueMap* params) override; void SetFrame(float frame) override; void SetMotionBlur(bool motionBlur, float motionStart = 0.f, float motionEnd = 0.f) override; @@ -89,7 +75,7 @@ class UsdArnoldReader : public ProceduralReader { const UsdStageRefPtr &GetStage() const { return _stage; } const std::vector &GetNodes() const override { return _nodes; } float GetFrame() const { return _time.frame; } - UsdArnoldReaderRegistry *GetRegistry() { return _registry; } + UsdArnoldReaderRegistry *GetRegistry() { return _readerRegistry; } AtUniverse *GetUniverse() { return _universe; } const AtNode *GetProceduralParent() const { return _procParent; } bool GetDebug() const { return _debug; } @@ -206,8 +192,6 @@ class UsdArnoldReader : public ProceduralReader { private: const AtNode *_procParent; // the created nodes are children of a procedural parent AtUniverse *_universe; // only set if a specific universe is being used - UsdArnoldReaderRegistry *_registry; // custom registry used for this reader. If null, a global - // registry will be used. TimeSettings _time; bool _convert; // do we want to convert the primitives attributes bool _debug; @@ -235,6 +219,8 @@ class UsdArnoldReader : public ProceduralReader { AtString _pxrMtlxPath; // environment variable PXR_MTLX_STDLIB_SEARCH_PATHS unsigned int _id = 0; ///< Arnold shape ID for the procedural. + // Reader registry, will be used in the default case + UsdArnoldReaderRegistry *_readerRegistry = nullptr; }; class UsdArnoldReaderThreadContext : public ArnoldAPIAdapter {