Its actually not too difficult. All you really need to do is create a GLSL TOP, copy the shader code into a Text DAT, change a couple variable names, and plug it into the pixel shader field of the vertex field of the GLSL TOP.
The main variable that needs to be changed in codes copied from shadertoy is the call to iChannel#. Touch designer uses sInput# instead to define its texture inputs. This can easily be replaced with a Substitute DAT.
Also important to remember is to put in your uniform variable names and values into the Vectors page of the GLSL TOP.
Not sure why the driver is returning such an unhelpful error. On my card it tell me the shader is written for GLSL 1.20, so you need to change the GLSL version in the GLSL TOPs parameters.
Also you have this line in the shader
uniform samplerXX iChannel0..3
Which isn’t valid GLSL. XX should be replaced with the texture type (2D etc.), and I assume you want 3 different samplers, so split that up onto 4 lines for iChannel0, iChannel1 etc.
Since it’s purely a pixel based operation (no geometry at all), the resolution is a huge part of how expensive it will be. In the default shadertoy view it’s running at a very low res windows, while the GLSL TOP is running at 1024x1024. If you make the resolutions similar, the performance is similar too.
Sorry, I missed the part where you said you were running fullscreen. How are you measuring FPS in that case? My GPU is similar power and runs it quite slow on fullscreeen.