14# ifdef WITH_HIP_DYNLOAD
17# include <hiprt/hiprt_types.h>
31class HIPRTDevice :
public HIPDevice {
34 virtual BVHLayoutMask get_bvh_layout_mask(
const uint kernel_features)
const override;
38 virtual ~HIPRTDevice();
39 virtual unique_ptr<DeviceQueue> gpu_queue_create()
override;
40 string compile_kernel_get_common_cflags(
const uint kernel_features)
override;
41 virtual string compile_kernel(
const uint kernel_features,
43 const char *base =
"hiprt")
override;
45 virtual bool load_kernels(
const uint kernel_features)
override;
47 virtual void const_copy_to(
const char *name,
void *host,
size_t size)
override;
51 hiprtContext get_hiprt_context()
56 hiprtGlobalStackBuffer global_stack_buffer;
59 enum Filter_Function { Closest = 0, Shadows,
Local,
Volume, Max_Intersect_Filter_Function };
60 enum Primitive_Type {
Triangle = 0,
Curve, Motion_Triangle, Point, Max_Primitive_Type };
62 hiprtGeometryBuildInput prepare_triangle_blas(BVHHIPRT *bvh,
Mesh *mesh);
63 hiprtGeometryBuildInput prepare_curve_blas(BVHHIPRT *bvh,
Hair *hair);
64 hiprtGeometryBuildInput prepare_point_blas(BVHHIPRT *bvh,
PointCloud *pointcloud);
65 void build_blas(BVHHIPRT *bvh,
Geometry *geom, hiprtBuildOptions
options);
66 hiprtScene build_tlas(BVHHIPRT *bvh,
71 hiprtContext hiprt_context;
73 hiprtFuncTable functions_table;
76 size_t scratch_buffer_size;
void refit(btStridingMeshInterface *triangles, const btVector3 &aabbMin, const btVector3 &aabbMax)
CCL_NAMESPACE_BEGIN struct Options options
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN typedef std::mutex thread_mutex