KR
Size: a a a
KR
DS
type OneBufferSetOf<T> = OneBufferSet<Arc<DeviceLocalBuffer<[T]>>>;
type MutableOneBufferSet<T> = Mutable<usize, OneBufferSetOf<T>>;
pub struct Factories {
divide_factory: DivideWorkgroupsCommandFactory,
trace_rays_factory: TraceRaysToLightCommandFactory,
lights_factory: LightsDiffuseCommandFactory,
trace_mirrors_factory: ReflectFromMirrorsCommandFactory,
copy_factory: CopyFromBufferToImageCommandFactory,
make_gi_rays_factory: MakeGiRaysCommandFactory,
lights_gi_factory: LightsGiCommandFactory
}
pub struct Sets {
intersections_set: MutableOneBufferSet<LightRay>,
reflects_intersections_set: MutableOneBufferSet<[IntersectionUniform]>,
image_buffer_set: MutableOneBufferSet<[u32; 4]>,
gi_intersections_set: MutableOneBufferSet<IntersectionUniform>,
gi_thetas_set: MutableOneBufferSet<f32>
}
pub struct LightningV2CommandFactory {
factories: Factories,
sets: Sets,
workgroups: OnceCell<[OneBufferSetOf<DispatchIndirectCommand>; 3]>,
samples_per_bounce: u32,
}
DS
DS
DS
KR
V
V
KR
H
V
H
V
DS
KR
V
H
V
H
H