Skip to content

Commit f3328b5

Browse files
Fix build errors caused by optix-sys (#231)
Co-authored-by: Christian Legnitto <[email protected]>
1 parent afb147e commit f3328b5

File tree

5 files changed

+38
-34
lines changed

5 files changed

+38
-34
lines changed

crates/optix/src/acceleration.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ impl Accel {
221221
/// If this acceleration structure is copied multiple times, the same
222222
/// [`AccelRelocationInfo`] can also be used on all copies.
223223
pub fn get_relocation_info(&self, ctx: &DeviceContext) -> Result<AccelRelocationInfo> {
224-
let mut inner = optix_sys::OptixAccelRelocationInfo::default();
224+
let mut inner = optix_sys::OptixRelocationInfo::default();
225225
unsafe {
226226
Ok(optix_call!(optixAccelGetRelocationInfo(
227227
ctx.raw,
@@ -828,7 +828,7 @@ impl AccelBuildOptions {
828828
#[repr(transparent)]
829829
pub struct AccelRelocationInfo {
830830
#[allow(dead_code)]
831-
inner: optix_sys::OptixAccelRelocationInfo,
831+
inner: optix_sys::OptixRelocationInfo,
832832
}
833833

834834
/// Struct used for OptiX to communicate the necessary buffer sizes for accel
@@ -1096,6 +1096,7 @@ impl BuildInput for CurveArray<'_, '_, '_> {
10961096
indexStrideInBytes: self.index_stride_in_bytes,
10971097
flag: self.flags as u32,
10981098
primitiveIndexOffset: self.primitive_index_offset,
1099+
endcapFlags: optix_sys::OptixCurveEndcapFlags::OPTIX_CURVE_ENDCAP_DEFAULT as u32,
10991100
};
11001101
};
11011102
v
@@ -1328,6 +1329,8 @@ impl<V: Vertex> BuildInput for TriangleArray<'_, '_, V> {
13281329
} else {
13291330
optix_sys::OptixTransformFormat::OPTIX_TRANSFORM_FORMAT_NONE
13301331
},
1332+
opacityMicromap: optix_sys::OptixBuildInputOpacityMicromap::default(),
1333+
displacementMicromap: optix_sys::OptixBuildInputDisplacementMicromap::default(),
13311334
};
13321335
};
13331336
v
@@ -1414,6 +1417,8 @@ impl<V: Vertex, I: IndexTriple> BuildInput for IndexedTriangleArray<'_, '_, V, I
14141417
} else {
14151418
optix_sys::OptixTransformFormat::OPTIX_TRANSFORM_FORMAT_NONE
14161419
},
1420+
opacityMicromap: optix_sys::OptixBuildInputOpacityMicromap::default(),
1421+
displacementMicromap: optix_sys::OptixBuildInputDisplacementMicromap::default(),
14171422
};
14181423
};
14191424
v
@@ -1563,7 +1568,8 @@ bitflags::bitflags! {
15631568
const FLIP_TRIANGLE_FACING = optix_sys::OptixInstanceFlags::OPTIX_INSTANCE_FLAG_FLIP_TRIANGLE_FACING as i32;
15641569
const DISABLE_ANYHIT = optix_sys::OptixInstanceFlags::OPTIX_INSTANCE_FLAG_DISABLE_ANYHIT as i32;
15651570
const ENFORCE_ANYHIT = optix_sys::OptixInstanceFlags::OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT as i32;
1566-
const DISABLE_TRANSFORM = optix_sys::OptixInstanceFlags::OPTIX_INSTANCE_FLAG_DISABLE_TRANSFORM as i32;
1571+
const FORCE_OPACITY_MICROMAP_2_STATE = optix_sys::OptixInstanceFlags::OPTIX_INSTANCE_FLAG_FORCE_OPACITY_MICROMAP_2_STATE as i32;
1572+
const DISABLE_OPACITY_MICROMAPS = optix_sys::OptixInstanceFlags::OPTIX_INSTANCE_FLAG_DISABLE_OPACITY_MICROMAPS as i32;
15671573
}
15681574
}
15691575

