As an effort to chase down opengl errors while working on megapahit, i found this one among others that i could fix, but this one, i am not sure what to do with it : so this is in lldrawpoolwater.cpp, lines 209 and 210.
shader->bindTexture(LLViewerShaderMgr::BUMP_MAP, tex_a);
this line is binding the texture it calls a bindfast()), then the next line will set its filtering options:
tex_a->setFilteringOption(filter_mode);
Problem is, when transparent water is turned OFF, this call will generate an invalid_enum error in llrender.cpp : void LLTexUnit::setTextureFilteringOption(....)
The reason why is, when it's called and the transparent water options is OFF, the mCurrTexType is equal to TT_NONE, which indicates the texture unit isn't active.
subsequent calls to glTexParameteri(...) generate an invalid_enum error, since the target is invalid (sGLTextureType[mCurrTexType]).
So it appears, for some reason shader->bindTexture(LLViewerShaderMgr::BUMP_MAP, tex_a); doesn't succeed at enabling the texture.
I saw this on Mac, i can't say if it happens on other platforms.
Also i didn't "explicitly" see this error in SLv, but it's most certainly present as the relative code in megapahit is identical and based on 7.1.15.
This has been around for several updates ( at least 7.1.13 ), i couldn't say if older.
In some cases it leads to performance drop when water transparency is OFF, but .. not always ... might depend on a combination of settings.
I thought i would share this as the engineers who worked on this would certainly know better than me.