REFIT on OptiX 7

I have a similar problem as described here: [Dynamic vertices attribute update]

I build GAS’es which are all within one IAS.
I only refit the GAS.

Code:

  OptixAccelBuildOptions accel_options = {};
  if (hasRefit)
  	accel_options.buildFlags = OPTIX_BUILD_FLAG_ALLOW_UPDATE;
  else
  	accel_options.buildFlags = OPTIX_BUILD_FLAG_ALLOW_COMPACTION;				

  if (do_refit)  // is only true if also "hasRefit" is true
  	accel_options.operation = OPTIX_BUILD_OPERATION_UPDATE;
  else
  	accel_options.operation = OPTIX_BUILD_OPERATION_BUILD;

and optixAccelBuild() succeeds (of course without compaction on refit)
But the object disappears when starting refitting.

gas_buffer_sizes.tempSizeInBytes=9f80h // remains constant
gas_buffer_sizes.outputSizeInBytes=1cc2ch // remains constant
triangle_gas_handle correctly built and used in IAS. This works for case of
OPTIX_BUILD_OPERATION_BUILD; but not on update.
optix_instances[index].transform:
1.000000 0.000000 0.000000 0.000000
0.000000 1.000000 0.000000 0.000000
0.000000 0.000000 1.000000 0.000000
IAS optixAccelBuild also succeeds.
pipeline was always re-created; but after skipping this re-creation the problem of disappearing still exists.

no AABB provided; always triangle primitives used (no custom intersection)
no motion blur / morphing yet

What could be wrong?

Thank you!

My System: OptiX 7.0.0 SDK CUDA 10.1.243 GTX 1050 2GB Win10PRO 64bit (version 1809; build 17763.107)
device driver: 445.75 VS2019 v16.5.3 (toolkit v140 of VS2015) MDL SDK 2019.2

I think this calls for a minimal and complete reproducer project in failing state to start investigation.
It’s not clear what else happens from just code excerpts.

1 Like

Hi Detlef,

thank you for your answer.
During building a reproducer, I found a bug in my code which solved this issue.
(I also updated to driver 445.87, but that was not the reason)
Thank you!
m1