Skip to content

Commit 3821c62

Browse files
committed
compile fixes for ISPC 1.8.1
1 parent fd7f530 commit 3821c62

File tree

5 files changed

+46
-33
lines changed

5 files changed

+46
-33
lines changed

embree_ispc/embree.ispc

+3-3
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,11 @@ void rtcSetVirtualGeometryBounds (uniform RTCGeometry* uniform geom, const unifo
107107

108108
void rtcSetVirtualGeometryIntersector (uniform RTCGeometry* uniform geom, const uniform int i, const uniform Intersector* uniform intersector) {
109109
#if defined (__SSE4__)
110-
rtcISPCSetVirtualGeometryIntersector4(geom, i, intersector);
110+
rtcISPCSetVirtualGeometryIntersector4((void* uniform)geom, i, (void* uniform)intersector);
111111
#elif defined (__AVX__)
112-
rtcISPCSetVirtualGeometryIntersector8(geom, i, intersector);
112+
rtcISPCSetVirtualGeometryIntersector8((void* uniform)geom, i, (void* uniform) intersector);
113113
#elif defined(__MIC__)
114-
rtcISPCSetVirtualGeometryIntersector16(geom, i, intersector);
114+
rtcISPCSetVirtualGeometryIntersector16((void* uniform)geom, i, (void* uniform)intersector);
115115
#else
116116
# error "Unsupported SIMD configuration."
117117
#endif

examples/renderer/device_ispc/framebuffers/framebuffer.ispc

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ void FrameBuffer__Constructor(uniform FrameBuffer* uniform this,
3232
RefCount__Constructor(&this->base,destructor);
3333
this->size.x = width;
3434
this->size.y = height;
35-
this->invSize.x = rcp(width);
36-
this->invSize.y = rcp(height);
35+
this->invSize.x = rcp((uniform float)width);
36+
this->invSize.y = rcp((uniform float)height);
3737
this->set = set;
3838
this->map = map;
3939
}

examples/renderer/device_ispc/renderers/pathtracer.ispc

+1-1
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ inline vec3f PathTracer__renderPixel(const uniform PathTracer* uniform this,
288288
LightPath lightPath; init_LightPath(lightPath,ray);
289289
L = add(L, PathTraceIntegrator_Li(this,screenSample,lightPath,scene,sample,numRays));
290290
}
291-
return mul(L, rcp(this->spp));
291+
return mul(L, rcp((float)this->spp));
292292
}
293293

294294
task void PathTracer__renderTile(uniform PathTracer* uniform this,

examples/renderer/device_ispc/shapes/trianglemesh.ispc

+26-14
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,18 @@ void TriangleMesh__extract(const uniform Shape* uniform _this,
104104

105105
vec3f lower = make_vec3f(+inf);
106106
vec3f upper = make_vec3f(-inf);
107-
foreach(j=0 ... this->numTriangles) {
108-
const vec4i tri = this->triangle[j];
107+
//foreach(j=0 ... this->numTriangles) {
108+
for(uniform int j=0; j<this->numTriangles; j++) {
109+
const uniform vec4i tri = this->triangle[j];
109110
triangles[numTriangles+j].v0 = numVertices+tri.x;
110111
triangles[numTriangles+j].v1 = numVertices+tri.y;
111112
triangles[numTriangles+j].v2 = numVertices+tri.z;
112113
triangles[numTriangles+j].id0 = id0;
113114
triangles[numTriangles+j].id1 = j;
114115
}
115-
foreach(j=0 ... this->numPositions) {
116-
const vec3f p = make_vec3f(this->position[j]);
116+
//foreach(j=0 ... this->numPositions) {
117+
for(uniform int j=0; j<this->numPositions; j++) {
118+
const uniform vec3f p = make_vec3f(this->position[j]);
117119
vertices[numVertices+j].x = p.x;
118120
vertices[numVertices+j].y = p.y;
119121
vertices[numVertices+j].z = p.z;
@@ -162,32 +164,37 @@ void* uniform TriangleMesh__transform(const uniform Shape* uniform _this, const
162164

163165
if (this->position) {
164166
mesh->position = uniform new uniform vec3fa[numVertices];
165-
foreach(i=0 ... numVertices)
167+
//foreach(i=0 ... numVertices)
168+
for(uniform int i=0; i<numVertices; i++)
166169
mesh->position[i] = make_vec3fa(xfmPoint(xfm,make_vec3f(this->position[i])));
167170
}
168171

169172
if (this->motion) {
170173
mesh->motion = uniform new uniform vec3fa[numVertices];
171-
foreach(i=0 ... numVertices)
174+
//foreach(i=0 ... numVertices)
175+
for(uniform int i=0; i<numVertices; i++)
172176
mesh->motion[i] = make_vec3fa(xfmVector(xfm,make_vec3f(this->motion[i])));
173177
}
174178

175179
if (this->normal) {
176180
uniform LinearSpace3f normal2world = transposed(rcp(xfm.l));
177181
mesh->normal = uniform new uniform vec3fa[numVertices];
178-
foreach(i=0 ... numVertices)
182+
//foreach(i=0 ... numVertices)
183+
for(uniform int i=0; i<numVertices; i++)
179184
mesh->normal[i] = make_vec3fa(xfmVector(normal2world,make_vec3f(this->normal[i])));
180185
}
181186

182187
if (this->texcoord) {
183188
mesh->texcoord = uniform new uniform vec2f[numVertices];
184-
foreach(i=0 ... numVertices)
189+
//foreach(i=0 ... numVertices)
190+
for(uniform int i=0; i<numVertices; i++)
185191
mesh->texcoord[i] = this->texcoord[i];
186192
}
187193

188194
if (this->triangle) {
189195
mesh->triangle = uniform new uniform vec4i[numTriangles];
190-
foreach(i=0 ... numTriangles)
196+
//foreach(i=0 ... numTriangles)
197+
for(uniform int i=0; i<numTriangles; i++)
191198
mesh->triangle[i] = this->triangle[i];
192199
}
193200
return mesh;
@@ -220,31 +227,36 @@ void TriangleMesh__Constructor(uniform TriangleMesh* uniform this,
220227

221228
if (position) {
222229
this->position = uniform new uniform vec3fa[numVertices];
223-
foreach(i=0 ... numVertices)
230+
//foreach(i=0 ... numVertices)
231+
for(uniform int i=0; i<numVertices; i++)
224232
this->position[i] = position[i];
225233
}
226234

227235
if (motion) {
228236
this->motion = uniform new uniform vec3fa[numVertices];
229-
foreach(i=0 ... numVertices)
237+
//foreach(i=0 ... numVertices)
238+
for(uniform int i=0; i<numVertices; i++)
230239
this->motion[i] = motion[i];
231240
}
232241

233242
if (normal) {
234243
this->normal = uniform new uniform vec3fa[numVertices];
235-
foreach(i=0 ... numVertices)
244+
//foreach(i=0 ... numVertices)
245+
for(uniform int i=0; i<numVertices; i++)
236246
this->normal[i] = normal[i];
237247
}
238248

239249
if (texcoord) {
240250
this->texcoord = uniform new uniform vec2f[numVertices];
241-
foreach(i=0 ... numVertices)
251+
//foreach(i=0 ... numVertices)
252+
for(uniform int i=0; i<numVertices; i++)
242253
this->texcoord[i] = texcoord[i];
243254
}
244255

245256
if (triangle) {
246257
this->triangle = uniform new uniform vec4i[numTriangles];
247-
foreach(i=0 ... numTriangles)
258+
//foreach(i=0 ... numTriangles)
259+
for(uniform int i=0; i<numTriangles; i++)
248260
this->triangle[i] = triangle[i];
249261
}
250262
}

examples/renderer/device_singleray/renderers/debugrenderer.cpp

+14-13
Original file line numberDiff line numberDiff line change
@@ -97,22 +97,23 @@ namespace embree
9797
size_t ix = x0+dx; float fx = ix*rcpWidth;
9898
if (ix >= framebuffer->getWidth()) continue;
9999

100-
for (size_t i=0; i<renderer->spp; i++)
101-
{
100+
//for (size_t i=0; i<renderer->spp; i++)
101+
//{
102102
/*! create primary ray */
103-
Ray ray; camera->ray(Vec2f(fx,fy), Vec2f(rand.getFloat(),rand.getFloat()), ray);
103+
//Ray ray; camera->ray(Vec2f(fx,fy), Vec2f(rand.getFloat(),rand.getFloat()), ray);
104+
Ray ray; camera->ray(Vec2f(fx,fy), Vec2f(zero), ray);
104105

105-
for (size_t depth=0; depth<renderer->maxDepth; depth++)
106+
//for (size_t depth=0; depth<renderer->maxDepth; depth++)
106107
{
107108
/*! shoot current ray */
108109
scene->intersector->intersect(ray);
109110
numRays++;
110-
if (!ray) break;
111+
//if (!ray) break;
111112

112113
/*! compute new ray through diffuse bounce */
113-
Vector3f Nf = normalize(ray.Ng);
114-
if (dot(-ray.dir,Nf) < 0) Nf = -Nf;
115-
if (depth+1<renderer->maxDepth) new (&ray) Ray(ray.org+0.999f*ray.tfar*ray.dir,cosineSampleHemisphere(rand.getFloat(),rand.getFloat(),Nf),4.0f*float(ulp)/**hit.error*/);
114+
//Vector3f Nf = normalize(ray.Ng);
115+
//if (dot(-ray.dir,Nf) < 0) Nf = -Nf;
116+
//if (depth+1<renderer->maxDepth) new (&ray) Ray(ray.org+0.999f*ray.tfar*ray.dir,cosineSampleHemisphere(rand.getFloat(),rand.getFloat(),Nf),4.0f*float(ulp)/**hit.error*/);
116117
}
117118

118119
/*! update framebuffer */
@@ -123,15 +124,15 @@ namespace embree
123124
framebuffer->set(ix,iy,Color(abs(hit.Ng.x),abs(hit.Ng.y),abs(hit.Ng.z)));
124125
}*/
125126
//else framebuffer->set(ix,iy,Color(clamp(dot(ray.dir,normalize(hit.Ng))),0,0));
126-
//else framebuffer->set(ix,iy,Color(hit.u,hit.v,1.0f-hit.u-hit.v));
127+
else framebuffer->set(ix,iy,Color(ray.u,ray.v,1.0f-ray.u-ray.v));
127128
//else framebuffer->get(ix,iy) = Vec4f(hit.st.x,hit.st.y,1.0f-hit.st.x-hit.st.y,1.0f);
128129
//else framebuffer->get(ix,iy) = Vec4f(hit.st.x,0,0,1.0f);
129130
//else framebuffer->get(ix,iy) = Vec4f(abs(dot(ray.dir,normalize(hit.dPds))),0,0,1.0f);
130-
else framebuffer->set(ix,iy,Color(((3434553*((unsigned)(ray.id0+ray.id1+3243)))%255)/255.0f,
131-
((7342453*((unsigned)(ray.id0+ray.id1+8237)))%255)/255.0f,
132-
((9234454*((unsigned)(ray.id0+ray.id1+2343)))%255)/255.0f));
131+
//else framebuffer->set(ix,iy,Color(((3434553*((unsigned)(ray.id0+ray.id1+3243)))%255)/255.0f,
132+
// ((7342453*((unsigned)(ray.id0+ray.id1+8237)))%255)/255.0f,
133+
// ((9234454*((unsigned)(ray.id0+ray.id1+2343)))%255)/255.0f));
133134
}
134-
}
135+
//}
135136
}
136137
framebuffer->finishTile();
137138
}

0 commit comments

Comments
 (0)