OSDN Git Service
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
David 'Digit' Turner [Fri, 31 Oct 2014 22:11:27 +0000 (23:11 +0100)]
opengl: Fix 64-bit build.
A previous patch broke the 64-bit with the following error message:
device/generic/goldfish/opengl/system/egl/egl.cpp: In function 'EGLBoolean eglGetConfigs(EGLDisplay, void**, EGLint, EGLint*)':
device/generic/goldfish/opengl/system/egl/egl.cpp:559:33: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
*configs++ = (EGLConfig)i;
This was due to the fact that the type of |i| went from uintptr_t to int.
This patch fixes the issue by casting i to (EGLConfig)(uintptr_t)i.
Change-Id: I3158c91d63b13eff3f8e8babb1faba8b58dc7373
David 'Digit' Turner [Fri, 31 Oct 2014 10:39:38 +0000 (11:39 +0100)]
opengl: Regenerate GPU emulation encoder sources.
This patch updates the encoder sources to match the auto-generated
output of the latest 'emugen' tools from sdk/emulator/opengl/
Generated by using external/qemu/distrib/update-emugl-source.sh
This shall only results in minor changes:
- Minor indentation fixes.
- Using 'const' to define constant tables.
- Using anonymous namespaces in the encoders.
Change-Id: Ib282b31c4c05da897157ef90e5a9deb914a08bda
David 'Digit' Turner [Thu, 30 Oct 2014 20:32:28 +0000 (21:32 +0100)]
opengl: Remove compiler warnings.
Simply remove multiple compiler warnings about unused parameter.
Note that this modifies three auto-generated files, which will
require fixing the 'emugen' program in the future.
Change-Id: I19edce7c6480770b893d033ed6b1c65744091d62
David 'Digit' Turner [Thu, 30 Oct 2014 17:15:04 +0000 (18:15 +0100)]
opengl: Remove accessor functions from encoders.
These functions are not necessary since all the fields are
public members of structures. Also gets us closer to the state
of the real emugen output, which isn't matched yet due to other
differences.
Change-Id: Iea092beca7e3a819c286fe3d84897e6a170747f8
David 'Digit' Turner [Thu, 30 Oct 2014 17:07:56 +0000 (18:07 +0100)]
opengl: Fix a few function name typos.
A small preliminary patch to make future patches slightly
simpler, easier to merge into the internal tree.
Change-Id: Iec649b61349106d4531a6e28141c0f0687a144c5
David 'Digit' Turner [Wed, 29 Oct 2014 08:55:08 +0000 (09:55 +0100)]
Fix GPU emulation crash.
This patch fixes the crash that occurs during boot when the
boot animation starts. The main issue is that the wrong version of
glGenTextures_enc() was being called.
The root issue is that libGLESv1_CM_emulation.so, which implements the
GLESv1 API in the system, is linked to both libGLESv2_enc.so and
libGLESv1_enc.so which both provided a glGenTextures_enc() function, used to
encode a glGenTextures() command call into the wire protocol.
Until recently, and due to pure luck, the function call in
libGLESv1_CM_emulation.so was resolved to the function in libGLESv1.so, which is
the correct version to use from this library.
However, due to recent changes in the dynamic linker's symbol resolution
implementation, the version in libGLESv2.so was being used instead. The bug is
really in our library and this patch provides a fix by removing the duplicate
functions, with the help of C++ namespaces.
NOTE: This patch modifies auto-generated code. A better fix would be to
fix the generator, then refresh the sources with its new output.
However, several other manual patches have been performed on these
files in the past too to fix other issues, so doing so would lose
the fixes.
A future patch will update the generator, and refresh all sources
accordingly. This is a "quick-fix" to get us to a proper booting
state.
NOTE: Even after applying this patch, the system boots to the 'home screen'
but fails to display the boot animation.
BUG=
18146046
Change-Id: I48cab73ad583e303723340e80d19a82fa301b61d
bohu [Tue, 21 Oct 2014 17:11:34 +0000 (17:11 +0000)]
Merge "Handle empty data parameter in glTexSubImage2D_enc"
bohu [Tue, 21 Oct 2014 17:10:56 +0000 (17:10 +0000)]
Merge "Allow glGetProgramInfoLog_enc to have empty length"
bohu [Tue, 21 Oct 2014 17:10:28 +0000 (17:10 +0000)]
Merge "Guard against negative buffer size"
bohu [Tue, 21 Oct 2014 17:09:47 +0000 (17:09 +0000)]
Merge "Guard against negative width and height"
bohu [Fri, 17 Oct 2014 23:38:50 +0000 (16:38 -0700)]
Handle empty data parameter in glTexSubImage2D_enc
Empty data parameter crashes emulator, this commit checks and handles
it properly.
Change-Id: Iee468bdc555acc1e0c87b38bd7f09ffd8f22b937
bohu [Fri, 17 Oct 2014 22:35:48 +0000 (15:35 -0700)]
Guard against negative buffer size
When negative buffer sizes are passed, emulator crashes. This commit
checks the buffer size and handles properly.
Change-Id: I223d5f5bcde2455e4b39354f9527dceb193b8e47
bohu [Fri, 17 Oct 2014 20:48:06 +0000 (13:48 -0700)]
Guard against negative width and height
When negative width or height passes into pixelDataSize, some bogus
values are returned. This commit checks both width and height to make
sure they are valid.
Change-Id: Ia49a9f464e6bb4894207ca4e07bbfdf34fbe741d
bohu [Fri, 17 Oct 2014 18:41:52 +0000 (11:41 -0700)]
Allow glGetProgramInfoLog_enc to have empty length
OpenGL standard allows empty length parameter and we should
handle it properly to avoid crashing emulator.
Change-Id: I07c1f726ee9d789fcba53986b724b8f4a1f07cf2
bohu [Fri, 17 Oct 2014 18:26:36 +0000 (11:26 -0700)]
Handle empty buffer in QemuPipeStream::writeFully
Print error message and return 0 when this happens (and it does happen),
similar to what QemuPipeStream::readFully does.
Change-Id: I14f2f2877e6b22e676d5bfe34a54435220e46127
bohu [Mon, 13 Oct 2014 18:45:06 +0000 (11:45 -0700)]
Fix emulator crashes on glDrawElements command
The current implementation does not properly handle the case when
glDrawElements is called without a buffer binded. This commit
fixes this problem and fixes the crash.
Change-Id: Ic7a5b2fb90c860dad878ed53a369349d479ba4e5
Alex Vallée [Wed, 24 Sep 2014 18:05:22 +0000 (14:05 -0400)]
Use more appropriate type in cb_handle_t::validate.
The interface specified by the HWC hal includes const native_handle
(through a typedef) which makes it annoying to const_cast away in order
to call validate.
Validate does not change the handle so this is safe.
Change-Id: I78b2997eb24074c186ab2d497b2faf332c7f4a85
David Turner [Thu, 24 Jul 2014 13:20:52 +0000 (13:20 +0000)]
Merge "Remove display initialization from eglGetProcAddress API"
Tina Zhang [Wed, 23 Jul 2014 08:34:48 +0000 (16:34 +0800)]
Remove display initialization from eglGetProcAddress API
We don't need to do the initialization in the eglGetProcAddress API. The work
can be finished in the eglInitialize API. When zygote pre-loading resources,
eglGetProcAddress will be called. If we let eglGetProcAddress do the display
initialization, zygote will get the "qemu-pipe" handle of the "opengles"
service. This is bad, because all the java processes which forked from zygote
will get the same handle from zygote. Then the host service cannot distinguish
from the device threads, and this will lead the emulator to crash.
Change-Id: I74ddc0db5c91c84afe0916f118937ef8f891b162
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
Signed-off-by: WeixingX Tian <weixingx.tian@intel.com>
Tina Zhang [Mon, 26 May 2014 06:03:48 +0000 (14:03 +0800)]
Make the size of "cb_handle_t" same for 32/64-bit
cb_handle_t is usually created by Surfaceflinger which is a 64-bit process on
64-bit platform, and used by client processes which could be 32-bit processes
or 64-bit processes. Since the "cb_handle_t" is like a protocol, we should make
its size same for both 32-bit and 64-bit processes.
Change-Id: I11011576a389db2662888abfaf62dfb8e5611b7c
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
Jesse Hall [Wed, 28 May 2014 21:01:14 +0000 (21:01 +0000)]
am
646f0b25: Merge "opengl: rcOpenColorBuffer must be synchronous"
* commit '
646f0b25e63164950d1d99b9b8021be74c2321c6':
opengl: rcOpenColorBuffer must be synchronous
Jesse Hall [Tue, 27 May 2014 16:25:24 +0000 (09:25 -0700)]
opengl: rcOpenColorBuffer must be synchronous
The gralloc register_buffer() function, which calls rcOpenColorBuffer,
must actually increment the reference count before returning.
Otherwise the buffer allocator may release its reference before the
client has obtained one, and the buffer will be freed prematurely.
Since rcOpenColorBuffer was just sending a message to the host without
waiting for it to be received/processed, this guarantee was not met.
Adding a return value makes the call synchronous.
Bug:
12988668
Change-Id: I8b2399cfb0f600f99b3387f630343291b59bc9a6
Greg Hackmann [Mon, 12 May 2014 18:04:52 +0000 (18:04 +0000)]
am
5cb5779a: Merge "gralloc: don\'t initialize reserved_proc"
* commit '
5cb5779ad0ad75a59bfb8ce42317a4ee18300281':
gralloc: don't initialize reserved_proc
Greg Hackmann [Fri, 9 May 2014 22:34:54 +0000 (15:34 -0700)]
gralloc: don't initialize reserved_proc
gcc supports designated initializers in C++ mode as an extension, but
*only* when all of the specified fields are at the beginning of the
struct. Hence initializing reserved_proc breaks compilation when new
procs are added.
Initializing reserved_proc makes a (spurious) warning go away, so
instead directly suppress that warning.
Change-Id: I279b7070b1aa7068c23fb59422589ff31980432d
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Bill Yi [Tue, 29 Apr 2014 18:33:40 +0000 (11:33 -0700)]
Tina Zhang [Fri, 18 Apr 2014 06:21:23 +0000 (14:21 +0800)]
Add 64-bit software GLES/EGL support in gralloc.goldfish module
If the emulator chooses running without using the host GPU to
do the GLES/EGL acceleration, the gralloc.goldfish module
must let the emulator use gralloc.default module which
can support the software GLES/EGL. Add this support for
64-bit emulator.
Change-Id: I241e70ce26a8f0298a32e3a55037fc3028a2e2a7
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
David Turner [Mon, 14 Apr 2014 14:35:21 +0000 (14:35 +0000)]
Merge "Fix the Chrome app crash in emulator issue"
David Turner [Sat, 12 Apr 2014 00:11:09 +0000 (00:11 +0000)]
Merge "Support GLES acceleration in 64bit emulator on device side"
Tina Zhang [Thu, 10 Apr 2014 08:53:36 +0000 (16:53 +0800)]
Fix the Chrome app crash in emulator issue
The TLS desctuctor callback function eglReleaseThread needs to
access EGLThreadInfo but it has been released by tlsDestruct.
That causes the crash issue when Chrome app is opened.
Change the EGLThreadInfo pointer value to NULL just after
EGLThreadInfo object is released, can fix the problem.
Change-Id: I7cdc7bdcd602af00369e570b0d2be168b76143a6
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
Tina Zhang [Tue, 8 Apr 2014 01:15:07 +0000 (09:15 +0800)]
Remove the useless folder and files in emulator GLES/EGL drivers
Files in OpenglOsUtils folder are useless for emulator GLES/EGL drivers.
Remove them to simplify the content.
Change-Id: I0a3cb572328cfa22b8567e8cd938f2a228f6167a
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
Tina Zhang [Fri, 21 Mar 2014 00:14:41 +0000 (08:14 +0800)]
Support GLES acceleration in 64bit emulator on device side
Support both 32bit and 64bit emulator GLES acceleration.
Change-Id: Ibd8b970d23937ae40732324706074ff00f433a14
Signed-off-by: Tina Zhang <tina.zhang@intel.com>
Elliott Hughes [Tue, 11 Mar 2014 00:52:53 +0000 (00:52 +0000)]
am
48a76778: Merge "Remove #include <asm/page.h>."
* commit '
48a76778937abadf5cbd260696a29d737134d0d9':
Remove #include <asm/page.h>.
Elliott Hughes [Tue, 25 Feb 2014 00:23:00 +0000 (16:23 -0800)]
Remove #include <asm/page.h>.
Change-Id: I1476efe9a706fe322ec23571c6375b847a0ccf2f
Colin Cross [Tue, 28 Jan 2014 00:51:43 +0000 (00:51 +0000)]
am
48107fa1: Merge "device/generic/goldfish: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH"
* commit '
48107fa1dd354f8667b74f335c3f82f472b7d112':
device/generic/goldfish: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH
Colin Cross [Sat, 25 Jan 2014 05:00:32 +0000 (21:00 -0800)]
device/generic/goldfish: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH
LOCAL_MODULE_PATH doesn't work for multiarch builds, replace it
with LOCAL_MODULE_RELATIVE_PATH.
Change-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e
The Android Open Source Project [Fri, 6 Dec 2013 01:25:09 +0000 (17:25 -0800)]
The Android Open Source Project [Thu, 5 Dec 2013 20:38:02 +0000 (12:38 -0800)]
The Android Open Source Project [Sat, 23 Nov 2013 01:31:51 +0000 (17:31 -0800)]
The Android Open Source Project [Fri, 22 Nov 2013 18:34:29 +0000 (10:34 -0800)]
Elliott Hughes [Fri, 22 Nov 2013 01:15:06 +0000 (17:15 -0800)]
am
2befc3ed: Merge "Modify the build targets for goldfish from to include aosp*."
* commit '
2befc3edc583afb43a4f6740f0af0534eac8e9d5':
Modify the build targets for goldfish from to include aosp*.
Raghu Gandham [Fri, 2 Aug 2013 00:21:00 +0000 (17:21 -0700)]
Modify the build targets for goldfish from to include aosp*.
This allows egl.cfg to be copied to $(TARGET_OUT)/lib/egl for aosp*
build targets. This patch fixes the emulator to boot with "-gpu on" flag.
Change-Id: I6c291a4a0fd82242d7f2ac41229be202aa7c71e0
Jesse Hall [Sat, 9 Nov 2013 23:37:44 +0000 (15:37 -0800)]
am
b9a7de1a: Merge "Delete buffer data when removing it from the SharedGroup namespace"
* commit '
b9a7de1a690bc638496e0550e6a9ebe859fc0315':
Delete buffer data when removing it from the SharedGroup namespace
Jesse Hall [Sat, 9 Nov 2013 23:28:21 +0000 (15:28 -0800)]
Delete buffer data when removing it from the SharedGroup namespace
Updating or deleting data associated with a buffer object was clearing
the name->data association, but not actually deallocating the data.
Thanks to manjian2006 for finding the bug and proposing the fix.
Bug: 60468
Change-Id: I477f1e67d33a486419127ac790f32ddbbf566089
Jesse Hall [Tue, 13 Aug 2013 18:53:59 +0000 (11:53 -0700)]
am
3bd0e079: Merge "Return EGL_FALSE if eglChooseConfig failed to find any matching configs"
* commit '
3bd0e079a9d5321f952c2871fb453775810879f7':
Return EGL_FALSE if eglChooseConfig failed to find any matching configs
Martin Storsjo [Sun, 11 Aug 2013 19:05:26 +0000 (22:05 +0300)]
Return EGL_FALSE if eglChooseConfig failed to find any matching configs
Technically, we shouldn't have touched *num_config at all in this
case, but the remote interface to the host doesn't return a separate
boolean return value, only the number of matching configs.
This makes sure that callers that only check the return value of
eglChooseConfig notice a failure to find configs.
Change-Id: I7f660a4a5b8306184608a86c34329d3163ad05ba
Mathias Agopian [Fri, 26 Jul 2013 21:49:13 +0000 (14:49 -0700)]
get rid of HAL pixelformats 5551 and 4444
Change-Id: If69c5cdb02dd8308963165a09b5d7fe3b00077ae
The Android Open Source Project [Thu, 6 Jun 2013 17:37:03 +0000 (10:37 -0700)]
Reconcile with jb-mr2-release jb-mr2-zeroday-release - do not merge
Change-Id: Ie82b1c1ca10b0d4e25b06ec917e23a3703177d5b
Petar Jovanovic [Fri, 31 May 2013 16:40:19 +0000 (18:40 +0200)]
Flush QemuPipeStream when needed
Under some circumstances, close color buffer messages in the command stream
do not reach the host as the size of the undelivered commands is small.
This results in refcounts of ColorBuffer never dropping to zero and color
buffers not being freed.
The patch calls flush at the end of rcCloseColorBuffer_enc().
In addition, the stream is flushed before it is deleted in the destructor of
QemuPipeStream, since it may also have important messages.
bug:
9278661
Change-Id: I46f20af8e0c272ec8d831d62f57cb2f22c7b28a7
Petar Jovanovic [Fri, 31 May 2013 16:40:19 +0000 (18:40 +0200)]
Flush QemuPipeStream when needed
Under some circumstances, close color buffer messages in the command stream
do not reach the host as the size of the undelivered commands is small.
This results in refcounts of ColorBuffer never dropping to zero and color
buffers not being freed.
The patch calls flush at the end of rcCloseColorBuffer_enc().
In addition, the stream is flushed before it is deleted in the destructor of
QemuPipeStream, since it may also have important messages.
bug:
9278661
Change-Id: I46f20af8e0c272ec8d831d62f57cb2f22c7b28a7
Eino-Ville Talvala [Sat, 4 May 2013 23:45:22 +0000 (16:45 -0700)]
Gralloc/Camera3: Support new HAL_PIXEL_FORMAT_YCbCr_420_888 format
Enable flexible YUV format buffers from the camera.
- Add gralloc alloc support for YCbCr_420_888, mapped to NV21
- Add gralloc lock_ycbcr method
- Add new format to list supported by camera HAL
- Fix minor compilation warnings
Bug:
8734880
Change-Id: I68a8cc126985c7d5ae100a87b31c60ee59074cd3
Alex Ray [Fri, 19 Apr 2013 20:59:58 +0000 (13:59 -0700)]
goldfish: fix gralloc module
Explicitly setting reserved (in C++) breaks future extensions of the
module format. Removed these explicit settings for future
compatibility.
Change-Id: Iaacd5c2f55121bcb8f1761f646ace374eceb2b4f
Ying Wang [Wed, 10 Apr 2013 04:44:20 +0000 (21:44 -0700)]
Add liblog
Bug:
8580410
Change-Id: I2c07b8ce85aff341575ee8c3f509f64e252b8ed4
keunyoung [Fri, 8 Mar 2013 20:28:03 +0000 (12:28 -0800)]
migrate opengl and system from development/tools
- components under system are moved one directory up like all other HALs
Change-Id: I03b870b870d83b247ac398cadfb155f03c9adfa0
Android (Google) Code Review [Fri, 11 Mar 2011 17:14:48 +0000 (09:14 -0800)]
Initial empty repository