Alternative Upload geometry data in parallel to multiple GPUs using the "Multi-Device" #107552
|
@ -168,9 +168,24 @@ protected:
|
|||
}
|
||||
virtual BVHLayoutMask get_bvh_layout_mask(uint kernel_features) const = 0;
|
||||
|
||||
virtual BVHLayout get_bvh_layout(Device *device, BVHLayout layout) {
|
||||
BVHLayout get_bvh_layout(Device *device, BVHLayout layout)
|
||||
{
|
||||
if (layout == BVH_LAYOUT_MULTI_OPTIX)
|
||||
layout = BVH_LAYOUT_OPTIX;
|
||||
else if (layout == BVH_LAYOUT_MULTI_METAL)
|
||||
layout = BVH_LAYOUT_METAL;
|
||||
else if (layout == BVH_LAYOUT_MULTI_HIPRT)
|
||||
layout = BVH_LAYOUT_HIPRT;
|
||||
else if (layout == BVH_LAYOUT_MULTI_OPTIX_EMBREE)
|
||||
layout = device->info.type == DEVICE_OPTIX ? BVH_LAYOUT_OPTIX : BVH_LAYOUT_EMBREE;
|
||||
else if (layout == BVH_LAYOUT_MULTI_METAL_EMBREE)
|
||||
layout = device->info.type == DEVICE_METAL ? BVH_LAYOUT_METAL : BVH_LAYOUT_EMBREE;
|
||||
else if (layout == BVH_LAYOUT_MULTI_HIPRT_EMBREE)
|
||||
layout = device->info.type == DEVICE_HIPRT ? BVH_LAYOUT_HIPRT : BVH_LAYOUT_EMBREE;
|
||||
|
||||
return layout;
|
||||
}
|
||||
|
||||
/* statistics */
|
||||
Stats &stats;
|
||||
Profiler &profiler;
|
||||
|
|
|
@ -199,24 +199,6 @@ class MultiDevice : public Device {
|
|||
return true;
|
||||
}
|
||||
|
||||
BVHLayout get_bvh_layout(Device *device, BVHLayout bvh_layout) override
|
||||
{
|
||||
if (bvh_layout == BVH_LAYOUT_MULTI_OPTIX)
|
||||
bvh_layout = BVH_LAYOUT_OPTIX;
|
||||
else if (bvh_layout == BVH_LAYOUT_MULTI_METAL)
|
||||
bvh_layout = BVH_LAYOUT_METAL;
|
||||
else if (bvh_layout == BVH_LAYOUT_MULTI_HIPRT)
|
||||
bvh_layout = BVH_LAYOUT_HIPRT;
|
||||
else if (bvh_layout == BVH_LAYOUT_MULTI_OPTIX_EMBREE)
|
||||
bvh_layout = device->info.type == DEVICE_OPTIX ? BVH_LAYOUT_OPTIX : BVH_LAYOUT_EMBREE;
|
||||
else if (bvh_layout == BVH_LAYOUT_MULTI_METAL_EMBREE)
|
||||
bvh_layout = device->info.type == DEVICE_METAL ? BVH_LAYOUT_METAL : BVH_LAYOUT_EMBREE;
|
||||
else if (bvh_layout == BVH_LAYOUT_MULTI_HIPRT_EMBREE)
|
||||
bvh_layout = device->info.type == DEVICE_HIPRT ? BVH_LAYOUT_HIPRT : BVH_LAYOUT_EMBREE;
|
||||
|
||||
return bvh_layout;
|
||||
}
|
||||
|
||||
void build_bvh(BVH *bvh, DeviceScene *dscene, Progress &progress, bool refit) override
|
||||
{
|
||||
/* Try to build and share a single acceleration structure, if possible */
|
||||
|
|
Loading…
Reference in New Issue