@@ -1656,10 +1662,7 @@ impl BuildInput for InstanceArray<'_, '_> {
16561662
*v.__bindgen_anon_1.instanceArray.as_mut() = optix_sys::OptixBuildInputInstanceArray {
16571663
instances: self.instances.as_device_ptr().as_raw(),
16581664
numInstances: self.instances.len() as u32,
1659-
#[cfg(optix_build_input_instance_array_aabbs)]
1660-
aabbs: 0,
1661-
#[cfg(optix_build_input_instance_array_aabbs)]
1662-
numAabbs: 0,
1665+
instanceStride: 0,
16631666
};
16641667
};
16651668
v
@@ -1692,10 +1695,7 @@ impl BuildInput for InstancePointerArray<'_> {
16921695
*v.__bindgen_anon_1.instanceArray.as_mut() = optix_sys::OptixBuildInputInstanceArray {
16931696
instances: self.instances.as_device_ptr().as_raw(),
16941697
numInstances: self.instances.len() as u32,
1695-
#[cfg(optix_build_input_instance_array_aabbs)]
1696-
aabbs: 0,
1697-
#[cfg(optix_build_input_instance_array_aabbs)]
1698-
numAabbs: 0,
1698+
instanceStride: 0,
16991699
};
17001700
};
17011701
v

crates/optix/src/denoiser.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ impl DenoiserOptions {
7373
optix_sys::OptixDenoiserOptions {
7474
guideAlbedo: self.guide_albedo as u32,
7575
guideNormal: self.guide_normal as u32,
76+
denoiseAlpha: optix_sys::OptixDenoiserAlphaMode::OPTIX_DENOISER_ALPHA_MODE_COPY,
7677
}
7778
}
7879
}
@@ -376,6 +377,7 @@ impl Denoiser {
376377
out.data = out_buffer.as_device_ptr().as_raw();
377378

378379
let layer = optix_sys::OptixDenoiserLayer {
380+
type_: optix_sys::OptixDenoiserAOVType::OPTIX_DENOISER_AOV_TYPE_BEAUTY,
379381
input: input_image.to_raw(),
380382
previousOutput: null_optix_image(),
381383
output: out,
@@ -423,7 +425,6 @@ pub struct DenoiserParams<'a> {
423425
impl DenoiserParams<'_> {
424426
pub fn to_raw(self) -> optix_sys::OptixDenoiserParams {
425427
optix_sys::OptixDenoiserParams {
426-
denoiseAlpha: self.denoise_alpha as u32,
427428
hdrIntensity: self
428429
.hdr_intensity
429430
.map(|x| x.as_device_ptr().as_raw())
@@ -433,6 +434,7 @@ impl DenoiserParams<'_> {
433434
.map(|x| x.as_device_ptr().as_raw())
434435
.unwrap_or_default(),
435436
blendFactor: self.blend_factor,
437+
temporalModeUsePreviousLayers: 0,
436438
}
437439
}
438440
}
@@ -471,6 +473,9 @@ impl DenoiserGuideImages<'_> {
471473
.flow
472474
.map(|i| i.to_raw())
473475
.unwrap_or_else(null_optix_image),
476+
previousOutputInternalGuideLayer: null_optix_image(),
477+
outputInternalGuideLayer: null_optix_image(),
478+
flowTrustworthiness: null_optix_image(),
474479
}
475480
}
476481
}

crates/optix/src/error.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ impl OptixError {
7070
InvalidDeviceContext => optix_sys::OptixResult::OPTIX_ERROR_INVALID_DEVICE_CONTEXT,
7171
CudaNotInitialized => optix_sys::OptixResult::OPTIX_ERROR_CUDA_NOT_INITIALIZED,
7272
ValidationFailure => optix_sys::OptixResult::OPTIX_ERROR_VALIDATION_FAILURE,
73-
InvalidPtx => optix_sys::OptixResult::OPTIX_ERROR_INVALID_PTX,
73+
InvalidPtx => optix_sys::OptixResult::OPTIX_ERROR_INVALID_INPUT,
7474
InvalidLaunchParameter => optix_sys::OptixResult::OPTIX_ERROR_INVALID_LAUNCH_PARAMETER,
7575
InvalidPayloadAccess => optix_sys::OptixResult::OPTIX_ERROR_INVALID_PAYLOAD_ACCESS,
7676
InvalidAttributeAccess => optix_sys::OptixResult::OPTIX_ERROR_INVALID_ATTRIBUTE_ACCESS,
@@ -88,7 +88,7 @@ impl OptixError {
8888
InternalCompilerError => optix_sys::OptixResult::OPTIX_ERROR_INTERNAL_COMPILER_ERROR,
8989
DenoiserModelNotSet => optix_sys::OptixResult::OPTIX_ERROR_DENOISER_MODEL_NOT_SET,
9090
DenoiserNotInitialized => optix_sys::OptixResult::OPTIX_ERROR_DENOISER_NOT_INITIALIZED,
91-
AccelNotCompatible => optix_sys::OptixResult::OPTIX_ERROR_ACCEL_NOT_COMPATIBLE,
91+
AccelNotCompatible => optix_sys::OptixResult::OPTIX_ERROR_NOT_COMPATIBLE,
9292
NotSupported => optix_sys::OptixResult::OPTIX_ERROR_NOT_SUPPORTED,
9393
UnsupportedAbiVersion => optix_sys::OptixResult::OPTIX_ERROR_UNSUPPORTED_ABI_VERSION,
9494
FunctionTableSizeMismatch => {
@@ -165,7 +165,7 @@ impl ToResult for optix_sys::OptixResult {
165165
optix_sys::OptixResult::OPTIX_ERROR_INVALID_DEVICE_CONTEXT => InvalidDeviceContext,
166166
optix_sys::OptixResult::OPTIX_ERROR_CUDA_NOT_INITIALIZED => CudaNotInitialized,
167167
optix_sys::OptixResult::OPTIX_ERROR_VALIDATION_FAILURE => ValidationFailure,
168-
optix_sys::OptixResult::OPTIX_ERROR_INVALID_PTX => InvalidPtx,
168+
optix_sys::OptixResult::OPTIX_ERROR_INVALID_INPUT => InvalidPtx,
169169
optix_sys::OptixResult::OPTIX_ERROR_INVALID_LAUNCH_PARAMETER => InvalidLaunchParameter,
170170
optix_sys::OptixResult::OPTIX_ERROR_INVALID_PAYLOAD_ACCESS => InvalidPayloadAccess,
171171
optix_sys::OptixResult::OPTIX_ERROR_INVALID_ATTRIBUTE_ACCESS => InvalidAttributeAccess,
@@ -183,7 +183,7 @@ impl ToResult for optix_sys::OptixResult {
183183
optix_sys::OptixResult::OPTIX_ERROR_INTERNAL_COMPILER_ERROR => InternalCompilerError,
184184
optix_sys::OptixResult::OPTIX_ERROR_DENOISER_MODEL_NOT_SET => DenoiserModelNotSet,
185185
optix_sys::OptixResult::OPTIX_ERROR_DENOISER_NOT_INITIALIZED => DenoiserNotInitialized,
186-
optix_sys::OptixResult::OPTIX_ERROR_ACCEL_NOT_COMPATIBLE => AccelNotCompatible,
186+
optix_sys::OptixResult::OPTIX_ERROR_NOT_COMPATIBLE => AccelNotCompatible,
187187
optix_sys::OptixResult::OPTIX_ERROR_NOT_SUPPORTED => NotSupported,
188188
optix_sys::OptixResult::OPTIX_ERROR_UNSUPPORTED_ABI_VERSION => UnsupportedAbiVersion,
189189
optix_sys::OptixResult::OPTIX_ERROR_FUNCTION_TABLE_SIZE_MISMATCH => {

crates/optix/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,10 @@ pub fn optix_is_initialized() -> bool {
100100
}
101101

102102
extern "C" {
103-
pub(crate) static g_optixFunctionTable: optix_sys::OptixFunctionTable;
103+
pub(crate) static g_optixFunctionTable_105: optix_sys::OptixFunctionTable;
104104
}
105+
#[allow(non_upper_case_globals)]
106+
pub(crate) use g_optixFunctionTable_105 as g_optixFunctionTable;
105107

106108
/// Call a raw OptiX sys function, making sure that OptiX is initialized. Returning
107109
/// an OptixNotInitialized error if it is not initialized. See [`optix_is_initialized`].

crates/optix/src/pipeline.rs

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ impl From<PipelineLinkOptions> for optix_sys::OptixPipelineLinkOptions {
2020
fn from(o: PipelineLinkOptions) -> Self {
2121
optix_sys::OptixPipelineLinkOptions {
2222
maxTraceDepth: o.max_trace_depth,
23-
debugLevel: o.debug_level as _,
2423
}
2524
}
2625
}
@@ -143,7 +142,7 @@ pub enum CompileOptimizationLevel {
143142
pub enum CompileDebugLevel {
144143
#[default]
145144
None = optix_sys::OptixCompileDebugLevel::OPTIX_COMPILE_DEBUG_LEVEL_NONE as i32,
146-
LineInfo = optix_sys::OptixCompileDebugLevel::OPTIX_COMPILE_DEBUG_LEVEL_LINEINFO as i32,
145+
LineInfo = optix_sys::OptixCompileDebugLevel::OPTIX_COMPILE_DEBUG_LEVEL_MINIMAL as i32,
147146
Full = optix_sys::OptixCompileDebugLevel::OPTIX_COMPILE_DEBUG_LEVEL_FULL as i32,
148147
}
149148

@@ -165,12 +164,16 @@ impl From<&ModuleCompileOptions> for optix_sys::OptixModuleCompileOptions {
165164
debugLevel: o.debug_level as _,
166165
boundValues: std::ptr::null(),
167166
numBoundValues: 0,
167+
numPayloadTypes: 0,
168+
payloadTypes: std::ptr::null(),
168169
}
169170
} else {
170171
optix_sys::OptixModuleCompileOptions {
171172
maxRegisterCount: o.max_register_count,
172173
optLevel: o.opt_level as _,
173174
debugLevel: o.debug_level as _,
175+
numPayloadTypes: 0,
176+
payloadTypes: std::ptr::null(),
174177
}
175178
}
176179
}
@@ -193,7 +196,6 @@ bitflags::bitflags! {
193196
const STACK_OVERFLOW = optix_sys::OptixExceptionFlags::OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW as i32;
194197
const TRACE_DEPTH = optix_sys::OptixExceptionFlags::OPTIX_EXCEPTION_FLAG_TRACE_DEPTH as i32;
195198
const USER = optix_sys::OptixExceptionFlags::OPTIX_EXCEPTION_FLAG_USER as i32;
196-
const DEBUG = optix_sys::OptixExceptionFlags::OPTIX_EXCEPTION_FLAG_DEBUG as i32;
197199
}
198200
}
199201

@@ -260,10 +262,8 @@ impl PipelineCompileOptions {
260262
std::ptr::null()
261263
},
262264
usesPrimitiveTypeFlags: self.primitive_type_flags.bits() as u32,
263-
#[cfg(optix_pipeline_compile_options_reserved)]
264-
reserved: 0,
265-
#[cfg(optix_pipeline_compile_options_reserved)]
266-
reserved2: 0,
265+
allowOpacityMicromaps: 0,
266+
allowClusteredGeometry: 0,
267267
}
268268
}
269269

@@ -317,7 +317,7 @@ impl Module {
317317

318318
let mut raw = std::ptr::null_mut();
319319
let res = unsafe {
320-
optix_call!(optixModuleCreateFromPTX(
320+
optix_call!(optixModuleCreate(
321321
ctx.raw,
322322
&mopt as *const _,
323323
&popt,
@@ -363,6 +363,8 @@ impl Module {
363363
PrimitiveType::Triangle => OPTIX_PRIMITIVE_TYPE_TRIANGLE,
364364
},
365365
usesMotionBlur: if uses_motion_blur { 1 } else { 0 },
366+
buildFlags: 0,
367+
curveEndcapFlags: 0,
366368
};
367369

368370
let mut raw = std::ptr::null_mut();
@@ -501,7 +503,8 @@ impl ProgramGroup {
501503
unsafe {
502504
Ok(optix_call!(optixProgramGroupGetStackSize(
503505
self.raw,
504-
&mut stack_sizes as *mut _ as *mut _
506+
&mut stack_sizes as *mut _ as *mut _,
507+
std::ptr::null_mut()
505508
))
506509
.map(|_| stack_sizes)?)
507510
}
@@ -523,10 +526,7 @@ impl ProgramGroup {
523526
desc: &[ProgramGroupDesc],
524527
) -> Result<(Vec<ProgramGroup>, String)> {
525528
let pg_options = optix_sys::OptixProgramGroupOptions {
526-
#[cfg(optix_program_group_options_reserved)]
527-
reserved: 0,
528-
#[cfg(not(optix_program_group_options_reserved))]
529-
placeholder: 0,
529+
payloadType: std::ptr::null(),
530530
};
531531

532532
let mut log = [0u8; 4096];
@@ -569,10 +569,7 @@ impl ProgramGroup {
569569
desc: &ProgramGroupDesc,
570570
) -> Result<(ProgramGroup, String)> {
571571
let pg_options = optix_sys::OptixProgramGroupOptions {
572-
#[cfg(optix_program_group_options_reserved)]
573-
reserved: 0,
574-
#[cfg(not(optix_program_group_options_reserved))]
575-
placeholder: 0,
572+
payloadType: std::ptr::null(),
576573
};
577574

578575
let mut log = [0u8; 4096];

0 commit comments

Comments
 (0)