A call to glGenerateMipmap repeatably crashes the driver when glTexImage2D was called before with GL_COMPRESSED_RGB and certain resolutions.
This causes major problems in our product. As a workaround we have to disable mipmapping on AMD GPUs.
Minimal code for reproduction:
glGenTextures(1, &textureID); glBindTexture(GL_TEXTURE_2D, textureID); glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB, 1268, 836, 0, GL_RGB, GL_UNSIGNED_BYTE, data); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glGenerateMipmap(GL_TEXTURE_2D);
There are much more resolutions that cause crashes, for example: 1268x836, 2196X900, 1268X956, 1268X972, 1267X1985, ...
Tested on R290, Driver 16.4.1. Our customers reported this issue already for multiple other AMD graphics cards and drivers.
I have attached an executable and source to reproduce the issue. The exe has two int parameters to specify width and height, by default it uses 1268x836.
Hopefully this you can fix this soon, so we can enable mipmapping on AMD cards again.