I’m a developer at Wube Software, working on Factorio (https://www.factorio.com/).
I noticed today that there is an issue with mipmaps in opengl when resuming from hibernation.
When using mipmaps generated with glGenerateMipmap, if you hibernate and resume, the mipmap data will be corrupted.
The base texture is unaffected.
This corruption will not happen if you use explicit mipmap data instead of glGenerateMipmap.
I am running the latest drivers from your website (not distro-provided ones), version 390.77 on a GTX 980.
I also had the same issue when running distro-provided drivers (version 384.130).
Distro is debian stretch, kernel version is 4.9.0.
If needs be we can probably send you a development version to use in debugging, or you can use a simple test case I will attach.
Steps to reproduce:
- Compile and run my test program, build instructions in attached readme.txt.
- Zoom in and out using arrow up and down, verify that the cube retains a consistent texture of a coloured number on a white background.
- Leaving the sample running, hibernate your machine (sudo pm-hibernate, or use the gui).
- Resume, and zoom in and out again. When zoomed in, the cube will render correctly, but when zoomed out to the point that mipmapping begins, the texture will appear corrupted (light grey for me).
The readme also has instructions to load a DDS file with precomputed mipmaps, which will not exhibit the bug.
I have attached a zip of the sample code, and some video of the sample running on my machine, both before and after hibernation.
I have also attached output from your bug reporting script.
nvidia-bug-report.log.gz (140 KB)
sample_code.zip (106 KB)
videos.zip (138 KB)