summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-04-30 14:43:18 -0700
committerMathias Agopian <mathias@google.com>2009-04-30 14:43:18 -0700
commitfa6eda01a9f3df0102ce6a65302c8674cc9c7e50 (patch)
treea0c1b31bd8e162132c54a2ef8521b3ed6cf8cad1 /libs/surfaceflinger
parentd504605919a62902e10cd13536390ffce84a3326 (diff)
parent072868a4d33740ee023b7364dcb38f4fc14bd8b0 (diff)
downloadframeworks_base-fa6eda01a9f3df0102ce6a65302c8674cc9c7e50.zip
frameworks_base-fa6eda01a9f3df0102ce6a65302c8674cc9c7e50.tar.gz
frameworks_base-fa6eda01a9f3df0102ce6a65302c8674cc9c7e50.tar.bz2
Merge commit 'goog/master' into merge_master
Conflicts: libs/surfaceflinger/Layer.cpp libs/surfaceflinger/SurfaceFlinger.cpp opengl/libagl/egl.cpp opengl/libs/EGL/egl.cpp opengl/libs/GLES_CM/gl.cpp opengl/libs/GLES_CM/gl_api.in opengl/libs/gl_entries.in opengl/libs/tools/glapigen
Diffstat (limited to 'libs/surfaceflinger')
-rw-r--r--libs/surfaceflinger/GPUHardware/GPUHardware.cpp6
-rw-r--r--libs/surfaceflinger/Layer.cpp3
-rw-r--r--libs/surfaceflinger/VRamHeap.cpp2
3 files changed, 8 insertions, 3 deletions
diff --git a/libs/surfaceflinger/GPUHardware/GPUHardware.cpp b/libs/surfaceflinger/GPUHardware/GPUHardware.cpp
index eb75f99..7168bf2 100644
--- a/libs/surfaceflinger/GPUHardware/GPUHardware.cpp
+++ b/libs/surfaceflinger/GPUHardware/GPUHardware.cpp
@@ -573,7 +573,11 @@ void GPUHardware::binderDied(const wp<IBinder>& who)
sp<GPUHardwareInterface> GPUFactory::getGPU()
{
- return new GPUHardware();
+ sp<GPUHardwareInterface> gpu;
+ if (access("/dev/hw3d", F_OK) == 0) {
+ gpu = new GPUHardware();
+ }
+ return gpu;
}
// ---------------------------------------------------------------------------
diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp
index 182fbb2..8a7d467 100644
--- a/libs/surfaceflinger/Layer.cpp
+++ b/libs/surfaceflinger/Layer.cpp
@@ -118,7 +118,7 @@ status_t Layer::setBuffers( Client* client,
if (flags & ISurfaceComposer::eSecure)
bufferFlags |= Buffer::SECURE;
-
+ /* FIXME we need this code for msm7201A
if (bufferFlags & Buffer::GPU) {
// FIXME: this is msm7201A specific, as its GPU only supports
// BGRA_8888.
@@ -126,6 +126,7 @@ status_t Layer::setBuffers( Client* client,
format = PIXEL_FORMAT_BGRA_8888;
}
}
+ */
mSecure = (bufferFlags & Buffer::SECURE) ? true : false;
mNeedsBlending = (info.h_alpha - info.l_alpha) > 0;
diff --git a/libs/surfaceflinger/VRamHeap.cpp b/libs/surfaceflinger/VRamHeap.cpp
index 0ccd71f..238c602 100644
--- a/libs/surfaceflinger/VRamHeap.cpp
+++ b/libs/surfaceflinger/VRamHeap.cpp
@@ -98,7 +98,7 @@ sp<MemoryDealer> SurfaceHeapManager::createHeap(
}
}
- if (flags & ISurfaceComposer::eGPU) {
+ if ((flags & ISurfaceComposer::eGPU) && (mFlinger->getGPU() != 0)) {
// FIXME: this is msm7201A specific, where gpu surfaces may not be secure
if (!(flags & ISurfaceComposer::eSecure)) {
// if GPU doesn't work, we try eHardware