Support compressed textures unconditionally.

Change-Id: Ifd2c846c274840f19c1ea8c75fda42bf5640caa4
Reviewed-on: https://swiftshader-review.googlesource.com/16808
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/D3D8/Capabilities.cpp b/src/D3D8/Capabilities.cpp
index dd0ba20..53cd68e 100644
--- a/src/D3D8/Capabilities.cpp
+++ b/src/D3D8/Capabilities.cpp
@@ -55,11 +55,11 @@
 	bool Capabilities::Surface::A8P8 = false;
 	bool Capabilities::Surface::G16R16 = true;
 	bool Capabilities::Surface::A2B10G10R10 = true;
-	bool Capabilities::Surface::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT5 = S3TC_SUPPORT;
+	bool Capabilities::Surface::DXT1 = true;
+	bool Capabilities::Surface::DXT2 = true;
+	bool Capabilities::Surface::DXT3 = true;
+	bool Capabilities::Surface::DXT4 = true;
+	bool Capabilities::Surface::DXT5 = true;
 	bool Capabilities::Surface::V8U8 = true;
 	bool Capabilities::Surface::L6V5U5 = true;
 	bool Capabilities::Surface::X8L8V8U8 = true;
@@ -87,11 +87,11 @@
 	bool Capabilities::Volume::A8P8 = false;
 	bool Capabilities::Volume::G16R16 = true;
 	bool Capabilities::Volume::A2B10G10R10 = true;
-	bool Capabilities::Volume::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT5 = S3TC_SUPPORT;
+	bool Capabilities::Volume::DXT1 = true;
+	bool Capabilities::Volume::DXT2 = true;
+	bool Capabilities::Volume::DXT3 = true;
+	bool Capabilities::Volume::DXT4 = true;
+	bool Capabilities::Volume::DXT5 = true;
 	bool Capabilities::Volume::V8U8 = true;
 	bool Capabilities::Volume::L6V5U5 = true;
 	bool Capabilities::Volume::X8L8V8U8 = true;
@@ -139,11 +139,11 @@
 	bool Capabilities::CubeMap::A8P8 = false;
 	bool Capabilities::CubeMap::G16R16 = true;
 	bool Capabilities::CubeMap::A2B10G10R10 = true;
-	bool Capabilities::CubeMap::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT5 = S3TC_SUPPORT;
+	bool Capabilities::CubeMap::DXT1 = true;
+	bool Capabilities::CubeMap::DXT2 = true;
+	bool Capabilities::CubeMap::DXT3 = true;
+	bool Capabilities::CubeMap::DXT4 = true;
+	bool Capabilities::CubeMap::DXT5 = true;
 	bool Capabilities::CubeMap::V8U8 = true;
 	bool Capabilities::CubeMap::L6V5U5 = true;
 	bool Capabilities::CubeMap::X8L8V8U8 = true;
@@ -171,11 +171,11 @@
 	bool Capabilities::VolumeTexture::A8P8 = false;
 	bool Capabilities::VolumeTexture::G16R16 = true;
 	bool Capabilities::VolumeTexture::A2B10G10R10 = true;
-	bool Capabilities::VolumeTexture::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT5 = S3TC_SUPPORT;
+	bool Capabilities::VolumeTexture::DXT1 = true;
+	bool Capabilities::VolumeTexture::DXT2 = true;
+	bool Capabilities::VolumeTexture::DXT3 = true;
+	bool Capabilities::VolumeTexture::DXT4 = true;
+	bool Capabilities::VolumeTexture::DXT5 = true;
 	bool Capabilities::VolumeTexture::V8U8 = true;
 	bool Capabilities::VolumeTexture::L6V5U5 = true;
 	bool Capabilities::VolumeTexture::X8L8V8U8 = true;
@@ -223,11 +223,11 @@
 	bool Capabilities::Texture::A8P8 = false;
 	bool Capabilities::Texture::G16R16 = true;
 	bool Capabilities::Texture::A2B10G10R10 = true;
