Ran into an issue in our app that I believe to be driver related that has a ~25% chance to cause a freeze on exit.
Running Quadro M1200 on Ubuntu 16.04 with an EGL context.
Steps to reproduce:
- Create a 1Gb buffer: glBufferData(GL_ARRAY_BUFFER, 1073741824, NULL, GL_STATIC_DRAW)
- Update ~200 bytes at the front: glBufferSubData(GL_ARRAY_BUFFER, 0, 200, somedata);
- exit app
With a valid context, total used GPU memory is ~2Gb (roughly 50% of available).
The last entry on the framestack is _dl_fini in dl_fini.c line 240
This does not seem to reproduce if glBufferSubData is never called or buffer size is reduced to 250Mb or below.
output of nvidia-smi:
±----------------------------------------------------------------------------+
| NVIDIA-SMI 410.79 Driver Version: 410.79 CUDA Version: 10.0 |
|-------------------------------±---------------------±---------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro M1200 Off | 00000000:01:00.0 Off | N/A |
| N/A 50C P0 N/A / N/A | 621MiB / 4046MiB | 3% Default |
±------------------------------±---------------------±---------------------+
±----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1305 G /usr/lib/xorg/Xorg 460MiB |
| 0 2017 G compiz 107MiB |
| 0 2591 G …-token=DB17AA33AB9FF88DFCD55E3BAD1B60B9 50MiB |
±----------------------------------------------------------------------------+
Tried a few workaround such as flagging the buffer non-resident before the update and restoring residency immediately after, but I have not been able to find a viable solution.