summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingfeng Yang <lfy@google.com>2021-05-14 18:21:05 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-05-14 18:21:05 +0000
commitc2515aaf47893aceb4e08c7719c6dbe146f50b28 (patch)
treed22d9d982b110d339ec5639abb12b5f58bdc02ee
parenta4152617fef8edfc23a26c33f973dd1af844d269 (diff)
parent7bf0ce9198c0a82683e335d61412a47cf2150c96 (diff)
downloadvulkan-cereal-android12-qpr1-d-release.tar.gz
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1708268 Change-Id: Icb969ff358e9fb533c925d1d8f6fec70956fe965
-rw-r--r--stream-servers/glestranslator/GLES_CM/GLEScmImp.cpp22
-rw-r--r--stream-servers/glestranslator/GLES_V2/GLESv2Imp.cpp6
-rw-r--r--stream-servers/glestranslator/GLcommon/TextureUtils.cpp40
-rw-r--r--stream-servers/glestranslator/include/GLcommon/TextureUtils.h2
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,