Here’s the steps to reproduce this issue:
- Create a framebuffer;
- Create a 2D texture(color format with SINT or UINT format such as GL_R32I/GL_R32UI) as a color attachment bound to framebuffer;
- Create a 2D texture(depth format with GL_DEPTH_COMPONENT16) as a depth attachment bound to framebuffer;
- Set viewport, set scissor…
- Clear color and depth buffer of the current framebuffer.
- Draw command.
Step five and six would pop up following message:
[source: GL_DEBUG_SOURCE_API, type: GL_DEBUG_TYPE_ERROR, id: 1286]: GL_INVALID_FRAMEBUFFER_OPERATION error generated. Operation is not valid because a bound framebuffer is not framebuffer complete…
- I also used glCheckNamedFramebufferStatus before or after these commands, it would return GL_FRAMEBUFFER_COMPLETE. But NV’s driver would pop up the error message when executing these commands by registering glDebugMessageCallback method;
- It worked well when using D32 depth format and SINT or UINT color format to bound the framebuffer;
- It worked well when using D16 depth format and FLOAT(which is not SINT or UINT) color format to bound the framebuffer;
So, I think if there’s an issue in NV’s driver or something else?