Passing GL_FRAMEBUFFER_ATTACHMENT_LAYERED to glGetFramebufferAttachmentParameter() throws this error:
org.lwjgl.opengl.OpenGLException: Invalid enum (1280)
All of the other parameters work fine (FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER, FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL, FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE).
The gentlemen at the opengl.org forums suggested this might be a bug with LWJGL. More details with source code to reproduce the issue can be found here:
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=289008 (http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=289008)
I'm using one of the nightly builds of LWJGL 2.6 because there was a bug fix in the nightly build that wasn't in the release build.
I was able to reproduce this:
Quote[LWJGL] AMD_debug_output message
ID: 1001
Category: API ERROR
Severity: HIGH
Message: glGetFramebufferAttachmentParameteriv parameter <pname> has an invalid enum '0x8da7' (GL_INVALID_ENUM)
and from the testing I did it seems like it's an AMD driver bug. I think so because:
a) The result is correct, it actually returns 0 or 1 depending on the attachment type.
b) GL32.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER works without errors.
c) There's nothing special about glGetFramebufferAttachmentParameter, it works for every other token and it doesn't handle GL_FRAMEBUFFER_ATTACHMENT_LAYERED any differently.
Thank you spasi. I will report it to AMD.
marked as closed as not really a LWJGL issue or something that we can do something about from our side.