Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:42

0001 #pragma once
0002  
0003 #include "SOPTIX_BuildInput.h"
0004 
0005 struct SOPTIX_BuildInput_IA : public SOPTIX_BuildInput
0006 {
0007     static constexpr const char* NAME = "BuildInputInstanceArray" ; 
0008 
0009     std::vector<OptixInstance> instances ;
0010     CUdeviceptr instances_buffer ; 
0011 
0012     SOPTIX_BuildInput_IA(std::vector<OptixInstance>& _instances ); 
0013 };
0014 
0015 
0016 inline SOPTIX_BuildInput_IA::SOPTIX_BuildInput_IA(std::vector<OptixInstance>& _instances)
0017     :
0018     SOPTIX_BuildInput(NAME),
0019     instances(_instances),
0020     instances_buffer(0)
0021 {
0022     unsigned num_bytes = sizeof( OptixInstance )*instances.size() ; 
0023 
0024     CUDA_CHECK( cudaMalloc( reinterpret_cast<void**>( &instances_buffer ), num_bytes ) );
0025     CUDA_CHECK( cudaMemcpy(
0026                 reinterpret_cast<void*>( instances_buffer ),
0027                 instances.data(),
0028                 num_bytes,
0029                 cudaMemcpyHostToDevice
0030                 ) );
0031 
0032     buildInput.type = OPTIX_BUILD_INPUT_TYPE_INSTANCES;
0033     OptixBuildInputInstanceArray& instanceArray = buildInput.instanceArray ; 
0034     instanceArray.instances = instances_buffer ;  
0035     instanceArray.numInstances = instances.size() ; 
0036 }
0037 
0038 
0039