14# ifdef WITH_HIP_DYNLOAD
17# include <hiprt/hiprt_types.h>
29class HIPRTDevice :
public HIPDevice {
36 ~HIPRTDevice()
override;
37 unique_ptr<DeviceQueue> gpu_queue_create()
override;
38 string compile_kernel_get_common_cflags(
const uint kernel_features)
override;
39 string compile_kernel(
const uint kernel_features,
41 const char *base =
"hiprt")
override;
43 bool load_kernels(
const uint kernel_features)
override;
45 void const_copy_to(
const char *
name,
void *host,
const size_t size)
override;
49 hiprtContext get_hiprt_context()
54 hiprtGlobalStackBuffer global_stack_buffer;
57 enum Filter_Function { Closest = 0, Shadows,
Local,
Volume, Max_Intersect_Filter_Function };
58 enum Primitive_Type {
Triangle = 0,
Curve, Motion_Triangle,
Point, Max_Primitive_Type };
60 hiprtGeometryBuildInput prepare_triangle_blas(BVHHIPRT *bvh,
Mesh *
mesh);
61 hiprtGeometryBuildInput prepare_curve_blas(BVHHIPRT *bvh,
Hair *hair);
62 hiprtGeometryBuildInput prepare_point_blas(BVHHIPRT *bvh,
PointCloud *pointcloud);
63 void build_blas(BVHHIPRT *bvh,
Geometry *geom, hiprtBuildOptions
options);
64 hiprtScene build_tlas(BVHHIPRT *bvh,
69 hiprtContext hiprt_context;
71 hiprtFuncTable functions_table;
74 size_t scratch_buffer_size;
79 bool use_motion_blur =
false;
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void refit(btStridingMeshInterface *triangles, const btVector3 &aabbMin, const btVector3 &aabbMax)
CCL_NAMESPACE_BEGIN struct Options options
#define CCL_NAMESPACE_END