-	bool Capabilities::Texture::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT5 = S3TC_SUPPORT;
+	bool Capabilities::Texture::DXT1 = true;
+	bool Capabilities::Texture::DXT2 = true;
+	bool Capabilities::Texture::DXT3 = true;
+	bool Capabilities::Texture::DXT4 = true;
+	bool Capabilities::Texture::DXT5 = true;
 	bool Capabilities::Texture::V8U8 = true;
 	bool Capabilities::Texture::L6V5U5 = true;
 	bool Capabilities::Texture::X8L8V8U8 = true;
diff --git a/src/D3D9/Capabilities.cpp b/src/D3D9/Capabilities.cpp
index 2449045..572d983 100644
--- a/src/D3D9/Capabilities.cpp
+++ b/src/D3D9/Capabilities.cpp
@@ -71,13 +71,13 @@
 	bool Capabilities::Surface::A2R10G10B10 = true;
 	bool Capabilities::Surface::A2B10G10R10 = true;
 	bool Capabilities::Surface::A16B16G16R16 = true;
-	bool Capabilities::Surface::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::Surface::DXT5 = S3TC_SUPPORT;
-	bool Capabilities::Surface::ATI1 = S3TC_SUPPORT;
-	bool Capabilities::Surface::ATI2 = S3TC_SUPPORT;
+	bool Capabilities::Surface::DXT1 = true;
+	bool Capabilities::Surface::DXT2 = true;
+	bool Capabilities::Surface::DXT3 = true;
+	bool Capabilities::Surface::DXT4 = true;
+	bool Capabilities::Surface::DXT5 = true;
+	bool Capabilities::Surface::ATI1 = true;
+	bool Capabilities::Surface::ATI2 = true;
 	bool Capabilities::Surface::R16F = true;
 	bool Capabilities::Surface::G16R16F = true;
 	bool Capabilities::Surface::A16B16G16R16F = true;
@@ -117,13 +117,13 @@
 	bool Capabilities::Volume::A2R10G10B10 = true;
 	bool Capabilities::Volume::A2B10G10R10 = true;
 	bool Capabilities::Volume::A16B16G16R16 = true;
-	bool Capabilities::Volume::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::Volume::DXT5 = S3TC_SUPPORT;
-	bool Capabilities::Volume::ATI1 = S3TC_SUPPORT;
-	bool Capabilities::Volume::ATI2 = S3TC_SUPPORT;
+	bool Capabilities::Volume::DXT1 = true;
+	bool Capabilities::Volume::DXT2 = true;
+	bool Capabilities::Volume::DXT3 = true;
+	bool Capabilities::Volume::DXT4 = true;
+	bool Capabilities::Volume::DXT5 = true;
+	bool Capabilities::Volume::ATI1 = true;
+	bool Capabilities::Volume::ATI2 = true;
 	bool Capabilities::Volume::R16F = true;
 	bool Capabilities::Volume::G16R16F = true;
 	bool Capabilities::Volume::A16B16G16R16F = true;
@@ -195,13 +195,13 @@
 	bool Capabilities::CubeMap::A2R10G10B10 = true;
 	bool Capabilities::CubeMap::A2B10G10R10 = true;
 	bool Capabilities::CubeMap::A16B16G16R16 = true;
-	bool Capabilities::CubeMap::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::DXT5 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::ATI1 = S3TC_SUPPORT;
-	bool Capabilities::CubeMap::ATI2 = S3TC_SUPPORT;
+	bool Capabilities::CubeMap::DXT1 = true;
+	bool Capabilities::CubeMap::DXT2 = true;
+	bool Capabilities::CubeMap::DXT3 = true;
+	bool Capabilities::CubeMap::DXT4 = true;
+	bool Capabilities::CubeMap::DXT5 = true;
+	bool Capabilities::CubeMap::ATI1 = true;
+	bool Capabilities::CubeMap::ATI2 = true;
 	bool Capabilities::CubeMap::R16F = true;
 	bool Capabilities::CubeMap::G16R16F = true;
 	bool Capabilities::CubeMap::A16B16G16R16F = true;
