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.


  OptixAccelBuildOptions accel_options = {};
  if (hasRefit)
  	accel_options.buildFlags = OPTIX_BUILD_FLAG_ALLOW_UPDATE;
  	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;
  	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
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!