diff options
author | Hailin Zhang <hailinzhang@google.com> | 2022-02-10 17:47:56 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2022-02-10 17:47:56 +0000 |
commit | 8a8a7080d3e2d4f79711bc9509dac553db2b6615 (patch) | |
tree | 1c932bc3e1fe9aee4143812a84b05875ac354eb0 | |
parent | d28d4e416abb012213f3f7b2b6cdee36cc207450 (diff) | |
parent | 57aadf59e9a23e509294c19ce77909152f09a748 (diff) | |
download | vulkan-cereal-android-t-preview-1.tar.gz |
Merge "fix unpack alignment issue"android-t-preview-2android-t-preview-1android-t-beta-3android-t-preview-1
3 files changed, 6 insertions, 11 deletions
diff --git a/stream-servers/glestranslator/GLcommon/GLEScontext.cpp b/stream-servers/glestranslator/GLcommon/GLEScontext.cpp index f8131dc4..d32c94cc 100644 --- a/stream-servers/glestranslator/GLcommon/GLEScontext.cpp +++ b/stream-servers/glestranslator/GLcommon/GLEScontext.cpp @@ -972,11 +972,6 @@ const GLvoid* GLEScontext::setPointer(GLenum arrType,GLint size,GLenum type,GLsi return data; } -GLint GLEScontext::getUnpackAlignment() { - return android::base::findOrDefault(m_glPixelStoreiList, - GL_UNPACK_ALIGNMENT, 4); -} - void GLEScontext::enableArr(GLenum arr,bool enable) { auto vertexAttrib = m_currVaoState.find(arr); if (vertexAttrib != m_currVaoState.end()) { diff --git a/stream-servers/glestranslator/GLcommon/TextureUtils.cpp b/stream-servers/glestranslator/GLcommon/TextureUtils.cpp index 2daf1dd1..5c5421a5 100644 --- a/stream-servers/glestranslator/GLcommon/TextureUtils.cpp +++ b/stream-servers/glestranslator/GLcommon/TextureUtils.cpp @@ -408,6 +408,7 @@ void doCompressedTexImage2D(GLEScontext* ctx, GLenum target, GLint level, needUnpackBuffer = unpackBuffer; } TextureUnpackReset unpack(ctx); + const int32_t unpackAlignment = TextureUnpackReset::kUnpackAlignment; if (isEtcFormat(internalformat)) { GLint format = GL_RGB; GLint type = GL_UNSIGNED_BYTE; @@ -474,7 +475,7 @@ void doCompressedTexImage2D(GLEScontext* ctx, GLenum target, GLint level, } } - const int32_t align = ctx->getUnpackAlignment()-1; + const int32_t align = unpackAlignment - 1; const int32_t bpr = ((width * pixelSize) + align) & ~align; const size_t size = bpr * height; std::unique_ptr<etc1_byte[]> pOut(new etc1_byte[size]); @@ -496,7 +497,7 @@ void doCompressedTexImage2D(GLEScontext* ctx, GLenum target, GLint level, bool srgb; getAstcFormatInfo(internalformat, &footprint, &srgb); - const int32_t align = ctx->getUnpackAlignment() - 1; + const int32_t align = unpackAlignment - 1; const int32_t stride = ((width * 4) + align) & ~align; const size_t size = stride * height; @@ -582,7 +583,7 @@ void doCompressedTexImage2D(GLEScontext* ctx, GLenum target, GLint level, data = new char[compressedSize]; } } - const int32_t align = ctx->getUnpackAlignment() - 1; + const int32_t align = unpackAlignment - 1; const int32_t bpr = ((width * pixelSize) + align) & ~align; const size_t size = bpr * height; std::unique_ptr<uint8_t[]> pOut(new uint8_t[size]); @@ -1244,23 +1245,23 @@ GLint TextureUnpackReset::unpackCheckAndUpdate(GLenum name, GLint newValue) { } TextureUnpackReset::TextureUnpackReset(GLEScontext* ctx) : glesContext(ctx) { + unpackAlignment = unpackCheckAndUpdate(GL_UNPACK_ALIGNMENT, kUnpackAlignment); if (glesContext->getMajorVersion() >= 3) { unpackRowLength = unpackCheckAndUpdate(GL_UNPACK_ROW_LENGTH, kUnpackRowLength); unpackImageHeight = unpackCheckAndUpdate(GL_UNPACK_IMAGE_HEIGHT, kUnpackImageHeight); unpackSkipRows = unpackCheckAndUpdate(GL_UNPACK_SKIP_ROWS, kUnpackSkipRows); unpackSkipPixels = unpackCheckAndUpdate(GL_UNPACK_SKIP_PIXELS, kUnpackSkipPixels); unpackSkipImages = unpackCheckAndUpdate(GL_UNPACK_SKIP_IMAGES, kUnpackSkipImages); - unpackAlignment = unpackCheckAndUpdate(GL_UNPACK_ALIGNMENT, kUnpackAlignment); } } TextureUnpackReset::~TextureUnpackReset() { + unpackCheckAndUpdate(GL_UNPACK_ALIGNMENT, unpackAlignment); if (glesContext->getMajorVersion() >= 3) { unpackCheckAndUpdate(GL_UNPACK_ROW_LENGTH, unpackRowLength); unpackCheckAndUpdate(GL_UNPACK_IMAGE_HEIGHT, unpackImageHeight); unpackCheckAndUpdate(GL_UNPACK_SKIP_ROWS, unpackSkipRows); unpackCheckAndUpdate(GL_UNPACK_SKIP_PIXELS, unpackSkipPixels); unpackCheckAndUpdate(GL_UNPACK_SKIP_IMAGES, unpackSkipImages); - unpackCheckAndUpdate(GL_UNPACK_ALIGNMENT, unpackAlignment); } } diff --git a/stream-servers/glestranslator/include/GLcommon/GLEScontext.h b/stream-servers/glestranslator/include/GLcommon/GLEScontext.h index 4ebf1871..bedf1226 100644 --- a/stream-servers/glestranslator/include/GLcommon/GLEScontext.h +++ b/stream-servers/glestranslator/include/GLcommon/GLEScontext.h @@ -238,7 +238,6 @@ public: ObjectLocalName getTextureLocalName(GLenum target, unsigned int tex); bool isInitialized() { return m_initialized; }; bool needRestore(); - GLint getUnpackAlignment(); bool isArrEnabled(GLenum); virtual void enableArr(GLenum arr,bool enable); |