@@ -239,13 +239,13 @@
 	bool Capabilities::VolumeTexture::A2R10G10B10 = true;
 	bool Capabilities::VolumeTexture::A2B10G10R10 = true;
 	bool Capabilities::VolumeTexture::A16B16G16R16 = true;
-	bool Capabilities::VolumeTexture::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::DXT5 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::ATI1 = S3TC_SUPPORT;
-	bool Capabilities::VolumeTexture::ATI2 = S3TC_SUPPORT;
+	bool Capabilities::VolumeTexture::DXT1 = true;
+	bool Capabilities::VolumeTexture::DXT2 = true;
+	bool Capabilities::VolumeTexture::DXT3 = true;
+	bool Capabilities::VolumeTexture::DXT4 = true;
+	bool Capabilities::VolumeTexture::DXT5 = true;
+	bool Capabilities::VolumeTexture::ATI1 = true;
+	bool Capabilities::VolumeTexture::ATI2 = true;
 	bool Capabilities::VolumeTexture::R16F = true;
 	bool Capabilities::VolumeTexture::G16R16F = true;
 	bool Capabilities::VolumeTexture::A16B16G16R16F = true;
@@ -318,13 +318,13 @@
 	bool Capabilities::Texture::A2R10G10B10 = true;
 	bool Capabilities::Texture::A2B10G10R10 = true;
 	bool Capabilities::Texture::A16B16G16R16 = true;
-	bool Capabilities::Texture::DXT1 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT2 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT3 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT4 = S3TC_SUPPORT;
-	bool Capabilities::Texture::DXT5 = S3TC_SUPPORT;
-	bool Capabilities::Texture::ATI1 = S3TC_SUPPORT;
-	bool Capabilities::Texture::ATI2 = S3TC_SUPPORT;
+	bool Capabilities::Texture::DXT1 = true;
+	bool Capabilities::Texture::DXT2 = true;
+	bool Capabilities::Texture::DXT3 = true;
+	bool Capabilities::Texture::DXT4 = true;
+	bool Capabilities::Texture::DXT5 = true;
+	bool Capabilities::Texture::ATI1 = true;
+	bool Capabilities::Texture::ATI2 = true;
 	bool Capabilities::Texture::R16F = true;
 	bool Capabilities::Texture::G16R16F = true;
 	bool Capabilities::Texture::A16B16G16R16F = true;
