| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
All sources were moved to external/qemu/distrib/android-emugl
to make it easier to modify both the emulator and host libraries
at the same time. See:
https://android-review.googlesource.com/#/c/118203/
As such, the sources in this directory are now ignored and can be
safely removed.
Change-Id: I5d143c971f995e2599e5e1d6174030d6803e8080
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch cleans up the build files for the GPU emulation libraries
(i.e. there is no need to test for BUILD_EMULATOR_64BITS anymore,
filtering is now handled by the build system directly).
+ Remove a bunch obsolete tests, which were not unit tests, despite
their name beginning with ut_xxxx.
Which includes removing dependency on SDL too.
+ Remove -m64 and -fPIC flags from compilation. These are not
necessary anymore (again, the build system now takes charge of
placing them when necessary), and generated link-time warning
when building Windows executables.
+ Remove a few declarations related to the now-obsolete platform
build (these libraries are only built with the emulator's build
system now).
Change-Id: I27c28979c42cd51f2fe9e30edd4141136e80ee03
|
|
|
|
|
|
| |
+ Add a unit test.
Change-Id: I27c993d1dc819e5bd89fc1e9ae266e11e6ef9a76
|
|
|
|
|
|
|
|
|
|
|
| |
This patch slightly modifies the build files for the GPU emulation
libraries to prepare for future changes in the emulator-specific
build system that will be necessary to support Win64 binaries.
The main difference is the introduction of 64-bit versions of the
emugl-begin-host-<type> macros, named emugl-begin-host64-<type>.
Change-Id: Ib40c030fa407b0ed951755dd9b007fda85778e03
|
|
|
|
|
|
|
|
|
|
| |
When using the newest Mingw64 toolchain, both the forward declaration
and the definition of functions need to use GLAPI / GLAPIENTRY or the
compiler will complain.
BUG=15402623
Change-Id: Ida9e1cb9b177759e7d6688dc1d883dd856abda04
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The definitions of two EGL translator functions were missing
EGLAPI / EGLAPIENTRY macros. On Windows, these enforces the
__stdcall procedure call modifier, which changes the way the
stack pointer is modified on function exit.
Without this patch, a call to these function will result in
a corrupted stack pointer in the caller, quickly followed by
a random crash.
BUG=15402623
Change-Id: Ia0f7ebef29e1252086fb59ebf2e6f907c2a69487
|
|
|
|
|
|
|
|
| |
This fixes a few compiler warnings when building the GPU emulation
libraries with GCC 4.8. Note that GLbyte is defined as khronos_int8_t
which is signed!
Change-Id: I52027cd2eb20d6162983319f22d4da150ff514ed
|
|
|
|
|
|
|
| |
These warnings appear when building the sources through the emulator's
standalone build system, not the platform one.
Change-Id: Ib5d51cf6211f32763be00c7436ae14c06f76b436
|
|
|
|
|
|
|
|
|
|
| |
The function uses DescribePixelFormat() which doesn't return a
count, but a maximum index, in a base-1 list of possible formats,
so adjust the code accordingly.
See http://msdn.microsoft.com/en-us/library/windows/desktop/dd318302(v=vs.85).aspx
Change-Id: Id0cc92249348e6c845570adaaf4c280721a194bb
|
|
|
|
|
|
|
|
|
|
|
| |
The eglWaitEGL implementation didn't restore the previous
bound API after calling eglWaitClient. This probably isn't
a big concern for emugl correctness, but fixing this removes
a compiler warning.
See http://www.khronos.org/registry/egl/sdk/docs/man/xhtml/eglWaitGL.html
Change-Id: I143ffeeefa01aff502d27d4e1d6f892f0d1efe5b
|
|
|
|
|
|
|
|
| |
This patch improves the build files for the GPU emulation
libraries to allow them to be built directly with the emulator's
own standalone build system.
Change-Id: I205392bdfe4223a5c43fa67e24a2beffcbcbc07a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes the use of the 'thread_store' class from
<utils/threads.h> by providing its own implementation instead
under shared/emugl/common/thread_store.h, plus appropriate
unit tests.
Note that unlike the Android version, this properly destroys
the thread-local values on thread exit (instead of leaking
them).
+ Provide a LazyInstance class used to perform thread-safe
lazy initialization of static variables without the use
of C++ constructors.
Change-Id: Iabe01fbd713c6872b5fe245d7255c3c03749a88a
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes the dependency on android::Mutex from
<cutils/threads.h> by providing a custom implementation, which
is a simple wrapper around pthread_mutex_t / CriticalSection,
under shared/emugl/common/mutex.h
+ Provide unit tests.
Change-Id: I379ef0c480c478ab9ba5f2faaf8274267eff37ba
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gets rid of two copies of SmartPtr.h and replaces them with
a single implementation under shared/emugl/common/smart_ptr.*
Note that this uses a new include path rooted at the shared/
directory for classes that are likely to be built both for
the host and the device (in case we back-port this to
device/generic/goldfish/opengl/ in the future).
+ Add a gtest-based set of unittests, after building, just
call 'emugl_common_host_unittests' to run it.
Note that this probably needs a 64-bit version as well,
will come later once I find a way to build GTest for 64-bits
without breaking the platform build :-)
Also note that this moves the class to the 'emugl' namespace,
in order to make the code easier to build out of the platform
tree, and embed it in other projects. More classes will be
transitioned / refactored in future patches.
AOSP_BUG=64806
Change-Id: Ieb326c5f3f002a21537b8a391a82ce2ef9925073
|
|
|
|
|
|
|
|
|
|
|
| |
This patch gets rid of all compiler warnings for the
GPU emulation libraries when building on a Linux host.
Note that GLcommon/GLutils.h now provides two new functions
to perform 'safe' type casts between unsigned integers and
pointers: SafePointerFromUInt() and SafeUIntFromPointer().
Change-Id: I01c48bbd72f925d70eb9831f57e15815e687121f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is what the pixel format attribute lists in
MacPixelFormatsAttribs.m try to achieve, but despite this, alpha
is nonzero in every returned configuration on certain (all?)
machines (at least on 10.8.5 on a nvidia gpu). This means that
EGL won't return any configs at all with alpha == 0.
The default config chooser in GLSurfaceView requires a config with
alpha == 0. This means that previously, this view failed to start up
on the emulator on OS X, unless set up with a non-default config
chooser.
Change-Id: I2bf3e92a026c525a97d6746e491d920ce127787f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The target and format parameters are in the EGL parameter range
(and are stored in EGLints), while nsCreatePBuffer (which calls
NSOpenGLPixelBuffer initWithTextureTarget) takes GLenums.
This is pretty much similar to the same function in EglWindowsApi.cpp,
but contrary to that function, there's nothing similar to
WGL_NO_TEXTURE_ARB in initWithTextureTarget, so something has to be
specified in all cases.
Previously, the default EGL_NO_TEXTURE (0x305C) was passed through.
While this mostly worked just fine, it had the surprising hidden
side effect of using a vertically flipped coordinate system in
glReadPixels (with the origin being the top left corner instead
of the bottom left one, which is default in OpenGL).
This makes the EncodeDecodeTest media CTS test pass with surface
output on the emulator on Mac OS X. (This test renders the decoded
video to a pbuffer and checks individual pixel values using
glReadPixels.)
Change-Id: I21a2430ce6334a5e82ea3203c4d157f5bad1558d
|
|
|
|
|
|
| |
- lack of tlsDestruct causes resource leakage in linux
Change-Id: I6f5308fd00da06dbecd9246393021e3d72aa40c3
|
|
|
|
|
|
|
|
| |
- setting int should be OK even without lock as there is no synchronization in reader side
- dead-lock can happen inside constructor if the same error handler is already
set and if error happens inside constructor in place like XSync
Change-Id: I2f401067e0555ae092df23f57cc9ab054a1555d7
|
|
|
|
|
|
|
|
|
|
|
| |
EglOS::getDefaultDisplay() can return an invalid display, e.g. on X11
if $DISPLAY is not set. This is called from the EglGlobalInfo
constructor, which doesn't have a good way to indicate failure. So
instead EglGlobalInfo::addDisplay() checks that the display is valid
before wrapping it in a EglDisplay.
Bug: 7020498
Change-Id: Id18fc568dae5bff4b45b706f3322ae5e4785d95d
|
|
The emulator GLES support has two interfaces: a host shared library
interface used by QEMU, and a protocol between the platform and the
host. The host library interface is not versioned; QEMU and the GLES
renderer must match. The protocol on the other hand must be backwards
compatible: a new GLES renderer must support an older platform image.
Thus for branching purposes it makes more sense to put the GLES
renderer in sdk.git, which is branched along with qemu.git for SDK
releases. Platform images will be built against the protocol version
in the platform branch of sdk.git.
Change-Id: I2c3bce627ecfd0a4b3e688d1839fe10755a21e58
|