+checkpoint: fix .ispc kernels for compilation with llc->ptx
This commit is contained in:
@@ -81,6 +81,9 @@ static inline void vnormalize(vec &v) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
static void
|
static void
|
||||||
ray_plane_intersect(Isect &isect, Ray &ray, const uniform Plane &plane) {
|
ray_plane_intersect(Isect &isect, Ray &ray, const uniform Plane &plane) {
|
||||||
float d = -dot(plane.p, plane.n);
|
float d = -dot(plane.p, plane.n);
|
||||||
@@ -123,6 +126,9 @@ ray_sphere_intersect(Isect &isect, Ray &ray, const uniform Sphere &sphere) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
static void
|
static void
|
||||||
orthoBasis(vec basis[3], vec n) {
|
orthoBasis(vec basis[3], vec n) {
|
||||||
basis[2] = n;
|
basis[2] = n;
|
||||||
@@ -146,6 +152,9 @@ orthoBasis(vec basis[3], vec n) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
static float
|
static float
|
||||||
ambient_occlusion(Isect &isect, const uniform Plane &plane, const uniform Sphere spheres[3],
|
ambient_occlusion(Isect &isect, const uniform Plane &plane, const uniform Sphere spheres[3],
|
||||||
RNGState &rngstate) {
|
RNGState &rngstate) {
|
||||||
|
|||||||
@@ -108,8 +108,8 @@ objs_gpu/%_ispc.h objs_gpu/%_ispc.bc: %.ispc
|
|||||||
objs_gpu/%_llvm_ispc.ptx: objs_gpu/%_ispc.bc
|
objs_gpu/%_llvm_ispc.ptx: objs_gpu/%_ispc.bc
|
||||||
$(LLC) $(LLC_FLAGS) -o $@ $<
|
$(LLC) $(LLC_FLAGS) -o $@ $<
|
||||||
objs_gpu/%_nvvm_ispc.ptx: objs_gpu/%_ispc.bc
|
objs_gpu/%_nvvm_ispc.ptx: objs_gpu/%_ispc.bc
|
||||||
$(LLVM32DIS) $< -o objs/$*_ispc-ll32.ll
|
$(LLVM32DIS) $< -o objs_gpu/$*_ispc-ll32.ll
|
||||||
$(PTXGEN) objs/$*_ispc-ll32.ll > $@
|
$(PTXGEN) objs_gpu/$*_ispc-ll32.ll > $@
|
||||||
|
|
||||||
# generate an object file from PTX
|
# generate an object file from PTX
|
||||||
objs_gpu/%_ispc.o: objs_gpu/%_ispc.ptx
|
objs_gpu/%_ispc.o: objs_gpu/%_ispc.ptx
|
||||||
|
|||||||
@@ -80,6 +80,9 @@ static inline float Dot(const float3 a, const float3 b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
static void generateRay(uniform const float raster2camera[4][4],
|
static void generateRay(uniform const float raster2camera[4][4],
|
||||||
uniform const float camera2world[4][4],
|
uniform const float camera2world[4][4],
|
||||||
float x, float y, Ray &ray) {
|
float x, float y, Ray &ray) {
|
||||||
@@ -116,6 +119,9 @@ static void generateRay(uniform const float raster2camera[4][4],
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
static bool_t BBoxIntersect(const uniform float bounds[2][3],
|
static bool_t BBoxIntersect(const uniform float bounds[2][3],
|
||||||
const Ray &ray) {
|
const Ray &ray) {
|
||||||
uniform float3 bounds0 = { bounds[0][0], bounds[0][1], bounds[0][2] };
|
uniform float3 bounds0 = { bounds[0][0], bounds[0][1], bounds[0][2] };
|
||||||
@@ -155,6 +161,9 @@ static bool_t BBoxIntersect(const uniform float bounds[2][3],
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
static bool_t TriIntersect(const uniform Triangle &tri, Ray &ray) {
|
static bool_t TriIntersect(const uniform Triangle &tri, Ray &ray) {
|
||||||
uniform float3 p0 = { tri.p[0][0], tri.p[0][1], tri.p[0][2] };
|
uniform float3 p0 = { tri.p[0][0], tri.p[0][1], tri.p[0][2] };
|
||||||
uniform float3 p1 = { tri.p[1][0], tri.p[1][1], tri.p[1][2] };
|
uniform float3 p1 = { tri.p[1][0], tri.p[1][1], tri.p[1][2] };
|
||||||
@@ -195,6 +204,9 @@ static bool_t TriIntersect(const uniform Triangle &tri, Ray &ray) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
bool_t
|
bool_t
|
||||||
BVHIntersect(const uniform LinearBVHNode nodes[],
|
BVHIntersect(const uniform LinearBVHNode nodes[],
|
||||||
const uniform Triangle tris[], Ray &r) {
|
const uniform Triangle tris[], Ray &r) {
|
||||||
@@ -253,6 +265,9 @@ BVHIntersect(const uniform LinearBVHNode nodes[],
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
inline
|
||||||
|
#endif
|
||||||
static void raytrace_tile(uniform int x0, uniform int x1,
|
static void raytrace_tile(uniform int x0, uniform int x1,
|
||||||
uniform int y0, uniform int y1,
|
uniform int y0, uniform int y1,
|
||||||
uniform int width, uniform int height,
|
uniform int width, uniform int height,
|
||||||
|
|||||||
Reference in New Issue
Block a user