Bit disappointing this means my current approach isn't usable unless you go use OpenCL or something.

Quote

(but there is no need for smoothing anyway!)

My plan was to take the indexed triangle soup data to average the normals of triangles sharing a point unless one or more of them are separated by an edge line, in which case a second vertex using a different normal would be added.

So if a certain point is used by 3 triangles the normal for the resulting vertex would be the average of those three triangle (flat shading) normals. But if one of those triangles is separated from the other ones by an edge only the other two will be used to average a normal, using the 3rd one by itself (also correcting the indices etc off course).

But I have to look at it in a different way now :(