diff --git a/src/D3D9/Direct3DSurface9.cpp b/src/D3D9/Direct3DSurface9.cpp
index e061c87..8dfa3a8 100644
--- a/src/D3D9/Direct3DSurface9.cpp
+++ b/src/D3D9/Direct3DSurface9.cpp
@@ -344,7 +344,6 @@
 	{
 		switch(format)
 		{
-		#if S3TC_SUPPORT
 		case D3DFMT_NULL:			return sw::FORMAT_NULL;
 		case D3DFMT_DXT1:			return sw::FORMAT_DXT1;
 		case D3DFMT_DXT2:			return sw::FORMAT_DXT3;
@@ -353,7 +352,6 @@
 		case D3DFMT_DXT5:			return sw::FORMAT_DXT5;
 		case D3DFMT_ATI1:			return sw::FORMAT_ATI1;
 		case D3DFMT_ATI2:			return sw::FORMAT_ATI2;
-		#endif
 		case D3DFMT_R3G3B2:			return sw::FORMAT_R3G3B2;
 		case D3DFMT_A8R3G3B2:		return sw::FORMAT_A8R3G3B2;
 		case D3DFMT_X4R4G4B4:		return sw::FORMAT_X4R4G4B4;
diff --git a/src/Main/Config.hpp b/src/Main/Config.hpp
index 66331c7..ff8bb7e 100644
--- a/src/Main/Config.hpp
+++ b/src/Main/Config.hpp
@@ -20,12 +20,6 @@
 #define PERF_HUD 0       // Display time spent on vertex, setup and pixel processing for each thread
 #define PERF_PROFILE 0   // Profile various pipeline stages and display the timing in SwiftConfig
 
-#if defined(_WIN32)
-#define S3TC_SUPPORT 1
-#else
-#define S3TC_SUPPORT 0
-#endif
-
 #define ASTC_SUPPORT 0
 
 // Worker thread count when not set by SwiftConfig
diff --git a/src/OpenGL/common/Image.cpp b/src/OpenGL/common/Image.cpp
index 9fbc2e5..bf14e12 100644
--- a/src/OpenGL/common/Image.cpp
+++ b/src/OpenGL/common/Image.cpp
@@ -613,7 +613,6 @@
 			return sw::FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR;
 		case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
 			return sw::FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR;
-		#if S3TC_SUPPORT
 		case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
 		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
 			return sw::FORMAT_DXT1;
@@ -621,7 +620,6 @@
 			return sw::FORMAT_DXT3;
 		case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
 			return sw::FORMAT_DXT5;
-		#endif
 		default:
 			break;
 		}
diff --git a/src/OpenGL/libGL/Context.h b/src/OpenGL/libGL/Context.h
index 877d768..10f4ae0 100644
--- a/src/OpenGL/libGL/Context.h
+++ b/src/OpenGL/libGL/Context.h
@@ -328,12 +328,10 @@
 
 const GLenum compressedTextureFormats[] =
 {
-#if (S3TC_SUPPORT)
 	GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
 	GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
 	GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
 	GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
-#endif
 };
 
 const GLint NUM_COMPRESSED_TEXTURE_FORMATS = sizeof(compressedTextureFormats) / sizeof(compressedTextureFormats[0]);
diff --git a/src/OpenGL/libGL/Image.cpp b/src/OpenGL/libGL/Image.cpp
index 8dda353..23b85ab 100644
--- a/src/OpenGL/libGL/Image.cpp
+++ b/src/OpenGL/libGL/Image.cpp
@@ -152,10 +152,8 @@
 		{
 			return sw::FORMAT_NULL;
 		}
-		else
-		#if S3TC_SUPPORT
-		if(format == GL_COMPRESSED_RGB_S3TC_DXT1_EXT ||
-		   format == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)
+		else if(format == GL_COMPRESSED_RGB_S3TC_DXT1_EXT ||
+		        format == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)
 		{
 			return sw::FORMAT_DXT1;
 		}
@@ -167,9 +165,7 @@
 		{
 			return sw::FORMAT_DXT5;
 		}
-		else
-		#endif
-		if(type == GL_FLOAT)
+		else if(type == GL_FLOAT)
 		{
 			return sw::FORMAT_A32B32G32R32F;
 		}
diff --git a/src/OpenGL/libGL/libGL.cpp b/src/OpenGL/libGL/libGL.cpp
index 171e520..87829be 100644
--- a/src/OpenGL/libGL/libGL.cpp
+++ b/src/OpenGL/libGL/libGL.cpp
@@ -802,10 +802,6 @@
 	case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
 	case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
 	case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
-		if(!S3TC_SUPPORT)
-		{
-			return error(GL_INVALID_ENUM);
-		}
 		break;
 	case GL_DEPTH_COMPONENT:
 	case GL_DEPTH_COMPONENT16:
@@ -931,10 +927,6 @@
 	case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
 	case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
 	case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
-		if(!S3TC_SUPPORT)
-		{
-			return error(GL_INVALID_ENUM);
-		}
 		break;
 	default:
 		return error(GL_INVALID_ENUM);
@@ -1101,14 +1093,7 @@
 		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
 		case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
 		case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
-			if(S3TC_SUPPORT)
-			{
-				return error(GL_INVALID_OPERATION);
-			}
-			else
-			{
-				return error(GL_INVALID_ENUM);
-			}
+			return error(GL_INVALID_OPERATION);
 		default:
 			return error(GL_INVALID_ENUM);
 		}
