Why does OpenGL tell me that I used GL_STATIC_DRAW when I indicated otherwise?

When I have a debugging layer with OpenGL, I register a callback that gets called when there is something remarkable to tell me. It seems that not all messages sent to the callback are errors. There is an OTHER category, and it seems that it displays these messages whenever you did something. In my case, I create VBO with:

GLuint VBO_ID; glGenBuffers(1, &VBO_ID); // The VBO_ID I get back is 3. glBindBuffer(GL_ARRAY_BUFFER, VBO_ID); glBufferData(GL_ARRAY_BUFFER, sizeInBytes, vertices, GL_DYNAMIC_COPY); // At this point the callback is called, which gives the message: 

message: buffer details: buffer object 3 (bound to GL_ARRAY_BUFFER_ARB, hint about using GL_STATIC_DRAW) will use VIDEO memory as a source of operations with buffer objects.

No matter what the usage hint (last argument is glBufferData), this message ALWAYS says the usage hint is GL_STATIC_DRAW . Regardless of whether I GL_DYNAMIC_COPY , GL_DYNAMIC_DRAW , GL_STATIC_READ , whatever. The message is always the same.

So, I'm really confused by this. And why does this give this message, this is not a warning, since I have not done anything wrong, it is just confirmation. I ended up disconnecting this "OTHER" category of messages, otherwise my journal is simply filled with them, because it called whenever I did something.

+5
source share

Source: https://habr.com/ru/post/1272664/


All Articles