Moved another AMD-specific driver bug workaround to the OpenGL Bugs struct.

This commit is contained in:
Alex Szpakowski
2016-01-13 21:43:00 -04:00
parent 314a82b126
commit abd3c64bc5
3 changed files with 14 additions and 5 deletions
+1 -4
View File
@@ -202,11 +202,8 @@ void Image::generateMipmaps()
if (flags.mipmaps && !isCompressed() &&
(GLAD_ES_VERSION_2_0 || GLAD_VERSION_3_0 || GLAD_ARB_framebuffer_object))
{
// Driver bug: http://www.opengl.org/wiki/Common_Mistakes#Automatic_mipmap_generation
#if defined(LOVE_WINDOWS) || defined(LOVE_LINUX)
if (gl.getVendor() == OpenGL::VENDOR_AMD)
if (gl.bugs.generateMipmapsRequiresTexture2DEnable)
glEnable(GL_TEXTURE_2D);
#endif
glGenerateMipmap(GL_TEXTURE_2D);
}
+4 -1
View File
@@ -93,9 +93,12 @@ bool OpenGL::initContext()
bugs = {};
#if defined(LOVE_WINDOWS) || defined(LOVE_LINUX)
// See the comment in OpenGL.h.
// See the comments in OpenGL.h.
if (getVendor() == VENDOR_AMD)
{
bugs.clearRequiresDriverTextureStateUpdate = true;
bugs.generateMipmapsRequiresTexture2DEnable = true;
}
#endif
contextInitialized = true;
+9
View File
@@ -184,6 +184,15 @@ public:
**/
bool clearRequiresDriverTextureStateUpdate;
/**
* AMD's Windows drivers don't always properly generate mipmaps unless
* glEnable(GL_TEXTURE_2D) is called directly before glGenerateMipmap.
* This only applies to legacy and Compatibility Profile contexts, of
* course.
* https://www.opengl.org/wiki/Common_Mistakes#Automatic_mipmap_generation
**/
bool generateMipmapsRequiresTexture2DEnable;
/**
* Other bugs which have workarounds that don't use conditional code at
* the moment: