25#ifndef OPTIX_OPTIX_FUNCTION_TABLE_H
26#define OPTIX_OPTIX_FUNCTION_TABLE_H
29#define OPTIX_ABI_VERSION 84
31#ifndef OPTIX_DEFINE_ABI_VERSION_ONLY
35#if !defined( OPTIX_DONT_INCLUDE_CUDA )
83 unsigned int callbackLevel );
114 size_t* logStringSize,
124 size_t* logStringSize,
148 unsigned int maxNumAdditionalTasks,
149 unsigned int* numAdditionalTasksCreated );
157 unsigned int numProgramGroups,
160 size_t* logStringSize,
178 unsigned int numProgramGroups,
180 size_t* logStringSize,
188 unsigned int directCallableStackSizeFromTraversal,
189 unsigned int directCallableStackSizeFromState,
190 unsigned int continuationStackSize,
191 unsigned int maxTraversableGraphDepth );
201 unsigned int numBuildInputs,
209 unsigned int numBuildInputs,
211 size_t tempBufferSizeInBytes,
213 size_t outputBufferSizeInBytes,
216 unsigned int numEmittedProperties );
232 size_t numRelocateInputs,
234 size_t targetAccelSizeInBytes,
243 size_t outputBufferSizeInBytes,
278 size_t targetOpacityMicromapArraySizeInBytes );
302 size_t pipelineParamsSize,
306 unsigned int depth );
320 unsigned int maximumInputWidth,
321 unsigned int maximumInputHeight,
327 unsigned int inputWidth,
328 unsigned int inputHeight,
330 size_t stateSizeInBytes,
332 size_t scratchSizeInBytes );
339 size_t denoiserStateSizeInBytes,
342 unsigned int numLayers,
343 unsigned int inputOffsetX,
344 unsigned int inputOffsetY,
346 size_t scratchSizeInBytes );
354 size_t scratchSizeInBytes );
362 size_t scratchSizeInBytes );
struct OptixFunctionTable OptixFunctionTable
The function table containing all API functions.
struct OptixProgramGroup_t * OptixProgramGroup
Opaque type representing a program group.
Definition: optix_types.h:65
struct OptixDenoiser_t * OptixDenoiser
Opaque type representing a denoiser instance.
Definition: optix_types.h:71
OptixDeviceProperty
Parameters used for optixDeviceContextGetProperty()
Definition: optix_types.h:200
unsigned long long CUdeviceptr
CUDA device pointer.
Definition: optix_types.h:52
OptixResult
Result codes returned from API functions.
Definition: optix_types.h:152
OptixModuleCompileState
Module compilation state.
Definition: optix_types.h:1898
struct OptixModule_t * OptixModule
Opaque type representing a module.
Definition: optix_types.h:62
OptixDenoiserModelKind
Model kind used by the denoiser.
Definition: optix_types.h:1595
struct OptixPipeline_t * OptixPipeline
Opaque type representing a pipeline.
Definition: optix_types.h:68
unsigned long long OptixTraversableHandle
Traversable handle.
Definition: optix_types.h:77
OptixTraversableType
Traversable Handles.
Definition: optix_types.h:1542
void(* OptixLogCallback)(unsigned int level, const char *tag, const char *message, void *cbdata)
Type of the callback function used for log messages.
Definition: optix_types.h:261
struct OptixTask_t * OptixTask
Opaque type representing a work task.
Definition: optix_types.h:74
struct OptixDeviceContext_t * OptixDeviceContext
Opaque type representing a device context.
Definition: optix_types.h:59
Struct for querying builder allocation requirements.
Definition: optix_types.h:1339
Build options for acceleration structures.
Definition: optix_types.h:1317
Specifies a type and output destination for emitted post-build properties.
Definition: optix_types.h:1371
Specifies the options for retrieving an intersection program for a built-in primitive type....
Definition: optix_types.h:2434
Guide layer for the denoiser.
Definition: optix_types.h:1635
Input/Output layers for the denoiser.
Definition: optix_types.h:1676
Options used by the denoiser.
Definition: optix_types.h:1623
Definition: optix_types.h:1708
Various sizes related to the denoiser.
Definition: optix_types.h:1740
Parameters used for optixDeviceContextCreate()
Definition: optix_types.h:280
The function table containing all API functions.
Definition: optix_function_table.h:56
OptixResult(* optixLaunch)(OptixPipeline pipeline, CUstream stream, CUdeviceptr pipelineParams, size_t pipelineParamsSize, const OptixShaderBindingTable *sbt, unsigned int width, unsigned int height, unsigned int depth)
See optixConvertPointerToTraversableHandle().
Definition: optix_function_table.h:299
OptixResult(* optixDeviceContextSetLogCallback)(OptixDeviceContext context, OptixLogCallback callbackFunction, void *callbackData, unsigned int callbackLevel)
See optixDeviceContextSetLogCallback().
Definition: optix_function_table.h:80
OptixResult(* optixDeviceContextGetCacheDatabaseSizes)(OptixDeviceContext context, size_t *lowWaterMark, size_t *highWaterMark)
See optixDeviceContextGetCacheDatabaseSizes().
Definition: optix_function_table.h:101
OptixResult(* optixOpacityMicromapArrayGetRelocationInfo)(OptixDeviceContext context, CUdeviceptr opacityMicromapArray, OptixRelocationInfo *info)
See optixOpacityMicromapArrayGetRelocationInfo().
Definition: optix_function_table.h:269
OptixResult(* optixDeviceContextGetProperty)(OptixDeviceContext context, OptixDeviceProperty property, void *value, size_t sizeInBytes)
See optixDeviceContextGetProperty().
Definition: optix_function_table.h:77
OptixResult(* optixPipelineCreate)(OptixDeviceContext context, const OptixPipelineCompileOptions *pipelineCompileOptions, const OptixPipelineLinkOptions *pipelineLinkOptions, const OptixProgramGroup *programGroups, unsigned int numProgramGroups, char *logString, size_t *logStringSize, OptixPipeline *pipeline)
See optixPipelineCreate().
Definition: optix_function_table.h:174
OptixResult(* optixOpacityMicromapArrayBuild)(OptixDeviceContext context, CUstream stream, const OptixOpacityMicromapArrayBuildInput *buildInput, const OptixMicromapBuffers *buffers)
See optixOpacityMicromapArrayBuild().
Definition: optix_function_table.h:263
OptixResult(* optixDenoiserComputeAverageColor)(OptixDenoiser handle, CUstream stream, const OptixImage2D *inputImage, CUdeviceptr outputAverageColor, CUdeviceptr scratch, size_t scratchSizeInBytes)
See optixDenoiserComputeAverageColor().
Definition: optix_function_table.h:357
OptixResult(* optixDenoiserCreate)(OptixDeviceContext context, OptixDenoiserModelKind modelKind, const OptixDenoiserOptions *options, OptixDenoiser *returnHandle)
See optixDenoiserCreate().
Definition: optix_function_table.h:313
OptixResult(* optixOpacityMicromapArrayComputeMemoryUsage)(OptixDeviceContext context, const OptixOpacityMicromapArrayBuildInput *buildInput, OptixMicromapBufferSizes *bufferSizes)
See optixOpacityMicromapArrayComputeMemoryUsage().
Definition: optix_function_table.h:258
OptixResult(* optixDeviceContextSetCacheDatabaseSizes)(OptixDeviceContext context, size_t lowWaterMark, size_t highWaterMark)
See optixDeviceContextSetCacheDatabaseSizes().
Definition: optix_function_table.h:92
OptixResult(* optixDenoiserCreateWithUserModel)(OptixDeviceContext context, const void *data, size_t dataSizeInBytes, OptixDenoiser *returnHandle)
See optixDenoiserCreateWithUserModel().
Definition: optix_function_table.h:365
OptixResult(* optixConvertPointerToTraversableHandle)(OptixDeviceContext onDevice, CUdeviceptr pointer, OptixTraversableType traversableType, OptixTraversableHandle *traversableHandle)
See optixConvertPointerToTraversableHandle().
Definition: optix_function_table.h:252
OptixResult(* optixDenoiserDestroy)(OptixDenoiser handle)
See optixDenoiserDestroy().
Definition: optix_function_table.h:316
OptixResult(* optixDisplacementMicromapArrayBuild)(OptixDeviceContext context, CUstream stream, const OptixDisplacementMicromapArrayBuildInput *buildInput, const OptixMicromapBuffers *buffers)
See optixDisplacementMicromapArrayBuild().
Definition: optix_function_table.h:286
OptixResult(* optixCheckRelocationCompatibility)(OptixDeviceContext context, const OptixRelocationInfo *info, int *compatible)
See optixCheckRelocationCompatibility().
Definition: optix_function_table.h:223
OptixResult(* optixAccelRelocate)(OptixDeviceContext context, CUstream stream, const OptixRelocationInfo *info, const OptixRelocateInput *relocateInputs, size_t numRelocateInputs, CUdeviceptr targetAccel, size_t targetAccelSizeInBytes, OptixTraversableHandle *targetHandle)
See optixAccelRelocate().
Definition: optix_function_table.h:228
OptixResult(* optixDeviceContextDestroy)(OptixDeviceContext context)
See optixDeviceContextDestroy().
Definition: optix_function_table.h:74
OptixResult(* optixProgramGroupGetStackSize)(OptixProgramGroup programGroup, OptixStackSizes *stackSizes, OptixPipeline pipeline)
See optixProgramGroupGetStackSize().
Definition: optix_function_table.h:167
OptixResult(* optixTaskExecute)(OptixTask task, OptixTask *additionalTasks, unsigned int maxNumAdditionalTasks, unsigned int *numAdditionalTasksCreated)
See optixTaskExecute().
Definition: optix_function_table.h:146
OptixResult(* optixDeviceContextGetCacheEnabled)(OptixDeviceContext context, int *enabled)
See optixDeviceContextGetCacheEnabled().
Definition: optix_function_table.h:95
OptixResult(* optixDeviceContextSetCacheEnabled)(OptixDeviceContext context, int enabled)
See optixDeviceContextSetCacheEnabled().
Definition: optix_function_table.h:86
OptixResult(* optixDisplacementMicromapArrayComputeMemoryUsage)(OptixDeviceContext context, const OptixDisplacementMicromapArrayBuildInput *buildInput, OptixMicromapBufferSizes *bufferSizes)
See optixDisplacementMicromapArrayComputeMemoryUsage().
Definition: optix_function_table.h:281
OptixResult(* optixPipelineDestroy)(OptixPipeline pipeline)
See optixPipelineDestroy().
Definition: optix_function_table.h:184
OptixResult(* optixDeviceContextSetCacheLocation)(OptixDeviceContext context, const char *location)
See optixDeviceContextSetCacheLocation().
Definition: optix_function_table.h:89
OptixResult(* optixModuleGetCompilationState)(OptixModule module, OptixModuleCompileState *state)
See optixModuleGetCompilationState().
Definition: optix_function_table.h:129
OptixResult(* optixBuiltinISModuleGet)(OptixDeviceContext context, const OptixModuleCompileOptions *moduleCompileOptions, const OptixPipelineCompileOptions *pipelineCompileOptions, const OptixBuiltinISOptions *builtinISOptions, OptixModule *builtinModule)
See optixBuiltinISModuleGet().
Definition: optix_function_table.h:135
OptixResult(* optixDeviceContextGetCacheLocation)(OptixDeviceContext context, char *location, size_t locationSize)
See optixDeviceContextGetCacheLocation().
Definition: optix_function_table.h:98
OptixResult(* optixPipelineSetStackSize)(OptixPipeline pipeline, unsigned int directCallableStackSizeFromTraversal, unsigned int directCallableStackSizeFromState, unsigned int continuationStackSize, unsigned int maxTraversableGraphDepth)
See optixPipelineSetStackSize().
Definition: optix_function_table.h:187
OptixResult(* optixAccelGetRelocationInfo)(OptixDeviceContext context, OptixTraversableHandle handle, OptixRelocationInfo *info)
See optixAccelGetRelocationInfo().
Definition: optix_function_table.h:219
OptixResult(* optixAccelEmitProperty)(OptixDeviceContext context, CUstream stream, OptixTraversableHandle handle, const OptixAccelEmitDesc *emittedProperty)
See optixAccelComputeMemoryUsage().
Definition: optix_function_table.h:246
OptixResult(* optixDenoiserSetup)(OptixDenoiser denoiser, CUstream stream, unsigned int inputWidth, unsigned int inputHeight, CUdeviceptr state, size_t stateSizeInBytes, CUdeviceptr scratch, size_t scratchSizeInBytes)
See optixDenoiserSetup().
Definition: optix_function_table.h:325
OptixResult(* optixModuleCreateWithTasks)(OptixDeviceContext context, const OptixModuleCompileOptions *moduleCompileOptions, const OptixPipelineCompileOptions *pipelineCompileOptions, const char *input, size_t inputSize, char *logString, size_t *logStringSize, OptixModule *module, OptixTask *firstTask)
See optixModuleCreateWithTasks().
Definition: optix_function_table.h:118
OptixResult(* optixDeviceContextCreate)(CUcontext fromContext, const OptixDeviceContextOptions *options, OptixDeviceContext *context)
See optixDeviceContextCreate().
Definition: optix_function_table.h:71
OptixResult(* optixModuleCreate)(OptixDeviceContext context, const OptixModuleCompileOptions *moduleCompileOptions, const OptixPipelineCompileOptions *pipelineCompileOptions, const char *input, size_t inputSize, char *logString, size_t *logStringSize, OptixModule *module)
See optixModuleCreate().
Definition: optix_function_table.h:108
OptixResult(* optixSbtRecordPackHeader)(OptixProgramGroup programGroup, void *sbtRecordHeaderHostPointer)
See optixConvertPointerToTraversableHandle().
Definition: optix_function_table.h:296
OptixResult(* optixOpacityMicromapArrayRelocate)(OptixDeviceContext context, CUstream stream, const OptixRelocationInfo *info, CUdeviceptr targetOpacityMicromapArray, size_t targetOpacityMicromapArraySizeInBytes)
See optixOpacityMicromapArrayRelocate().
Definition: optix_function_table.h:274
OptixResult(* optixAccelBuild)(OptixDeviceContext context, CUstream stream, const OptixAccelBuildOptions *accelOptions, const OptixBuildInput *buildInputs, unsigned int numBuildInputs, CUdeviceptr tempBuffer, size_t tempBufferSizeInBytes, CUdeviceptr outputBuffer, size_t outputBufferSizeInBytes, OptixTraversableHandle *outputHandle, const OptixAccelEmitDesc *emittedProperties, unsigned int numEmittedProperties)
See optixAccelBuild().
Definition: optix_function_table.h:205
OptixResult(* optixDenoiserInvoke)(OptixDenoiser denoiser, CUstream stream, const OptixDenoiserParams *params, CUdeviceptr denoiserState, size_t denoiserStateSizeInBytes, const OptixDenoiserGuideLayer *guideLayer, const OptixDenoiserLayer *layers, unsigned int numLayers, unsigned int inputOffsetX, unsigned int inputOffsetY, CUdeviceptr scratch, size_t scratchSizeInBytes)
See optixDenoiserInvoke().
Definition: optix_function_table.h:335
OptixResult(* optixModuleDestroy)(OptixModule module)
See optixModuleDestroy().
Definition: optix_function_table.h:132
OptixResult(* optixAccelCompact)(OptixDeviceContext context, CUstream stream, OptixTraversableHandle inputHandle, CUdeviceptr outputBuffer, size_t outputBufferSizeInBytes, OptixTraversableHandle *outputHandle)
See optixAccelCompact().
Definition: optix_function_table.h:239
OptixResult(* optixProgramGroupDestroy)(OptixProgramGroup programGroup)
See optixProgramGroupDestroy().
Definition: optix_function_table.h:164
OptixResult(* optixAccelComputeMemoryUsage)(OptixDeviceContext context, const OptixAccelBuildOptions *accelOptions, const OptixBuildInput *buildInputs, unsigned int numBuildInputs, OptixAccelBufferSizes *bufferSizes)
See optixAccelComputeMemoryUsage().
Definition: optix_function_table.h:198
OptixResult(* optixProgramGroupCreate)(OptixDeviceContext context, const OptixProgramGroupDesc *programDescriptions, unsigned int numProgramGroups, const OptixProgramGroupOptions *options, char *logString, size_t *logStringSize, OptixProgramGroup *programGroups)
See optixProgramGroupCreate().
Definition: optix_function_table.h:155
OptixResult(* optixDenoiserComputeMemoryResources)(const OptixDenoiser handle, unsigned int maximumInputWidth, unsigned int maximumInputHeight, OptixDenoiserSizes *returnSizes)
See optixDenoiserComputeMemoryResources().
Definition: optix_function_table.h:319
OptixResult(* optixDenoiserComputeIntensity)(OptixDenoiser handle, CUstream stream, const OptixImage2D *inputImage, CUdeviceptr outputIntensity, CUdeviceptr scratch, size_t scratchSizeInBytes)
See optixDenoiserComputeIntensity().
Definition: optix_function_table.h:349
Image descriptor used by the denoiser.
Definition: optix_types.h:1573
Conservative memory requirements for building a opacity/displacement micromap array.
Definition: optix_types.h:1245
Buffer inputs for opacity/displacement micromap array builds.
Definition: optix_types.h:1252
Compilation options for module.
Definition: optix_types.h:2025
Compilation options for all modules of a pipeline.
Definition: optix_types.h:2309
Link options for a pipeline.
Definition: optix_types.h:2344
Descriptor for program groups.
Definition: optix_types.h:2136
Program group options.
Definition: optix_types.h:2162
Used to store information related to relocation of optix data structures.
Definition: optix_types.h:1384
Describes the shader binding table (SBT)
Definition: optix_types.h:2355
Describes the stack size requirements of a program group.
Definition: optix_types.h:2395