I got PVP working in COMPATIBILITY mode. When I switched to CORE, I get
Type: Error; Source: API; ID: 1282; Severity: High
GL_INVALID_OPERATION error generated. Array object is not active.
I am using SSBO, UBO, and MultiDrawIndirect; I am completely avoiding the use of any VAO since I’m doing PVP.
Does PVP work in core? I’m not sure why would the spec require a bound array object…
A VAO is needed, because there is no default VAO in core profile. While you don’t use any vertex attributes when you do PVP, you might want to use an element array buffer for indexed primitives, and that is also part of the VAO state.
Also, it’s no big deal because you only have to have a single dummy VAO bound all the time and that’s all.