Damnit, i've done it again. That's what I get for trying to cut and paste some old code that apparently never worked anyway.
I was trying to implement an OpenGL rendering loop for some OpenCL code rather than copying it back to Java2D every time. Except I based the code on some test code i'd written which now I realise never worked.
And mostly it failed because it didn't call putAcquiteGLObject() before writing to the output texture.
A few more hours of my day i'll never get back ... and I think it's the second time i've done it. Maybe i'll remember it this time if I write it down.