@@ -3068,19 +3053,15 @@
 			"GL_EXT_texture_npot "
 			"GL_EXT_occlusion_query_boolean "
 			"GL_EXT_read_format_bgra "
-			#if (S3TC_SUPPORT)
 			"GL_EXT_texture_compression_dxt1 "
-			#endif
 			"GL_EXT_blend_func_separate "
 			"GL_EXT_secondary_color "
 			"GL_EXT_texture_filter_anisotropic "
 			"GL_EXT_texture_format_BGRA8888 "
 			"GL_EXT_framebuffer_blit "
 			"GL_EXT_framebuffer_multisample "
-			#if (S3TC_SUPPORT)
 			"GL_EXT_texture_compression_dxt3 "
 			"GL_EXT_texture_compression_dxt5 "
-			#endif
 			"GL_NV_fence";
 	default:
 		return error(GL_INVALID_ENUM, (GLubyte*)nullptr);
@@ -4384,14 +4365,7 @@
 	   format == GL_COMPRESSED_RGBA_S3TC_DXT3_EXT ||
 	   format == GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)
 	{
-		if(S3TC_SUPPORT)
-		{
-			return error(GL_INVALID_OPERATION);
-		}
-		else
-		{
-			return error(GL_INVALID_ENUM);
-		}
+		return error(GL_INVALID_OPERATION);
 	}
 
 	gl::Context *context = gl::getContext();
diff --git a/src/OpenGL/libGLES_CM/Context.h b/src/OpenGL/libGLES_CM/Context.h
index ece2860..ab3883d 100644
--- a/src/OpenGL/libGLES_CM/Context.h
+++ b/src/OpenGL/libGLES_CM/Context.h
@@ -79,10 +79,8 @@
 const GLenum compressedTextureFormats[] =
 {
 	GL_ETC1_RGB8_OES,
-#if (S3TC_SUPPORT)
 	GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
 	GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
-#endif
 };
 
 const GLint NUM_COMPRESSED_TEXTURE_FORMATS = sizeof(compressedTextureFormats) / sizeof(compressedTextureFormats[0]);
diff --git a/src/OpenGL/libGLES_CM/libGLES_CM.cpp b/src/OpenGL/libGLES_CM/libGLES_CM.cpp
index 88a19e8..75fb538 100644
--- a/src/OpenGL/libGLES_CM/libGLES_CM.cpp
+++ b/src/OpenGL/libGLES_CM/libGLES_CM.cpp
@@ -721,13 +721,8 @@
 	switch(internalformat)
 	{
 	case GL_ETC1_RGB8_OES:
-		break;
 	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
 	case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-		if(!S3TC_SUPPORT)
-		{
-			return error(GL_INVALID_ENUM);
-		}
 		break;
 	case GL_DEPTH_COMPONENT16_OES:
 	case GL_DEPTH_COMPONENT32_OES:
@@ -806,13 +801,8 @@
 	switch(format)
 	{
 	case GL_ETC1_RGB8_OES:
-		break;
 	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
 	case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-		if(!S3TC_SUPPORT)
-		{
-			return error(GL_INVALID_ENUM);
-		}
 		break;
 	default:
 		return error(GL_INVALID_ENUM);
@@ -936,17 +926,9 @@
 			}
 			break;
 		case GL_ETC1_RGB8_OES:
-			return error(GL_INVALID_OPERATION);
 		case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
 		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-			if(S3TC_SUPPORT)
-			{
-				return error(GL_INVALID_OPERATION);
-			}
-			else
-			{
-				return error(GL_INVALID_ENUM);
-			}
+			return error(GL_INVALID_OPERATION);
 		default:
 			return error(GL_INVALID_ENUM);
 		}
