diff options
author | Lingfeng Yang <lfy@google.com> | 2021-05-14 18:44:14 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-05-14 18:44:14 +0000 |
commit | 2a47ba53973efc1e056435b42d94b7c35a4cb1e9 (patch) | |
tree | d22d9d982b110d339ec5639abb12b5f58bdc02ee | |
parent | 5b03fdcc23234ebc16a5542c1110d7fc7fb8dcd2 (diff) | |
parent | c2515aaf47893aceb4e08c7719c6dbe146f50b28 (diff) | |
download | vulkan-cereal-2a47ba53973efc1e056435b42d94b7c35a4cb1e9.tar.gz |
gles: remove pallete textures from compressed texture format support list for gles2 am: 41ab282144 am: 5d41f08df5 am: 7bf0ce9198 am: c2515aaf47
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1708268
Change-Id: Id6508d8f2e80c8444b17c268585d80a57c32f27a
4 files changed, 35 insertions, 35 deletions
diff --git a/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp b/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp index 24797502..fb00d415 100644 --- a/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp +++ b/stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp @@ -1064,14 +1064,14 @@ GL_API void GL_APIENTRY glGetBooleanv( GLenum pname, GLboolean *params) { } 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 @@ GL_API void GL_APIENTRY glGetFixedv( GLenum pname, GLfixed *params) { 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 @@ GL_API void GL_APIENTRY glGetFloatv( GLenum pname, GLfloat *params) { *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 @@ GL_API void GL_APIENTRY glGetIntegerv( GLenum pname, GLint *params) { } 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 4b2855ea..b31fa345 100644 --- a/stream-servers/glestranslator/GLES_V2/GLESv2Imp.cpp +++ b/stream-servers/glestranslator/GLES_V2/GLESv2Imp.cpp @@ -2086,14 +2086,14 @@ static void s_glStateQueryTv(bool es2, GLenum pname, T* params, GLStateQueryFunc 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 6e61e64a..f47d6cd4 100644 --- a/stream-servers/glestranslator/GLcommon/TextureUtils.cpp +++ b/stream-servers/glestranslator/GLcommon/TextureUtils.cpp @@ -64,26 +64,30 @@ static constexpr size_t kASTCFormatsCount = 28; 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 @@ int getCompressedFormats(int* formats) { 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 @@ int getCompressedFormats(int* formats) { 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 641011ea..b5034d0a 100644 --- a/stream-servers/glestranslator/include/GLcommon/TextureUtils.h +++ b/stream-servers/glestranslator/include/GLcommon/TextureUtils.h @@ -37,7 +37,7 @@ bool isEtc2Format(GLenum internalformat); 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, |