- /* From the OpenGL 4.0 specification, page 256:
- * "For both the default framebuffer and framebuffer objects, the
- * constants FRONT, BACK, LEFT, RIGHT, and FRONT_AND_BACK are not
- * valid in the bufs array passed to DrawBuffers, and will result in
- * the error INVALID_ENUM. This restriction is because these
- * constants may themselves refer to multiple buffers, as shown in
- * table 4.4."
- * Previous versions of the OpenGL specification say INVALID_OPERATION,
- * but the Khronos conformance tests expect INVALID_ENUM.
+ /* From the OpenGL 4.5 specification, page 493 (page 515 of the PDF)
+ * "An INVALID_ENUM error is generated if any value in bufs is FRONT,
+ * LEFT, RIGHT, or FRONT_AND_BACK . This restriction applies to both
+ * the default framebuffer and framebuffer objects, and exists because
+ * these constants may themselves refer to multiple buffers, as shown
+ * in table 17.4."
+ *
+ * And on page 492 (page 514 of the PDF):
+ * "If the default framebuffer is affected, then each of the constants
+ * must be one of the values listed in table 17.6 or the special value
+ * BACK. When BACK is used, n must be 1 and color values are written
+ * into the left buffer for single-buffered contexts, or into the back
+ * left buffer for double-buffered contexts."
+ *
+ * Note "special value BACK". GL_BACK also refers to multiple buffers,
+ * but it is consider a special case here. This is a change on 4.5. For
+ * OpenGL 4.x we check that behaviour. For any previous version we keep
+ * considering it wrong (as INVALID_ENUM).