Lag occurs when deleting resident buffer on linux

In my test sample I create 2048 buffer with size 5kb before application loop:

for(size_t i = 0; i < m_buffers.size(); ++i){
    auto& gl_res_id = m_buffers[i];
    snprintf(buff_name, 256, "buffer_%zu", i);
    glCreateBuffers(1, &gl_res_id);
    glObjectLabel(GL_BUFFER, gl_res_id, -1, buff_name);
    glNamedBufferStorageEXT(gl_res_id, buff.size(),, 0);        
    glMakeNamedBufferResidentNV(gl_res_id, GL_READ_ONLY);

then while the application is running, I delete one buffer each frame throughout 2048 frames:

auto& gl_res_id = m_buffers[frame_id];
glObjectLabel(GL_BUFFER, gl_res_id, 0, 0);

The removal time of some buffers may exceed 20ms that more than usual frame time.
Nsight Systems has collected this results:
I have checked my test on 390.77 and 415.27 drivers. It was the same.

Bug report checklist: (as recommended in

  • result in arhive(tar.gz)
  • GeForce GTX 1080
  • 390.77 and 415.27 drivers.
  • Reproducer and nsight systems report archive(tar.gz) can be downloaded from the above link
  • Launch bin/ from attached archive. Reproducer starts delete allocated buffer one per frame and measure buffer removal time. If removal time more then 2ms, message("time limit(2ms) has been exceeded. Buffer removal time: 23.788000ms. Buffer index: 1024") will be printed to shell. Removal time and buffer index may be different.

Thanks for your attention.

Hello, maybe I should submit this flaw to Is it a NVIDIA bug report system? I couldn’t find any information about it.