Programmable Vertex Pulling with CORE mode?


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…

Thank you.

I’m not sure why would the spec require a bound array object

AFAIK it does though - you can just create and bind a VAO during initialization and then never touch it again.

Haha, thanks for the confirmation; I was hoping for a more elegant solution :slight_smile:

It blows my mind that PVP still requires a useless vao to be around for core profile.

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.