Update: improved ShaderInputView, but the delegate can still be easily broken