if the commit D6424 is correct, maybe all gl_FragColor variables should be converted to FragColor.
The documentation part seems fine.
The OpeSubdiv is not currently in use and likely have other issue. Commented on mistake in this shader anyway.
To my knowledge input and output are reserved keywords in the language. This is a reason why input is called inpt. So here it should be outpt.
outpt.FragColor = diffuse;
Similar to above.