I don't have an exact answer, but do you need any of that PBO stuff? You have a QImage and you want a QOpenGLTexture, so you can just do that directly: https://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture-1 The texture object can be made directly from a QImage, with no extra steps. @Carlos-Roberto said in How to implement QOpenGLBuffer ::PixelPackBuffer: Is this possible to keep a Offscreen render in memory and pass it as texture on a future shader call? Sure. Render to your QOpenGLFramebufferObject, release it, and it has a texture() method so you can use it as a texture in a render somewhere else.