@@ -3412,30 +3412,36 @@ ShadingSystemImpl::ReParameter(ShaderGroup& group, string_view layername_,
34123412 return false ;
34133413
34143414 // Do the deed
3415- int offset = group.interactive_param_offset (layerindex, sym->name ());
3416- size_t size = type.size ();
3417- m_stat_reparam_calls_total += 1 ;
3418- m_stat_reparam_bytes_total += size;
3419-
3420- // Copy ustringhashes instead of ustrings
3421- const void * payload;
3422- ustringhash string_hash;
3423- if (type == TypeDesc::STRING) {
3424- string_hash = ustringhash_from (*reinterpret_cast <const ustring*>(val));
3425- payload = &string_hash;
3415+ int offset = group.interactive_param_offset (layerindex, sym->name ());
3416+
3417+ if (offset >= 0 ) {
3418+ size_t size = type.size ();
3419+ m_stat_reparam_calls_total += 1 ;
3420+ m_stat_reparam_bytes_total += size;
3421+
3422+ // Copy ustringhashes instead of ustrings
3423+ const void * payload;
3424+ ustringhash string_hash;
3425+ if (type == TypeDesc::STRING) {
3426+ string_hash = ustringhash_from (
3427+ *reinterpret_cast <const ustring*>(val));
3428+ payload = &string_hash;
3429+ } else
3430+ payload = val;
3431+
3432+ if (memcmp (group.interactive_arena_ptr () + offset, payload, size)) {
3433+ memcpy (group.interactive_arena_ptr () + offset, payload,
3434+ type.size ());
3435+ if (use_optix ())
3436+ renderer ()->copy_to_device (
3437+ group.device_interactive_arena ().d_get () + offset, payload,
3438+ type.size ());
3439+ m_stat_reparam_calls_changed += 1 ;
3440+ m_stat_reparam_bytes_changed += size;
3441+ }
3442+ return true ;
34263443 } else
3427- payload = val;
3428-
3429- if (memcmp (group.interactive_arena_ptr () + offset, payload, size)) {
3430- memcpy (group.interactive_arena_ptr () + offset, payload, type.size ());
3431- if (use_optix ())
3432- renderer ()->copy_to_device (group.device_interactive_arena ().d_get ()
3433- + offset,
3434- payload, type.size ());
3435- m_stat_reparam_calls_changed += 1 ;
3436- m_stat_reparam_bytes_changed += size;
3437- }
3438- return true ;
3444+ return true ;
34393445}
34403446
34413447
0 commit comments