gles: remove pallete textures from compressed texture format support list for gles2 am: 41ab282144 am: 5d41f08df5 am: 7bf0ce9198

Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1708268

Change-Id: Icb969ff358e9fb533c925d1d8f6fec70956fe965
diff --git a/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp b/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp
index 2479750..fb00d41 100644
--- a/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp
+++ b/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp
@@ -1064,14 +1064,14 @@
         }
         break;
     case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = (GLboolean)getCompressedFormats(NULL);
+        *params = (GLboolean)getCompressedFormats(1, NULL);
         break;
     case GL_COMPRESSED_TEXTURE_FORMATS:
         {
-            int nparams = getCompressedFormats(NULL);
+            int nparams = getCompressedFormats(1, NULL);
             if (nparams>0) {
                 int * iparams = new int[nparams];
-                getCompressedFormats(iparams);
+                getCompressedFormats(1, iparams);
                 for (int i=0; i<nparams; i++) params[i] = (GLboolean)iparams[i];
                 delete [] iparams;
             }
@@ -1162,15 +1162,15 @@
         glGetFloatv(pname,&fParams[0]);
         break;
     case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = I2X(getCompressedFormats(NULL));
+        *params = I2X(getCompressedFormats(1, NULL));
         return;
         break;
     case GL_COMPRESSED_TEXTURE_FORMATS:
         {
-            int nparams = getCompressedFormats(NULL);
+            int nparams = getCompressedFormats(1, NULL);
             if (nparams>0) {
                 int * iparams = new int[nparams];
-                getCompressedFormats(iparams);
+                getCompressedFormats(1, iparams);
                 for (int i=0; i<nparams; i++) params[i] = I2X(iparams[i]);
                 delete [] iparams;
             }
@@ -1208,14 +1208,14 @@
         *params = (GLfloat)i;
         break;
     case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = (GLfloat)getCompressedFormats(NULL);
+        *params = (GLfloat)getCompressedFormats(1, NULL);
         break;
     case GL_COMPRESSED_TEXTURE_FORMATS:
         {
-            int nparams = getCompressedFormats(NULL);
+            int nparams = getCompressedFormats(1, NULL);
             if (nparams>0) {
                 int * iparams = new int[nparams];
-                getCompressedFormats(iparams);
+                getCompressedFormats(1, iparams);
                 for (int i=0; i<nparams; i++) params[i] = (GLfloat)iparams[i];
                 delete [] iparams;
             }
@@ -1266,10 +1266,10 @@
         }
         break;
     case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = getCompressedFormats(NULL);
+        *params = getCompressedFormats(1, NULL);
         break;
     case GL_COMPRESSED_TEXTURE_FORMATS:
-        getCompressedFormats(params);
+        getCompressedFormats(1, params);
         break;
     case GL_MAX_CLIP_PLANES:
         ctx->dispatcher().glGetIntegerv(pname,params);
diff --git a/stream-servers/glestranslator/GLES_V2/GLESv2Imp.cpp b/stream-servers/glestranslator/GLES_V2/GLESv2Imp.cpp
index 4b2855e..b31fa34 100644
--- a/stream-servers/glestranslator/GLES_V2/GLESv2Imp.cpp
+++ b/stream-servers/glestranslator/GLES_V2/GLESv2Imp.cpp
@@ -2086,14 +2086,14 @@
         break;
 
     case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = (T)getCompressedFormats(NULL);
+        *params = (T)getCompressedFormats(2, NULL);
         break;
     case GL_COMPRESSED_TEXTURE_FORMATS:
         {
-            int nparams = getCompressedFormats(NULL);
+            int nparams = getCompressedFormats(2, NULL);
             if (nparams > 0) {
                 int* iparams = new int[nparams];
-                getCompressedFormats(iparams);
+                getCompressedFormats(2, iparams);
                 for (int i = 0; i < nparams; i++) {
                     params[i] = (T)iparams[i];
                 }
diff --git a/stream-servers/glestranslator/GLcommon/TextureUtils.cpp b/stream-servers/glestranslator/GLcommon/TextureUtils.cpp
index 6e61e64..f47d6cd 100644
--- a/stream-servers/glestranslator/GLcommon/TextureUtils.cpp
+++ b/stream-servers/glestranslator/GLcommon/TextureUtils.cpp
@@ -64,26 +64,30 @@
     EXPAND_MACRO(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, astc_codec::FootprintType::k12x10, true) \
     EXPAND_MACRO(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, astc_codec::FootprintType::k12x12, true) \
 
-int getCompressedFormats(int* formats) {
+int getCompressedFormats(int majorVersion, int* formats) {
     static constexpr size_t kCount = MAX_SUPPORTED_PALETTE + MAX_ETC_SUPPORTED + kASTCFormatsCount;
+    int res = kCount;
+
+    if (majorVersion > 1) {
+        res -= MAX_SUPPORTED_PALETTE;
+    }
 
     if (formats) {
         size_t i = 0;
 
-        // Palette
-        formats[i++] = GL_PALETTE4_RGBA8_OES;
-        formats[i++] = GL_PALETTE4_RGBA4_OES;
-        formats[i++] = GL_PALETTE8_RGBA8_OES;
-        formats[i++] = GL_PALETTE8_RGBA4_OES;
-        formats[i++] = GL_PALETTE4_RGB8_OES;
-        formats[i++] = GL_PALETTE8_RGB8_OES;
-        formats[i++] = GL_PALETTE4_RGB5_A1_OES;
-        formats[i++] = GL_PALETTE8_RGB5_A1_OES;
-        formats[i++] = GL_PALETTE4_R5_G6_B5_OES;
-        formats[i++] = GL_PALETTE8_R5_G6_B5_OES;
-
-        assert(i == MAX_SUPPORTED_PALETTE &&
-               "getCompressedFormats size mismatch");
+        if (1 == majorVersion) {
+            // Palette
+            formats[i++] = GL_PALETTE4_RGBA8_OES;
+            formats[i++] = GL_PALETTE4_RGBA4_OES;
+            formats[i++] = GL_PALETTE8_RGBA8_OES;
+            formats[i++] = GL_PALETTE8_RGBA4_OES;
+            formats[i++] = GL_PALETTE4_RGB8_OES;
+            formats[i++] = GL_PALETTE8_RGB8_OES;
+            formats[i++] = GL_PALETTE4_RGB5_A1_OES;
+            formats[i++] = GL_PALETTE8_RGB5_A1_OES;
+            formats[i++] = GL_PALETTE4_R5_G6_B5_OES;
+            formats[i++] = GL_PALETTE8_R5_G6_B5_OES;
+        }
 
         // ETC
         formats[i++] = GL_ETC1_RGB8_OES;
@@ -99,9 +103,6 @@
         formats[i++] = GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC;
         formats[i++] = GL_COMPRESSED_R11_EAC;
 
-        assert(i == MAX_SUPPORTED_PALETTE + MAX_ETC_SUPPORTED &&
-               "getCompressedFormats size mismatch");
-
         // ASTC
 #define ASTC_FORMAT(typeName, footprintType, srgbValue) \
         formats[i++] = typeName;
@@ -109,10 +110,9 @@
         ASTC_FORMATS_LIST(ASTC_FORMAT)
 #undef ASTC_FORMAT
 
-        assert(i == kCount && "getCompressedFormats size mismatch");
     }
 
-    return kCount;
+    return res;
 }
 
 ETC2ImageFormat getEtcFormat(GLenum internalformat) {
diff --git a/stream-servers/glestranslator/include/GLcommon/TextureUtils.h b/stream-servers/glestranslator/include/GLcommon/TextureUtils.h
index 641011e..b5034d0 100644
--- a/stream-servers/glestranslator/include/GLcommon/TextureUtils.h
+++ b/stream-servers/glestranslator/include/GLcommon/TextureUtils.h
@@ -37,7 +37,7 @@
 bool isBptcFormat(GLenum internalformat);
 bool isS3tcFormat(GLenum internalformat);
 bool isPaletteFormat(GLenum internalformat);
-int getCompressedFormats(int* formats);
+int getCompressedFormats(int majorVersion, int* formats);
 void doCompressedTexImage2D(GLEScontext* ctx, GLenum target, GLint level,
                             GLenum internalformat, GLsizei width,
                             GLsizei height, GLint border, GLsizei imageSize,