summarylogtreecommitdiffstats
path: root/optix.patch
blob: 4c5ee09cbc372793be6690281b511642f3969200 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
diff --git a/moonray/moonray/lib/rendering/rt/gpu/GPUAcceleratorImpl.cc b/moonray/moonray/lib/rendering/rt/gpu/GPUAcceleratorImpl.cc
index 6e6820a..90638d0 100644
--- a/moonray/moonray/lib/rendering/rt/gpu/GPUAcceleratorImpl.cc
+++ b/moonray/moonray/lib/rendering/rt/gpu/GPUAcceleratorImpl.cc
@@ -1006,16 +1006,6 @@ GPUAcceleratorImpl::GPUAcceleratorImpl(const scene_rdl2::rdl2::Layer *layer,

     scene_rdl2::logging::Logger::info("GPU: Creating pipeline");

-    if (!createOptixPipeline(mContext,
-                             pipelineCompileOptions,
-                             { 1, // maxTraceDepth
-                               OPTIX_COMPILE_DEBUG_LEVEL_NONE },
-                             mProgramGroups,
-                             &mPipeline,
-                             errorMsg)) {
-        return;
-    }
-
     scene_rdl2::logging::Logger::info("GPU: Creating traversables");

     std::string buildErrorMsg;
diff --git a/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc b/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc
index 0f0162c..b8b4d6b 100644
--- a/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc
+++ b/moonray/moonray/lib/rendering/rt/gpu/GPUPrimitiveGroup.cc
@@ -66,7 +66,6 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
         oinstance.instanceId = 0;
         oinstance.visibilityMask = 255;
         oinstance.sbtOffset = mSBTOffset;
-        oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
         oinstance.traversableHandle = mTrianglesGAS;
         instances.push_back(oinstance);
     }
@@ -87,7 +86,6 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
         oinstance.instanceId = 0;
         oinstance.visibilityMask = 255;
         oinstance.sbtOffset = mSBTOffset + mTriMeshes.size();
-        oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
         oinstance.traversableHandle = mTrianglesMBGAS;
         instances.push_back(oinstance);
     }
@@ -108,7 +106,6 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
         oinstance.instanceId = 0;
         oinstance.visibilityMask = 255;
         oinstance.sbtOffset = mSBTOffset + mTriMeshes.size() + mTriMeshesMB.size();
-        oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
         oinstance.traversableHandle = mRoundCurvesGAS;
         instances.push_back(oinstance);
     }
@@ -129,7 +126,6 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
         oinstance.instanceId = 0;
         oinstance.visibilityMask = 255;
         oinstance.sbtOffset = mSBTOffset + mTriMeshes.size() + mTriMeshesMB.size() + mRoundCurves.size();
-        oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
         oinstance.traversableHandle = mRoundCurvesMBGAS;
         instances.push_back(oinstance);
     }
@@ -151,7 +147,6 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
         oinstance.visibilityMask = 255;
         oinstance.sbtOffset = mSBTOffset + mTriMeshes.size() + mTriMeshesMB.size() +
                                            mRoundCurves.size() + mRoundCurvesMB.size();
-        oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
         oinstance.traversableHandle = mCustomPrimitivesGAS;
         instances.push_back(oinstance);

@@ -185,7 +180,6 @@ GPUPrimitiveGroup::build(CUstream cudaStream,
                 // The xform is specified in the mMMTTraversable instead.  The child
                 // node is the MatrixMotionTransform of the instance, which itself
                 // has the group's top level IAS node as its child.
-                oinstance.flags = OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM;
                 GPUXform::identityXform().toOptixTransform(oinstance.transform);
                 oinstance.traversableHandle = mInstances[i]->mMMTTraversable;
             }
diff --git a/moonray/moonray/lib/rendering/rt/gpu/GPUUtils.cc b/moonray/moonray/lib/rendering/rt/gpu/GPUUtils.cc
index 8ed5ee0..9564ae5 100644
--- a/moonray/moonray/lib/rendering/rt/gpu/GPUUtils.cc
+++ b/moonray/moonray/lib/rendering/rt/gpu/GPUUtils.cc
@@ -135,7 +135,7 @@ createOptixModule(OptixDeviceContext context,

     char logString[MAX_LOGSTRING_SIZE];
     size_t logStringSize = sizeof(logString);
-    if (optixModuleCreateFromPTX(context,
+    if (optixModuleCreate(context,
                                  &moduleCompileOptions,
                                  &pipelineCompileOptions,
                                  ptx.c_str(),
@@ -293,7 +293,7 @@ createOptixPipeline(OptixDeviceContext context,

     OptixStackSizes stackSizes = {};
     for (auto pg : pgs) {
-        if (optixUtilAccumulateStackSizes(pg, &stackSizes) != OPTIX_SUCCESS) {
+        if (optixUtilAccumulateStackSizes(pg, &stackSizes, *pipeline) != OPTIX_SUCCESS) {
             optixPipelineDestroy(*pipeline);
             *errorMsg = "Unable to accumulate Optix stack sizes.";
             return false;

diff --git a/moonray/mcrt_denoise/lib/denoiser/OptixDenoiserImpl.cc b/moonray/mcrt_denoise/lib/denoiser/OptixDenoiserImpl.cc
index e9b4302..57f2fba 100644
--- a/moonray/mcrt_denoise/lib/denoiser/OptixDenoiserImpl.cc
+++ b/moonray/mcrt_denoise/lib/denoiser/OptixDenoiserImpl.cc
@@ -107,7 +107,7 @@ OptixDenoiserImpl::OptixDenoiserImpl(int width,
     }
 
     mDenoiserParams = {};                 // zero initialize
-    mDenoiserParams.denoiseAlpha = 0;     // don't denoise alpha
+    mDenoiserParams.denoiseAlpha = OPTIX_DENOISER_ALPHA_MODE_COPY;     // don't denoise alpha
     mDenoiserParams.hdrIntensity = 0;     // optional average log intensity image of input image, 
                                           //  helps with very dark/bright images
     mDenoiserParams.blendFactor = 0.f;    // show the denoised image only