@@ -2301,11 +2283,9 @@
 			"GL_OES_texture_npot "
 			"GL_EXT_blend_minmax "
 			"GL_EXT_read_format_bgra "
-			#if (S3TC_SUPPORT)
 			"GL_EXT_texture_compression_dxt1 "
 			"GL_ANGLE_texture_compression_dxt3 "
 			"GL_ANGLE_texture_compression_dxt5 "
-			#endif
 			"GL_EXT_texture_filter_anisotropic "
 			"GL_EXT_texture_format_BGRA8888";
 	default:
@@ -4266,17 +4246,9 @@
 		}
 		break;
 	case GL_ETC1_RGB8_OES:
-		return error(GL_INVALID_OPERATION);
 	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
 	case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-		if(S3TC_SUPPORT)
-		{
-			return error(GL_INVALID_OPERATION);
-		}
-		else
-		{
-			return error(GL_INVALID_ENUM);
-		}
+		return error(GL_INVALID_OPERATION);
 	case GL_DEPTH_STENCIL_OES:
 		switch(type)
 		{
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index 65e7d18..1a363af 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -4438,9 +4438,7 @@
 		"GL_EXT_instanced_arrays",
 		"GL_EXT_occlusion_query_boolean",
 		"GL_EXT_read_format_bgra",
-#if (S3TC_SUPPORT)
 		"GL_EXT_texture_compression_dxt1",
-#endif
 		"GL_EXT_texture_filter_anisotropic",
 		"GL_EXT_texture_format_BGRA8888",
 		"GL_EXT_texture_rg",
@@ -4452,10 +4450,8 @@
 		"GL_ANGLE_framebuffer_blit",
 		"GL_ANGLE_framebuffer_multisample",
 		"GL_ANGLE_instanced_arrays",
-#if (S3TC_SUPPORT)
 		"GL_ANGLE_texture_compression_dxt3",
 		"GL_ANGLE_texture_compression_dxt5",
-#endif
 		//"GL_APPLE_texture_format_BGRA8888",
 		"GL_CHROMIUM_texture_filtering_hint",
 		"GL_NV_fence",
diff --git a/src/OpenGL/libGLESv2/Context.h b/src/OpenGL/libGLESv2/Context.h
index c42a12a..4db4ba2 100644
--- a/src/OpenGL/libGLESv2/Context.h
+++ b/src/OpenGL/libGLESv2/Context.h
@@ -110,12 +110,10 @@
 const GLenum compressedTextureFormats[] =
 {
 	GL_ETC1_RGB8_OES,
-#if (S3TC_SUPPORT)
 	GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
 	GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
 	GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,
 	GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,
-#endif
 #if (GL_ES_VERSION_3_0)
 	GL_COMPRESSED_R11_EAC,
 	GL_COMPRESSED_SIGNED_R11_EAC,
diff --git a/src/OpenGL/libGLESv2/utilities.cpp b/src/OpenGL/libGLESv2/utilities.cpp
index 96c83d4..c909cd7 100644
--- a/src/OpenGL/libGLESv2/utilities.cpp
+++ b/src/OpenGL/libGLESv2/utilities.cpp
@@ -480,7 +480,7 @@
 		case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
 		case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
 		case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-			return S3TC_SUPPORT ? (expectCompressedFormats ? GL_NONE : GL_INVALID_OPERATION) : GL_INVALID_ENUM;
+			return expectCompressedFormats ? GL_NONE : GL_INVALID_OPERATION;
 		case GL_ETC1_RGB8_OES:
 			return expectCompressedFormats ? GL_NONE : GL_INVALID_OPERATION;
 		case GL_COMPRESSED_R11_EAC:
diff --git a/src/Renderer/Surface.cpp b/src/Renderer/Surface.cpp
index 4e2e26b..a2a783d 100644
--- a/src/Renderer/Surface.cpp
+++ b/src/Renderer/Surface.cpp
@@ -1135,9 +1135,7 @@
 
 			switch(format)
 			{
-			#if S3TC_SUPPORT
 			case FORMAT_DXT1:
-			#endif
 			case FORMAT_ATI1:
 			case FORMAT_ETC1:
 			case FORMAT_R11_EAC:
@@ -1193,10 +1191,8 @@
 			case FORMAT_RGBA_ASTC_12x12_KHR:
 			case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR:
 				return (unsigned char*)buffer + 16 * (x / 12) + (y / 12) * pitchB + z * sliceB;
-			#if S3TC_SUPPORT
 			case FORMAT_DXT3:
 			case FORMAT_DXT5:
-			#endif
 			case FORMAT_ATI2:
 				return (unsigned char*)buffer + 16 * (x / 4) + (y / 4) * pitchB + z * sliceB;
 			default:
@@ -1598,11 +1594,9 @@
 		case FORMAT_A32B32G32R32I:		return 16;
 		case FORMAT_A32B32G32R32UI:		return 16;
 		// Compressed formats
-		#if S3TC_SUPPORT
 		case FORMAT_DXT1:				return 2;   // Column of four pixels
 		case FORMAT_DXT3:				return 4;   // Column of four pixels
 		case FORMAT_DXT5:				return 4;   // Column of four pixels
-		#endif
 		case FORMAT_ATI1:				return 2;   // Column of four pixels
 		case FORMAT_ATI2:				return 4;   // Column of four pixels
 		case FORMAT_ETC1:				return 2;   // Column of four pixels
@@ -1716,9 +1710,7 @@
 
 		switch(format)
 		{
-		#if S3TC_SUPPORT
 		case FORMAT_DXT1:
-		#endif
 		case FORMAT_ETC1:
 		case FORMAT_R11_EAC:
 		case FORMAT_SIGNED_R11_EAC:
@@ -1765,11 +1757,9 @@
 		case FORMAT_RGBA_ASTC_12x12_KHR:
 		case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR:
 			return 16 * ((width + 11) / 12);
-		#if S3TC_SUPPORT
 		case FORMAT_DXT3:
 		case FORMAT_DXT5:
 			return 16 * ((width + 3) / 4);   // 128 bit per 4x4 block, computed per 4 rows
-		#endif
 		case FORMAT_ATI1:
 			return 2 * ((width + 3) / 4);    // 64 bit per 4x4 block, computed per row
 		case FORMAT_ATI2:
@@ -1801,11 +1791,9 @@
 
 		switch(format)
 		{
-		#if S3TC_SUPPORT
 		case FORMAT_DXT1:
 		case FORMAT_DXT3:
 		case FORMAT_DXT5:
-		#endif
 		case FORMAT_ETC1:
 		case FORMAT_R11_EAC:
 		case FORMAT_SIGNED_R11_EAC:
@@ -1882,11 +1870,9 @@
 			case FORMAT_X4R4G4B4:	decodeX4R4G4B4(destination, source);	break;   // FIXME: Check destination format
 			case FORMAT_A4R4G4B4:	decodeA4R4G4B4(destination, source);	break;   // FIXME: Check destination format
 			case FORMAT_P8:			decodeP8(destination, source);			break;   // FIXME: Check destination format
-			#if S3TC_SUPPORT
 			case FORMAT_DXT1:		decodeDXT1(destination, source);		break;   // FIXME: Check destination format
 			case FORMAT_DXT3:		decodeDXT3(destination, source);		break;   // FIXME: Check destination format
 			case FORMAT_DXT5:		decodeDXT5(destination, source);		break;   // FIXME: Check destination format
-			#endif
 			case FORMAT_ATI1:		decodeATI1(destination, source);		break;   // FIXME: Check destination format
 			case FORMAT_ATI2:		decodeATI2(destination, source);		break;   // FIXME: Check destination format
 			case FORMAT_R11_EAC:         decodeEAC(destination, source, 1, false); break; // FIXME: Check destination format
@@ -2252,7 +2238,6 @@
 		destination.unlockRect();
 	}
 
-#if S3TC_SUPPORT
 	void Surface::decodeDXT1(Buffer &internal, Buffer &external)
 	{
 		unsigned int *destSlice = (unsigned int*)internal.lockRect(0, 0, 0, LOCK_WRITEONLY);
@@ -2441,7 +2426,6 @@
 		external.unlockRect();
 		internal.unlockRect();
 	}
-#endif
 
 	void Surface::decodeATI1(Buffer &internal, Buffer &external)
 	{
@@ -2664,9 +2648,7 @@
 
 		switch(format)
 		{
-		#if S3TC_SUPPORT
 		case FORMAT_DXT1:
-		#endif
 		case FORMAT_ATI1:
 		case FORMAT_ETC1:
 		case FORMAT_R11_EAC:
@@ -2676,10 +2658,8 @@
 		case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
 		case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
 			return width4 * height4 * depth / 2;
-		#if S3TC_SUPPORT
 		case FORMAT_DXT3:
 		case FORMAT_DXT5:
-		#endif
 		case FORMAT_ATI2:
 		case FORMAT_RG11_EAC:
 		case FORMAT_SIGNED_RG11_EAC:
@@ -3041,11 +3021,9 @@
 		case FORMAT_X1R5G5B5:
 		case FORMAT_A1R5G5B5:
 		case FORMAT_A4R4G4B4:
-		#if S3TC_SUPPORT
 		case FORMAT_DXT1:
 		case FORMAT_DXT3:
 		case FORMAT_DXT5:
-		#endif
 		case FORMAT_ATI1:
 		case FORMAT_ATI2:
 			return true;
@@ -3089,11 +3067,9 @@
 	{
 		switch(format)
 		{
-		#if S3TC_SUPPORT
 		case FORMAT_DXT1:
 		case FORMAT_DXT3:
 		case FORMAT_DXT5:
-		#endif
 		case FORMAT_ATI1:
 		case FORMAT_ATI2:
 		case FORMAT_ETC1:
@@ -3901,11 +3877,9 @@
 		case FORMAT_SRGB8_A8:
 			return FORMAT_SRGB8_A8;
 		// Compressed formats
-		#if S3TC_SUPPORT
 		case FORMAT_DXT1:
 		case FORMAT_DXT3:
 		case FORMAT_DXT5:
-		#endif
 		case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
 		case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
 		case FORMAT_RGBA8_ETC2_EAC:
diff --git a/src/Renderer/Surface.hpp b/src/Renderer/Surface.hpp
index 062b0d7..650a2cf 100644
--- a/src/Renderer/Surface.hpp
+++ b/src/Renderer/Surface.hpp
@@ -390,7 +390,6 @@
 		typedef unsigned int dword;
 		typedef uint64_t qword;
 
-		#if S3TC_SUPPORT
 		struct DXT1
 		{
 			word c0;
@@ -424,7 +423,6 @@
 			word c1;
 			dword clut;
 		};
-		#endif
 
 		struct ATI2
 		{
@@ -472,11 +470,9 @@
 		static void decodeA4R4G4B4(Buffer &destination, Buffer &source);
 		static void decodeP8(Buffer &destination, Buffer &source);
 
-		#if S3TC_SUPPORT
 		static void decodeDXT1(Buffer &internal, Buffer &external);
 		static void decodeDXT3(Buffer &internal, Buffer &external);
 		static void decodeDXT5(Buffer &internal, Buffer &external);
-		#endif
 		static void decodeATI1(Buffer &internal, Buffer &external);
 		static void decodeATI2(Buffer &internal, Buffer &external);
 		static void decodeEAC(Buffer &internal, Buffer &external, int nbChannels, bool isSigned);