Does the Spec. allow the update of output variables?
For Example in a variant for point-normal triangulation I use this code:
Code :tcw[gl_InvocationID].controlPoints[0] = vsm[gl_InvocationID].mdPosition + edge / 3.0f; tcw[gl_InvocationID].controlPoints[0] = tngPrj(tcw[gl_InvocationID].controlPoints[0], vsm[gl_InvocationID].mdPosition, vsm[gl_InvocationID].mdNormal);
During tests on different drivers, I found that I have to rewrite the code like:
Code :vec3 va = vsm[gl_InvocationID].mdPosition + edge / 3.0f; va = tngPrj(va, vsm[gl_InvocationID].mdPosition, vsm[gl_InvocationID].mdNormal); tcw[gl_InvocationID].controlPoints[0] = va;
I'm not sure if I should mark this change as "bug" and regularly test it against new driver versions.