Login  Register

Re: Bindless vertex array

Posted by elect on Jul 10, 2015; 9:32am
URL: https://forum.jogamp.org/Bindless-vertex-array-tp4034343p4034862.html

gouessej wrote
Try to dispose the GLWindow before stopping the animator. I know that the animators are useful but I rarely use them. I'm not sure that the messages are really problematic.
After you closed my bug I returned profiling it.

I tried to comment some parts of the code and I found out something very interesting.

Right now the rendering loop doesnt do anything else than clearing color/depth, transform matrices and minor other stuff.

I get 5k fps and this is fine.

Now I comment out the code in the Mesh.update() that takes care of VBUM, making the vertex and index buffer resident on the gpu and then I get 450 fps...

Something is definitely wrong with these calls:

        // *** INTERESTING ***
        // get the GPU pointer for the vertex buffer and make the vertex buffer
        // resident on the GPU
        gl4.glBindBuffer(GL4.GL_ARRAY_BUFFER, vertexBuffer[0]);
        gl4.glGetBufferParameterui64vNV(GL4.GL_ARRAY_BUFFER, GL4.GL_BUFFER_GPU_ADDRESS_NV,
                vertexBufferGPUPtr, 0);
        gl4.glGetBufferParameteriv(GL4.GL_ARRAY_BUFFER, GL4.GL_BUFFER_SIZE,
                vertexBufferSize, 0);
        gl4.glMakeBufferResidentNV(GL4.GL_ARRAY_BUFFER, GL4.GL_READ_ONLY);
        gl4.glBindBuffer(GL4.GL_ARRAY_BUFFER, 0);

        // *** INTERESTING ***
        // get the GPU pointer for the index buffer and make the index buffer
        // resident on the GPU
        gl4.glBindBuffer(GL4.GL_ELEMENT_ARRAY_BUFFER, indexBuffer[0]);
        gl4.glGetBufferParameterui64vNV(GL4.GL_ELEMENT_ARRAY_BUFFER,
                GL4.GL_BUFFER_GPU_ADDRESS_NV, indexBufferGPUPtr, 0);
        gl4.glGetBufferParameteriv(GL4.GL_ELEMENT_ARRAY_BUFFER, GL4.GL_BUFFER_SIZE,
                indexBufferSize, 0);
        gl4.glMakeBufferResidentNV(GL4.GL_ELEMENT_ARRAY_BUFFER, GL4.GL_READ_ONLY);
        gl4.glBindBuffer(GL4.GL_ELEMENT_ARRAY_BUFFER, 0);