33#ifndef OPTIX_OPTIX_STUBS_H
34#define OPTIX_OPTIX_STUBS_H
39#ifndef WIN32_LEAN_AND_MEAN
40#define WIN32_LEAN_AND_MEAN 1
46#pragma comment( lib, "Cfgmgr32.lib" )
61#if defined( _MSC_VER )
65# pragma warning( push )
66# pragma warning( disable : 4996 )
74 handle = LoadLibraryA( (LPSTR)optixDllName );
80 unsigned int size = GetSystemDirectoryA( NULL, 0 );
86 size_t pathSize = size + 1 + strlen( optixDllName );
87 char* systemPath = (
char*)malloc( pathSize );
88 if( systemPath == NULL )
90 if( GetSystemDirectoryA( systemPath, size ) != size - 1 )
96 strcat( systemPath,
"\\" );
97 strcat( systemPath, optixDllName );
98 handle = LoadLibraryA( systemPath );
107 static const char* deviceInstanceIdentifiersGUID =
"{4d36e968-e325-11ce-bfc1-08002be10318}";
108 const ULONG flags =
CM_GETIDLIST_FILTER_CLASS |
CM_GETIDLIST_FILTER_PRESENT;
109 ULONG deviceListSize = 0;
110 if(
CM_Get_Device_ID_List_SizeA( &deviceListSize, deviceInstanceIdentifiersGUID, flags ) !=
CR_SUCCESS )
114 char* deviceNames = (
char*)malloc( deviceListSize );
115 if( deviceNames == NULL )
117 if(
CM_Get_Device_ID_ListA( deviceInstanceIdentifiersGUID, deviceNames, deviceListSize, flags ) )
123 char* dllPath = NULL;
126 for(
char* deviceName = deviceNames; *deviceName; deviceName += strlen( deviceName ) + 1 )
128 if(
CM_Locate_DevNodeA( &devID, deviceName,
CM_LOCATE_DEVNODE_NORMAL ) !=
CR_SUCCESS )
133 if(
CM_Open_DevNode_Key( devID,
KEY_QUERY_VALUE, 0, RegDisposition_OpenExisting, ®Key,
CM_REGISTRY_SOFTWARE ) !=
CR_SUCCESS )
137 const char* valueName =
"OpenGLDriverName";
139 LSTATUS ret = RegQueryValueExA( regKey, valueName, NULL, NULL, NULL, &valueSize );
140 if( ret !=
ERROR_SUCCESS )
142 RegCloseKey( regKey );
145 char* regValue = (
char*)malloc( valueSize );
146 if( regValue == NULL )
148 RegCloseKey( regKey );
151 ret = RegQueryValueExA( regKey, valueName, NULL, NULL, (LPBYTE)regValue, &valueSize );
152 if( ret !=
ERROR_SUCCESS )
155 RegCloseKey( regKey );
160 for(
int i = (
int) valueSize - 1; i >= 0 && regValue[i] !=
'\\'; --i )
162 size_t newPathSize = strlen( regValue ) + strlen( optixDllName ) + 1;
163 dllPath = (
char*)malloc( newPathSize );
164 if( dllPath == NULL )
167 RegCloseKey( regKey );
170 strcpy( dllPath, regValue );
171 strcat( dllPath, optixDllName );
173 RegCloseKey( regKey );
174 handle = LoadLibraryA( (LPCSTR)dllPath );
182#if defined( _MSC_VER )
183# pragma warning( pop )
219 void* symbol = GetProcAddress( (HMODULE)*handlePtr,
"optixQueryFunctionTable" );
223 *handlePtr = dlopen(
"libnvoptix.so.1",
RTLD_NOW );
227 void* symbol = dlsym( *handlePtr,
"optixQueryFunctionTable" );
256 if( !FreeLibrary( (HMODULE)handle ) )
259 if( dlclose( handle ) )
270#ifndef OPTIX_DOXYGEN_SHOULD_SKIP_THIS
284 return "OPTIX_SUCCESS";
286 return "OPTIX_ERROR_INVALID_VALUE";
288 return "OPTIX_ERROR_UNSUPPORTED_ABI_VERSION";
290 return "OPTIX_ERROR_FUNCTION_TABLE_SIZE_MISMATCH";
292 return "OPTIX_ERROR_INVALID_ENTRY_FUNCTION_OPTIONS";
294 return "OPTIX_ERROR_LIBRARY_NOT_FOUND";
296 return "OPTIX_ERROR_ENTRY_SYMBOL_NOT_FOUND";
298 return "OPTIX_ERROR_LIBRARY_UNLOAD_FAILURE";
300 return "Unknown OptixResult code";
316 return "Invalid value";
318 return "Unsupported ABI version";
320 return "Function table size mismatch";
322 return "Invalid options to entry function";
324 return "Library not found";
326 return "Entry symbol not found";
328 return "Library could not be unloaded";
330 return "Unknown OptixResult code";
352 unsigned int callbackLevel )
393 size_t* logStringSize,
397 logString, logStringSize, module );
406 size_t* logStringSize,
411 inputSize, logString, logStringSize, module, firstTask );
431 builtinISOptions, builtinModule );
441 unsigned int numProgramGroups,
444 size_t* logStringSize,
448 logString, logStringSize, programGroups );
465 unsigned int numProgramGroups,
467 size_t* logStringSize,
471 numProgramGroups, logString, logStringSize, pipeline );
480 unsigned int directCallableStackSizeFromTraversal,
481 unsigned int directCallableStackSizeFromState,
482 unsigned int continuationStackSize,
483 unsigned int maxTraversableGraphDepth )
486 continuationStackSize, maxTraversableGraphDepth );
492 unsigned int numBuildInputs,
502 unsigned int numBuildInputs,
504 size_t tempBufferSizeInBytes,
506 size_t outputBufferSizeInBytes,
509 unsigned int numEmittedProperties )
512 tempBufferSizeInBytes, outputBuffer, outputBufferSizeInBytes,
513 outputHandle, emittedProperties, numEmittedProperties );
532 size_t numRelocateInputs,
534 size_t targetAccelSizeInBytes,
538 targetAccel, targetAccelSizeInBytes, targetHandle );
545 size_t outputBufferSizeInBytes,
593 size_t targetOpacityMicromapArraySizeInBytes )
621 size_t pipelineParamsSize,
646 unsigned int maximumInputWidth,
647 unsigned int maximumInputHeight,
655 unsigned int inputWidth,
656 unsigned int inputHeight,
658 size_t denoiserStateSizeInBytes,
660 size_t scratchSizeInBytes )
663 denoiserStateSizeInBytes, scratch, scratchSizeInBytes );
670 size_t denoiserDataSize,
673 unsigned int numLayers,
674 unsigned int inputOffsetX,
675 unsigned int inputOffsetY,
677 size_t scratchSizeInBytes )
680 guideLayer, layers, numLayers,
681 inputOffsetX, inputOffsetY, scratch, scratchSizeInBytes );
689 size_t scratchSizeInBytes )
699 size_t scratchSizeInBytes )
OptixFunctionTable g_optixFunctionTable
If the stubs in optix_stubs.h are used, then the function table needs to be defined in exactly one tr...
Definition: optix_function_table_definition.h:41
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
OptixResult() OptixQueryFunctionTable_t(int abiId, unsigned int numOptions, OptixQueryFunctionTableOptions *, const void **, void *functionTable, size_t sizeOfTable)
Type of the function optixQueryFunctionTable()
Definition: optix_types.h:2422
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
@ OPTIX_ERROR_LIBRARY_NOT_FOUND
Definition: optix_types.h:187
@ OPTIX_ERROR_LIBRARY_UNLOAD_FAILURE
Definition: optix_types.h:189
@ OPTIX_ERROR_ENTRY_SYMBOL_NOT_FOUND
Definition: optix_types.h:188
@ OPTIX_SUCCESS
Definition: optix_types.h:153
@ OPTIX_ERROR_INVALID_VALUE
Definition: optix_types.h:154
@ OPTIX_ERROR_UNSUPPORTED_ABI_VERSION
Definition: optix_types.h:184
@ OPTIX_ERROR_INVALID_ENTRY_FUNCTION_OPTIONS
Definition: optix_types.h:186
@ OPTIX_ERROR_FUNCTION_TABLE_SIZE_MISMATCH
Definition: optix_types.h:185
OptixResult optixInit(void)
Loads the OptiX library and initializes the function table used by the stubs below.
Definition: optix_stubs.h:240
OptixResult optixUninitWithHandle(void *handle)
Unloads the OptiX library and zeros the function table used by the stubs below. Takes the handle retu...
Definition: optix_stubs.h:251
OptixResult optixInitWithHandle(void **handlePtr)
Loads the OptiX library and initializes the function table used by the stubs below.
Definition: optix_stubs.h:204
#define OPTIX_ABI_VERSION
The OptiX ABI version.
Definition: optix_function_table.h:29
OptixResult optixConvertPointerToTraversableHandle(OptixDeviceContext onDevice, CUdeviceptr pointer, OptixTraversableType traversableType, OptixTraversableHandle *traversableHandle)
OptixResult optixSbtRecordPackHeader(OptixProgramGroup programGroup, void *sbtRecordHeaderHostPointer)
OptixResult optixLaunch(OptixPipeline pipeline, CUstream stream, CUdeviceptr pipelineParams, size_t pipelineParamsSize, const OptixShaderBindingTable *sbt, unsigned int width, unsigned int height, unsigned int depth)
Where the magic happens.
OptixResult optixBuiltinISModuleGet(OptixDeviceContext context, const OptixModuleCompileOptions *moduleCompileOptions, const OptixPipelineCompileOptions *pipelineCompileOptions, const OptixBuiltinISOptions *builtinISOptions, OptixModule *builtinModule)
Returns a module containing the intersection program for the built-in primitive type specified by the...
OptixResult optixDeviceContextGetCacheLocation(OptixDeviceContext context, char *location, size_t locationSize)
Returns the location of the disk cache. If the cache has been disabled by setting the environment var...
OptixResult optixDeviceContextGetCacheEnabled(OptixDeviceContext context, int *enabled)
Indicates whether the disk cache is enabled or disabled.
OptixResult optixPipelineDestroy(OptixPipeline pipeline)
Thread safety: A pipeline must not be destroyed while it is still in use by concurrent API calls in o...
OptixResult optixDeviceContextGetCacheDatabaseSizes(OptixDeviceContext context, size_t *lowWaterMark, size_t *highWaterMark)
Returns the low and high water marks for disk cache garbage collection. If the cache has been disable...
OptixResult optixDisplacementMicromapArrayComputeMemoryUsage(OptixDeviceContext context, const OptixDisplacementMicromapArrayBuildInput *buildInput, OptixMicromapBufferSizes *bufferSizes)
Determine the amount of memory necessary for a Displacement Micromap Array build.
OptixResult optixDenoiserComputeMemoryResources(const OptixDenoiser denoiser, unsigned int outputWidth, unsigned int outputHeight, OptixDenoiserSizes *returnSizes)
Computes the GPU memory resources required to execute the denoiser.
OptixResult optixDeviceContextSetCacheEnabled(OptixDeviceContext context, int enabled)
Enables or disables the disk cache.
OptixResult optixDenoiserCreate(OptixDeviceContext context, OptixDenoiserModelKind modelKind, const OptixDenoiserOptions *options, OptixDenoiser *denoiser)
Creates a denoiser object with the given options, using built-in inference models.
OptixResult optixDeviceContextSetLogCallback(OptixDeviceContext context, OptixLogCallback callbackFunction, void *callbackData, unsigned int callbackLevel)
Sets the current log callback method.
OptixResult optixDeviceContextDestroy(OptixDeviceContext context)
Destroys all CPU and GPU state associated with the device.
OptixResult optixProgramGroupGetStackSize(OptixProgramGroup programGroup, OptixStackSizes *stackSizes, OptixPipeline pipeline)
Returns the stack sizes for the given program group. When programs in this programGroup are relying o...
OptixResult optixPipelineCreate(OptixDeviceContext context, const OptixPipelineCompileOptions *pipelineCompileOptions, const OptixPipelineLinkOptions *pipelineLinkOptions, const OptixProgramGroup *programGroups, unsigned int numProgramGroups, char *logString, size_t *logStringSize, OptixPipeline *pipeline)
logString is an optional buffer that contains compiler feedback and errors. This information is also ...
OptixResult optixOpacityMicromapArrayGetRelocationInfo(OptixDeviceContext context, CUdeviceptr opacityMicromapArray, OptixRelocationInfo *info)
Obtain relocation information, stored in OptixRelocationInfo, for a given context and opacity microma...
OptixResult optixDeviceContextSetCacheLocation(OptixDeviceContext context, const char *location)
Sets the location of the disk cache.
OptixResult optixAccelGetRelocationInfo(OptixDeviceContext context, OptixTraversableHandle handle, OptixRelocationInfo *info)
Obtain relocation information, stored in OptixRelocationInfo, for a given context and acceleration st...
OptixResult optixOpacityMicromapArrayBuild(OptixDeviceContext context, CUstream stream, const OptixOpacityMicromapArrayBuildInput *buildInput, const OptixMicromapBuffers *buffers)
Construct an array of Opacity Micromaps.
OptixResult optixDenoiserSetup(OptixDenoiser denoiser, CUstream stream, unsigned int inputWidth, unsigned int inputHeight, CUdeviceptr denoiserState, size_t denoiserStateSizeInBytes, CUdeviceptr scratch, size_t scratchSizeInBytes)
Initializes the state required by the denoiser.
OptixResult optixOpacityMicromapArrayComputeMemoryUsage(OptixDeviceContext context, const OptixOpacityMicromapArrayBuildInput *buildInput, OptixMicromapBufferSizes *bufferSizes)
Determine the amount of memory necessary for a Opacity Micromap Array build.
const char * optixGetErrorString(OptixResult result)
Returns the description string for an error code.
OptixResult optixAccelRelocate(OptixDeviceContext context, CUstream stream, const OptixRelocationInfo *info, const OptixRelocateInput *relocateInputs, size_t numRelocateInputs, CUdeviceptr targetAccel, size_t targetAccelSizeInBytes, OptixTraversableHandle *targetHandle)
optixAccelRelocate is called to update the acceleration structure after it has been relocated....
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)
This function is designed to do just enough work to create the OptixTask return parameter and is expe...
OptixResult optixDenoiserCreateWithUserModel(OptixDeviceContext context, const void *userData, size_t userDataSizeInBytes, OptixDenoiser *denoiser)
Creates a denoiser object with the given options, using a provided inference model.
OptixResult optixDenoiserDestroy(OptixDenoiser denoiser)
Destroys the denoiser object and any associated host resources.
const char * optixGetErrorName(OptixResult result)
Returns a string containing the name of an error code in the enum.
OptixResult optixDeviceContextGetProperty(OptixDeviceContext context, OptixDeviceProperty property, void *value, size_t sizeInBytes)
Query properties of a device context.
OptixResult optixProgramGroupCreate(OptixDeviceContext context, const OptixProgramGroupDesc *programDescriptions, unsigned int numProgramGroups, const OptixProgramGroupOptions *options, char *logString, size_t *logStringSize, OptixProgramGroup *programGroups)
logString is an optional buffer that contains compiler feedback and errors. This information is also ...
OptixResult optixAccelComputeMemoryUsage(OptixDeviceContext context, const OptixAccelBuildOptions *accelOptions, const OptixBuildInput *buildInputs, unsigned int numBuildInputs, OptixAccelBufferSizes *bufferSizes)
OptixResult optixDenoiserComputeAverageColor(OptixDenoiser denoiser, CUstream stream, const OptixImage2D *inputImage, CUdeviceptr outputAverageColor, CUdeviceptr scratch, size_t scratchSizeInBytes)
Compute average logarithmic for each of the first three channels for the given image....
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)
OptixResult optixModuleGetCompilationState(OptixModule module, OptixModuleCompileState *state)
When creating a module with tasks, the current state of the module can be queried using this function...
OptixResult optixDisplacementMicromapArrayBuild(OptixDeviceContext context, CUstream stream, const OptixDisplacementMicromapArrayBuildInput *buildInput, const OptixMicromapBuffers *buffers)
FIXME Construct an array of Displacement Micromap (DMMs).
OptixResult optixDenoiserComputeIntensity(OptixDenoiser denoiser, CUstream stream, const OptixImage2D *inputImage, CUdeviceptr outputIntensity, CUdeviceptr scratch, size_t scratchSizeInBytes)
Computes the logarithmic average intensity of the given image. The returned value 'outputIntensity' i...
OptixResult optixCheckRelocationCompatibility(OptixDeviceContext context, const OptixRelocationInfo *info, int *compatible)
Checks if an optix data structure built using another OptixDeviceContext (that was used to fill in 'i...
OptixResult optixDeviceContextSetCacheDatabaseSizes(OptixDeviceContext context, size_t lowWaterMark, size_t highWaterMark)
Sets the low and high water marks for disk cache garbage collection.
OptixResult optixAccelCompact(OptixDeviceContext context, CUstream stream, OptixTraversableHandle inputHandle, CUdeviceptr outputBuffer, size_t outputBufferSizeInBytes, OptixTraversableHandle *outputHandle)
After building an acceleration structure, it can be copied in a compacted form to reduce memory....
OptixResult optixModuleCreate(OptixDeviceContext context, const OptixModuleCompileOptions *moduleCompileOptions, const OptixPipelineCompileOptions *pipelineCompileOptions, const char *input, size_t inputSize, char *logString, size_t *logStringSize, OptixModule *module)
Compiling programs into a module. These programs can be passed in as either PTX or OptiX-IR.
OptixResult optixDeviceContextCreate(CUcontext fromContext, const OptixDeviceContextOptions *options, OptixDeviceContext *context)
Create a device context associated with the CUDA context specified with 'fromContext'.
OptixResult optixModuleDestroy(OptixModule module)
Call for OptixModule objects created with optixModuleCreate and optixModuleDeserialize.
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)
Invokes denoiser on a set of input data and produces at least one output image. State memory must be ...
OptixResult optixPipelineSetStackSize(OptixPipeline pipeline, unsigned int directCallableStackSizeFromTraversal, unsigned int directCallableStackSizeFromState, unsigned int continuationStackSize, unsigned int maxTraversableGraphDepth)
Sets the stack sizes for a pipeline.
OptixResult optixOpacityMicromapArrayRelocate(OptixDeviceContext context, CUstream stream, const OptixRelocationInfo *info, CUdeviceptr targetOpacityMicromapArray, size_t targetOpacityMicromapArraySizeInBytes)
optixOpacityMicromapArrayRelocate is called to update the opacity micromap array after it has been re...
OptixResult optixAccelEmitProperty(OptixDeviceContext context, CUstream stream, OptixTraversableHandle handle, const OptixAccelEmitDesc *emittedProperty)
Emit a single property after an acceleration structure was built. The result buffer of the ' emittedP...
OptixResult optixTaskExecute(OptixTask task, OptixTask *additionalTasks, unsigned int maxNumAdditionalTasks, unsigned int *numAdditionalTasksCreated)
Each OptixTask should be executed with optixTaskExecute(). If additional parallel work is found,...
OptixResult optixProgramGroupDestroy(OptixProgramGroup programGroup)
Thread safety: A program group must not be destroyed while it is still in use by concurrent API calls...
static void * optixLoadWindowsDllFromName(const char *optixDllName)
Definition: optix_stubs.h:68
static void * optixLoadWindowsDll()
Definition: optix_stubs.h:186
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
const char *(* optixGetErrorName)(OptixResult result)
See optixGetErrorName().
Definition: optix_function_table.h:61
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
const char *(* optixGetErrorString)(OptixResult result)
See optixGetErrorString().
Definition: optix_function_table.h:64
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