Merge pi-qpr1-release PQ1A.181105.017.A1 to pi-platform-release
Change-Id: Ib4e310cd8dd58202d9847fbeca00454d5b705bc5
diff --git a/shared/OpenglCodecCommon/GLClientState.h b/shared/OpenglCodecCommon/GLClientState.h
index 675cea4..491fb73 100644
--- a/shared/OpenglCodecCommon/GLClientState.h
+++ b/shared/OpenglCodecCommon/GLClientState.h
@@ -146,9 +146,9 @@
struct VAOState {
VAOState(GLuint ibo, int nLoc, int nBindings) :
- element_array_buffer_binding(ibo),
attribState(nLoc),
- bindingState(nBindings) { }
+ bindingState(nBindings),
+ element_array_buffer_binding(ibo) { }
VertexAttribStateVector attribState;
VertexAttribBindingVector bindingState;
GLuint element_array_buffer_binding;
diff --git a/shared/OpenglCodecCommon/IndexRangeCache.h b/shared/OpenglCodecCommon/IndexRangeCache.h
index f19bd24..5f77958 100644
--- a/shared/OpenglCodecCommon/IndexRangeCache.h
+++ b/shared/OpenglCodecCommon/IndexRangeCache.h
@@ -75,10 +75,8 @@
primitiveRestartEnabled(_primitiveRestart) { }
bool operator<(const IndexRangeKey& rhs) const {
- size_t start = offset;
size_t start_other = rhs.offset;
size_t end = offset + count * glSizeof(type);
- size_t end_other = rhs.offset + rhs.count * glSizeof(rhs.type);
if (end <= start_other) {
return true;
diff --git a/shared/OpenglCodecCommon/SocketStream.cpp b/shared/OpenglCodecCommon/SocketStream.cpp
index f7a2314..e813142 100644
--- a/shared/OpenglCodecCommon/SocketStream.cpp
+++ b/shared/OpenglCodecCommon/SocketStream.cpp
@@ -112,7 +112,6 @@
const unsigned char *SocketStream::readFully(void *buf, size_t len)
{
- const unsigned char* ret = NULL;
if (!valid()) return NULL;
if (!buf) {
return NULL; // do not allow NULL buf in that implementation
diff --git a/system/GLESv1_enc/GLEncoder.cpp b/system/GLESv1_enc/GLEncoder.cpp
index b698fae..8db973f 100644
--- a/system/GLESv1_enc/GLEncoder.cpp
+++ b/system/GLESv1_enc/GLEncoder.cpp
@@ -752,8 +752,6 @@
GLenum target, GLenum pname, GLfloat* params)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
-
if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
ctx->override2DTextureTarget(target);
ctx->m_glGetTexParameterfv_enc(ctx, GL_TEXTURE_2D, pname, params);
@@ -767,7 +765,6 @@
GLenum target, GLenum pname, GLint* params)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
switch (pname) {
case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES:
@@ -790,7 +787,6 @@
GLenum target, GLenum pname, GLfixed* params)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
ctx->override2DTextureTarget(target);
@@ -824,7 +820,6 @@
GLenum target, GLenum pname, GLfloat param)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
!isValidTextureExternalParam(pname, (GLenum)param)),
@@ -843,7 +838,6 @@
GLenum target, GLenum pname, const GLfloat* params)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
!isValidTextureExternalParam(pname, (GLenum)params[0])),
@@ -862,7 +856,6 @@
GLenum target, GLenum pname, GLint param)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
!isValidTextureExternalParam(pname, (GLenum)param)),
@@ -881,7 +874,6 @@
GLenum target, GLenum pname, GLfixed param)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
!isValidTextureExternalParam(pname, (GLenum)param)),
@@ -900,7 +892,6 @@
GLenum target, GLenum pname, const GLint* params)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
!isValidTextureExternalParam(pname, (GLenum)params[0])),
@@ -919,7 +910,6 @@
GLenum target, GLenum pname, const GLfixed* params)
{
GLEncoder* ctx = (GLEncoder*)self;
- const GLClientState* state = ctx->m_state;
SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
!isValidTextureExternalParam(pname, (GLenum)params[0])),
diff --git a/system/GLESv2/gl2.cpp b/system/GLESv2/gl2.cpp
index 331da78..0a2bf8e 100644
--- a/system/GLESv2/gl2.cpp
+++ b/system/GLESv2/gl2.cpp
@@ -83,7 +83,7 @@
GET_CONTEXT;
ctx->override2DTextureTarget(target);
ctx->associateEGLImage(target, hostImage);
- ctx->m_glEGLImageTargetTexture2DOES_enc(self, target, hostImage);
+ ctx->m_glEGLImageTargetTexture2DOES_enc(self, GL_TEXTURE_2D, hostImage);
ctx->restore2DTextureTarget(target);
}
}
diff --git a/system/GLESv2_enc/GL2Encoder.cpp b/system/GLESv2_enc/GL2Encoder.cpp
index cbc0c32..8b07e66 100755
--- a/system/GLESv2_enc/GL2Encoder.cpp
+++ b/system/GLESv2_enc/GL2Encoder.cpp
@@ -426,7 +426,7 @@
}
~ScopedQueryUpdate() {
GLint hostError = mErrorUpdater.getHostErrorAndUpdate();
- if (hostError == GL_NO_ERROR) {
+ if (hostError == GL_NO_ERROR && mTarget) {
memcpy(mTarget, &mBuf[0], mBuf.size());
}
mErrorUpdater.updateGuestErrorState();
diff --git a/system/GLESv2_enc/GLESv2Validation.cpp b/system/GLESv2_enc/GLESv2Validation.cpp
index c703325..f736e23 100644
--- a/system/GLESv2_enc/GLESv2Validation.cpp
+++ b/system/GLESv2_enc/GLESv2Validation.cpp
@@ -55,7 +55,6 @@
bool bufferParam(GL2Encoder* ctx, GLenum pname) {
int glesMajorVersion = ctx->majorVersion();
- int glesMinorVersion = ctx->minorVersion();
switch (pname) {
case GL_BUFFER_SIZE:
case GL_BUFFER_USAGE:
@@ -289,7 +288,7 @@
return retval;
}
-bool readPixelsFboFormatMatch(GLenum format, GLenum type, GLenum fboTexType) {
+bool readPixelsFboFormatMatch(GLenum, GLenum type, GLenum fboTexType) {
#define INVALID_TYPE_MATCH(x, y) \
if (type == x && fboTexType == y) return false; \
if (type == y && fboTexType == x) return false; \
@@ -429,6 +428,11 @@
bool supportedCompressedFormat(GL2Encoder* ctx, GLenum internalformat) {
int glesMajorVersion = ctx->majorVersion();
int glesMinorVersion = ctx->minorVersion();
+
+#define COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(internal) \
+ case internal: \
+ return glesMajorVersion > 1 && ctx->hasExtension("GL_KHR_texture_compression_astc_ldr"); \
+
#define COMPRESSED_TEX_IMAGE_SUPPORT_CASE(internal, maj, min) \
case internal: \
if (maj < 3) return true; \
@@ -451,34 +455,34 @@
COMPRESSED_TEX_IMAGE_SUPPORT_CASE(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 2, 0)
COMPRESSED_TEX_IMAGE_SUPPORT_CASE(GL_COMPRESSED_RGBA8_ETC2_EAC, 2, 0)
COMPRESSED_TEX_IMAGE_SUPPORT_CASE(GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 2, 0)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_4x4_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_5x4_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_5x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_6x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_6x6_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_8x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_8x6_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_8x8_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_10x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_10x6_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_10x8_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_10x10_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_12x10_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_RGBA_ASTC_12x12_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR)
- COMPRESSED_TEX_IMAGE_NOTSUPPORTED(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_4x4_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_5x4_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_5x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_6x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_6x6_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_8x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_8x6_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_8x8_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_10x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_10x6_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_10x8_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_10x10_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_12x10_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_RGBA_ASTC_12x12_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR)
+ COMPRESSED_TEX_IMAGE_SUPPORT_CASE_ASTC(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR)
default:
break;
}
@@ -586,7 +590,7 @@
return false;
}
-bool depthRenderableFormat(GL2Encoder* ctx, GLenum internalformat) {
+bool depthRenderableFormat(GL2Encoder*, GLenum internalformat) {
switch (internalformat) {
case GL_DEPTH_COMPONENT:
case GL_DEPTH_STENCIL:
@@ -600,7 +604,7 @@
return false;
}
-bool stencilRenderableFormat(GL2Encoder* ctx, GLenum internalformat) {
+bool stencilRenderableFormat(GL2Encoder*, GLenum internalformat) {
switch (internalformat) {
case GL_DEPTH_STENCIL:
case GL_STENCIL_INDEX8:
diff --git a/system/OpenglSystemCommon/ThreadInfo.cpp b/system/OpenglSystemCommon/ThreadInfo.cpp
index 9e11624..425904e 100644
--- a/system/OpenglSystemCommon/ThreadInfo.cpp
+++ b/system/OpenglSystemCommon/ThreadInfo.cpp
@@ -18,7 +18,9 @@
thread_store_t s_tls = THREAD_STORE_INITIALIZER;
-static bool sDefaultTlsDestructorCallback(void* ptr) { return true; }
+static bool sDefaultTlsDestructorCallback(__attribute__((__unused__)) void* ptr) {
+ return true;
+}
static bool (*sTlsDestructorCallback)(void*) = sDefaultTlsDestructorCallback;
static void tlsDestruct(void *ptr)
diff --git a/system/OpenglSystemCommon/ThreadInfo.h b/system/OpenglSystemCommon/ThreadInfo.h
index 06d9267..57fd5ef 100644
--- a/system/OpenglSystemCommon/ThreadInfo.h
+++ b/system/OpenglSystemCommon/ThreadInfo.h
@@ -21,7 +21,6 @@
#include <bionic_tls.h>
struct EGLContext_t;
-struct HostConnection;
struct EGLThreadInfo
{
diff --git a/system/OpenglSystemCommon/goldfish_dma.cpp b/system/OpenglSystemCommon/goldfish_dma.cpp
index ccb8fda..046367d 100644
--- a/system/OpenglSystemCommon/goldfish_dma.cpp
+++ b/system/OpenglSystemCommon/goldfish_dma.cpp
@@ -35,8 +35,8 @@
int goldfish_dma_create_region(uint32_t sz, struct goldfish_dma_context* res) {
res->fd = qemu_pipe_open("opengles");
- res->mapped = NULL;
- res->sz = 0;
+ res->mapped_addr = 0;
+ res->size = 0;
if (res->fd > 0) {
// now alloc
@@ -52,9 +52,9 @@
return alloc_res;
}
- res->sz = sz;
- ALOGV("%s: successfully allocated goldfish DMA region with size %lu cxt=%p",
- __FUNCTION__, sz, res);
+ res->size = sz;
+ ALOGV("%s: successfully allocated goldfish DMA region with size %u cxt=%p fd=%d",
+ __FUNCTION__, sz, res, res->fd);
return 0;
} else {
ALOGE("%s: could not obtain fd to device! fd %d errno=%d\n",
@@ -65,31 +65,35 @@
void* goldfish_dma_map(struct goldfish_dma_context* cxt) {
ALOGV("%s: on fd %d errno=%d", __FUNCTION__, cxt->fd, errno);
- cxt->mapped = mmap(0, cxt->sz, PROT_WRITE, MAP_SHARED, cxt->fd, 0);
- ALOGV("%s: mapped addr=%p errno=%d", __FUNCTION__, cxt->mapped, errno);
+ void *mapped = mmap(0, cxt->size, PROT_WRITE, MAP_SHARED, cxt->fd, 0);
+ ALOGV("%s: cxt=%p mapped=%p size=%u errno=%d",
+ __FUNCTION__, cxt, mapped, cxt->size, errno);
- if (cxt->mapped == MAP_FAILED) {
- cxt->mapped = NULL;
+ if (mapped == MAP_FAILED) {
+ mapped = NULL;
}
- return cxt->mapped;
+
+ cxt->mapped_addr = reinterpret_cast<uint64_t>(mapped);
+ return mapped;
}
int goldfish_dma_unmap(struct goldfish_dma_context* cxt) {
- munmap(cxt->mapped, cxt->sz);
- cxt->mapped = NULL;
- cxt->sz = 0;
+ ALOGV("%s: cxt=%p mapped=0x%08llx", __FUNCTION__, cxt, cxt->mapped_addr);
+ munmap(reinterpret_cast<void *>(cxt->mapped_addr), cxt->size);
+ cxt->mapped_addr = 0;
+ cxt->size = 0;
return 0;
}
void goldfish_dma_write(struct goldfish_dma_context* cxt,
- void* to_write,
+ const void* to_write,
uint32_t sz) {
- ALOGV("%s: mapped addr=%p", __FUNCTION__, cxt->mapped);
- memcpy(cxt->mapped, to_write, sz);
+ ALOGV("%s: cxt=%p mapped=0x%08llx to_write=%p size=%u",
+ __FUNCTION__, cxt, cxt->mapped_addr, to_write, sz);
+ memcpy(reinterpret_cast<void *>(cxt->mapped_addr), to_write, sz);
}
void goldfish_dma_free(goldfish_dma_context* cxt) {
- struct goldfish_dma_ioctl_info info;
close(cxt->fd);
}
diff --git a/system/OpenglSystemCommon/goldfish_dma.h b/system/OpenglSystemCommon/goldfish_dma.h
index 8a09c0e..6c1b09a 100644
--- a/system/OpenglSystemCommon/goldfish_dma.h
+++ b/system/OpenglSystemCommon/goldfish_dma.h
@@ -42,13 +42,9 @@
// userspace interface
struct goldfish_dma_context {
- void* mapped;
-#if !defined(__LP64__)
- int mapped_padding;
-#endif
- uint64_t sz; // size of reservation
- int fd;
- int fd_padding;
+ uint64_t mapped_addr;
+ uint32_t size;
+ int32_t fd;
};
int goldfish_dma_lock(struct goldfish_dma_context* cxt);
@@ -59,7 +55,7 @@
int goldfish_dma_unmap(struct goldfish_dma_context* cxt);
void goldfish_dma_write(struct goldfish_dma_context* cxt,
- void* to_write,
+ const void* to_write,
uint32_t sz);
void goldfish_dma_free(goldfish_dma_context* cxt);
diff --git a/system/OpenglSystemCommon/qemu_pipe.h b/system/OpenglSystemCommon/qemu_pipe.h
index 47387ab..52f4ee7 100644
--- a/system/OpenglSystemCommon/qemu_pipe.h
+++ b/system/OpenglSystemCommon/qemu_pipe.h
@@ -69,7 +69,7 @@
{
char buff[256];
int buffLen;
- int fd, ret;
+ int fd;
if (pipeName == NULL || pipeName[0] == '\0') {
errno = EINVAL;
diff --git a/system/egl/egl.cpp b/system/egl/egl.cpp
index 16285f9..e52c5bd 100644
--- a/system/egl/egl.cpp
+++ b/system/egl/egl.cpp
@@ -282,7 +282,7 @@
void setTextureTarget(EGLint _texTarget) { texTarget = _texTarget; }
EGLint getTextureTarget() { return texTarget; }
- virtual void setCollectingTimestamps(EGLint collect) { }
+ virtual void setCollectingTimestamps(EGLint) { }
virtual EGLint isCollectingTimestamps() const { return EGL_FALSE; }
EGLint deletePending;
void setIsCurrent(bool isCurrent) { mIsCurrent = isCurrent; }
@@ -312,8 +312,8 @@
};
egl_surface_t::egl_surface_t(EGLDisplay dpy, EGLConfig config, EGLint surfaceType)
- : dpy(dpy), config(config), surfaceType(surfaceType), rcSurface(0),
- deletePending(0), mIsCurrent(false)
+ : dpy(dpy), config(config), deletePending(0), mIsCurrent(false),
+ surfaceType(surfaceType), rcSurface(0)
{
width = 0;
height = 0;
@@ -712,14 +712,14 @@
int extStart = 0;
int extEnd = 0;
int currentExtIndex = 0;
- int numExts = 0;
if (sWantES30OrAbove(hostStr) &&
!strstr(hostStr, kOESEGLImageExternalEssl3)) {
res.push_back(kOESEGLImageExternalEssl3);
}
- while (extEnd < strlen(hostStr)) {
+ const int hostStrLen = strlen(hostStr);
+ while (extEnd < hostStrLen) {
if (hostStr[extEnd] == ' ') {
int extSz = extEnd - extStart;
res.push_back(std::string(hostStr + extStart, extSz));
@@ -777,7 +777,7 @@
std::vector<std::string> exts = getExtStringArray();
int totalSz = 1; // null terminator
- for (int i = 0; i < exts.size(); i++) {
+ for (unsigned int i = 0; i < exts.size(); i++) {
totalSz += exts[i].size() + 1; // for space
}
@@ -787,7 +787,7 @@
memset(hostStr, 0, totalSz);
char* current = hostStr;
- for (int i = 0; i < exts.size(); i++) {
+ for (unsigned int i = 0; i < exts.size(); i++) {
memcpy(current, exts[i].c_str(), exts[i].size());
current += exts[i].size();
*current = ' ';
@@ -818,6 +818,7 @@
// ----------------------------------------------------------------------------
+// Note: C99 syntax was tried here but does not work for all compilers.
static EGLClient_eglInterface s_eglIface = {
getThreadInfo: getEGLThreadInfo,
getGLString: getGLString,
@@ -1103,7 +1104,6 @@
VALIDATE_DISPLAY_INIT(dpy, EGL_FALSE);
VALIDATE_SURFACE_RETURN(eglSurface, EGL_FALSE);
- EGLThreadInfo* tInfo = getEGLThreadInfo();
egl_surface_t* surface(static_cast<egl_surface_t*>(eglSurface));
if (surface->isCurrent()) {
surface->deletePending = 1;
@@ -1436,7 +1436,6 @@
EGLint minorVersion = 0;
EGLint context_flags = 0;
EGLint profile_mask = 0;
- EGLint reset_notification_strategy = 0;
bool wantedMajorVersion = false;
bool wantedMinorVersion = false;
@@ -1642,9 +1641,9 @@
return EGL_TRUE;
}
+ // Destroy surfaces while the previous context is still current.
+ EGLContext_t* prevCtx = tInfo->currentContext;
if (tInfo->currentContext) {
- EGLContext_t* prevCtx = tInfo->currentContext;
-
if (prevCtx->draw) {
static_cast<egl_surface_t *>(prevCtx->draw)->setIsCurrent(false);
}
@@ -1652,11 +1651,6 @@
static_cast<egl_surface_t *>(prevCtx->read)->setIsCurrent(false);
}
s_destroyPendingSurfacesInContext(tInfo->currentContext);
-
- if (prevCtx->deletePending && prevCtx != context) {
- tInfo->currentContext = 0;
- eglDestroyContext(dpy, prevCtx);
- }
}
if (context && (context->flags & EGLContext_t::IS_CURRENT) && (context != tInfo->currentContext)) {
@@ -1768,11 +1762,15 @@
}
+ // Delete the previous context here
if (tInfo->currentContext && (tInfo->currentContext != context)) {
tInfo->currentContext->flags &= ~EGLContext_t::IS_CURRENT;
+ if (tInfo->currentContext->deletePending && tInfo->currentContext != context) {
+ eglDestroyContext(dpy, tInfo->currentContext);
+ }
}
- //Now make current
+ // Now the new context is current in tInfo
tInfo->currentContext = context;
//Check maybe we need to init the encoder, if it's first eglMakeCurrent
diff --git a/system/gralloc/gralloc.cpp b/system/gralloc/gralloc.cpp
index cabc27b..fc68f4e 100644
--- a/system/gralloc/gralloc.cpp
+++ b/system/gralloc/gralloc.cpp
@@ -52,6 +52,8 @@
#define DBG_FUNC DBG("%s\n", __FUNCTION__)
+#define GOLDFISH_OFFSET_UNIT 8
+
#ifdef GOLDFISH_HIDL_GRALLOC
static bool isHidlGralloc = true;
#else
@@ -64,8 +66,8 @@
uint32_t getAshmemColorOffset(cb_handle_t* cb) {
uint32_t res = 0;
- if (cb->canBePosted()) res = sizeof(intptr_t);
- if (isHidlGralloc) res = sizeof(intptr_t) * 2;
+ if (cb->canBePosted()) res = GOLDFISH_OFFSET_UNIT;
+ if (isHidlGralloc) res = GOLDFISH_OFFSET_UNIT * 2;
return res;
}
@@ -165,7 +167,7 @@
static void resize_gralloc_dmaregion_locked(uint32_t new_sz) {
if (!s_grdma) return;
- if (s_grdma->goldfish_dma.mapped) {
+ if (s_grdma->goldfish_dma.mapped_addr) {
goldfish_dma_unmap(&s_grdma->goldfish_dma);
}
close(s_grdma->goldfish_dma.fd);
@@ -211,7 +213,7 @@
resize_gralloc_dmaregion_locked(new_sz);
}
}
- if (!s_grdma->goldfish_dma.mapped) {
+ if (!s_grdma->goldfish_dma.mapped_addr) {
goldfish_dma_map(&s_grdma->goldfish_dma);
}
pthread_mutex_unlock(&s_grdma->lock);
@@ -633,12 +635,12 @@
if (needHostCb || (usage & GRALLOC_USAGE_HW_FB)) {
// keep space for postCounter
// AND openCounter for all host cb
- ashmem_size += sizeof(uint32_t) * 2;
+ ashmem_size += GOLDFISH_OFFSET_UNIT * 2;
}
} else {
if (usage & GRALLOC_USAGE_HW_FB) {
// keep space for postCounter
- ashmem_size += sizeof(uint32_t) * 1;
+ ashmem_size += GOLDFISH_OFFSET_UNIT * 1;
}
}