i drawing in opengl using indexed drawing. sending vertices & indexes graphic card, , trying release local buffers. releasing vertices buffer - no problem, if release index buffer, nothing displayed.
putting simply, code works:
glgenbuffers(1, &m_vbo); glbindbuffer(gl_array_buffer, m_vbo); glbufferdata(gl_array_buffer, m_vertices.size()*6*sizeof(float), m_vertices.data(),gl_static_draw); m_vertices.clear(); m_vertices.shrink_to_fit(); glgenbuffers(1, &m_ibo); glbindbuffer(gl_element_array_buffer, m_ibo); glbufferdata(gl_element_array_buffer, m_triangleindeces.size() * sizeof(glsizei), m_triangleindeces.data(), gl_static_draw); // m_triangleindeces.clear(); // m_triangleindeces.shrink_to_fit();
but if un-remark last 2 lines - nothing displayed.
i tried release buffer after first rendering, same phenomena occured.
i understood once opengl buffers data, if driver or graphic card, local copy of free me abuse, puzzled.
i working on windows 10. device manager says have "amd radeon (tm) r7 m360", , "intel hd graphics 520", whatever means.
yes, opengl implementation should indeed perform copy of data.
this driver bug.
since seem have 2 gpus, assume you're running application on intel gpu default (intel famous having bad gpu drivers). did try testing on both gpus? , gpu drivers date?
Comments
Post a Comment