Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/device/optix/device_impl.cpp
| Show All 33 Lines | |||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| // A minimal copy of functionality `optix_denoiser_tiling.h` which allows to fix integer overflow | // A minimal copy of functionality `optix_denoiser_tiling.h` which allows to fix integer overflow | ||||
| // issues without bumping SDK or driver requirement. | // issues without bumping SDK or driver requirement. | ||||
| // | // | ||||
| // The original code is Copyright NVIDIA Corporation, BSD-3-Clause. | // The original code is Copyright NVIDIA Corporation, BSD-3-Clause. | ||||
| namespace { | namespace { | ||||
| # if OPTIX_ABI_VERSION >= 60 | |||||
| using ::optixUtilDenoiserInvokeTiled; | |||||
| # else | |||||
| static OptixResult optixUtilDenoiserSplitImage(const OptixImage2D &input, | static OptixResult optixUtilDenoiserSplitImage(const OptixImage2D &input, | ||||
| const OptixImage2D &output, | const OptixImage2D &output, | ||||
| unsigned int overlapWindowSizeInPixels, | unsigned int overlapWindowSizeInPixels, | ||||
| unsigned int tileWidth, | unsigned int tileWidth, | ||||
| unsigned int tileHeight, | unsigned int tileHeight, | ||||
| std::vector<OptixUtilDenoiserImageTile> &tiles) | std::vector<OptixUtilDenoiserImageTile> &tiles) | ||||
| { | { | ||||
| if (tileWidth == 0 || tileHeight == 0) | if (tileWidth == 0 || tileHeight == 0) | ||||
| ▲ Show 20 Lines • Show All 160 Lines • ▼ Show 20 Lines | if (const OptixResult res = optixDenoiserInvoke(denoiser, | ||||
| (tiles[0])[t].inputOffsetX, | (tiles[0])[t].inputOffsetX, | ||||
| (tiles[0])[t].inputOffsetY, | (tiles[0])[t].inputOffsetY, | ||||
| scratch, | scratch, | ||||
| scratchSizeInBytes)) | scratchSizeInBytes)) | ||||
| return res; | return res; | ||||
| } | } | ||||
| return OPTIX_SUCCESS; | return OPTIX_SUCCESS; | ||||
| } | } | ||||
| # endif | |||||
| # if OPTIX_ABI_VERSION >= 55 | # if OPTIX_ABI_VERSION >= 55 | ||||
| static void execute_optix_task(TaskPool &pool, OptixTask task, OptixResult &failure_reason) | static void execute_optix_task(TaskPool &pool, OptixTask task, OptixResult &failure_reason) | ||||
| { | { | ||||
| OptixTask additional_tasks[16]; | OptixTask additional_tasks[16]; | ||||
| unsigned int num_additional_tasks = 0; | unsigned int num_additional_tasks = 0; | ||||
| const OptixResult result = optixTaskExecute(task, additional_tasks, 16, &num_additional_tasks); | const OptixResult result = optixTaskExecute(task, additional_tasks, 16, &num_additional_tasks); | ||||
| ▲ Show 20 Lines • Show All 1,850 Lines • Show Last 20 Lines | |||||