Add docs and example

This commit is contained in:
james.brodman
2014-01-10 13:55:32 -05:00
parent b2f6043181
commit 34b412bdf8
3 changed files with 76 additions and 7 deletions

View File

@@ -104,6 +104,50 @@ export void xyzSumSOA(uniform float array[], uniform int count,
result[2] = reduce_add(zsum);
}
export void xyzSumVarying(varying float array[], uniform int count,
uniform float zeros[], uniform float result[]) {
float xsum = 0, ysum = 0, zsum = 0;
varying float * uniform ap = array;
assert(programCount <= 8);
for (uniform int i = 0; i < count/3; i += 8) {
if (programCount == 4) {
float x0 = ap[0];
float y0 = ap[2];
float z0 = ap[4];
xsum += x0;
ysum += y0;
zsum += z0;
float x1 = ap[1];
float y1 = ap[3];
float z1 = ap[5];
xsum += x1;
ysum += y1;
zsum += z1;
ap += 6;
}
else {
// programCount == 8
float x = ap[0];
float y = ap[1];
float z = ap[2];
xsum += x;
ysum += y;
zsum += z;
ap += 3;
}
}
result[0] = reduce_add(xsum);
result[1] = reduce_add(ysum);
result[2] = reduce_add(zsum);
}
export void gathers(uniform float array[], uniform int count,
uniform float zeros[], uniform float result[]) {
float sum = 0;