diff options
author | Mathias Agopian <mathias@google.com> | 2013-03-28 17:44:13 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2013-03-29 15:33:47 -0700 |
commit | ca08833d5ea99130797e10ad68a651b50e99da74 (patch) | |
tree | bcb05693b2bc34a0c7467d95a85b19df9af5dc1e /include | |
parent | 8171aece3d89a2107eda02c0e9daf79518b40174 (diff) | |
download | frameworks_native-ca08833d5ea99130797e10ad68a651b50e99da74.zip frameworks_native-ca08833d5ea99130797e10ad68a651b50e99da74.tar.gz frameworks_native-ca08833d5ea99130797e10ad68a651b50e99da74.tar.bz2 |
don't use compile-time configuration of libgui as much as possible
We now detect at runtime which sync features to use, which
allows us to remove a lot of the compile-time configuration
options. There is still one option though, to disable
KHR_fence_sync on some devices (which are more efficient
without it).
- added a backdoor to get the vendor's EGL strings
the new logic is:
- use always ANDROID_native_fence_sync if available
- fallback to KHR_fence_sync if available and not disabled
by the compile-time option
- use KHR_wait_sync if available and either of the above is
enabled
Change-Id: I9c4b49d9ff1151faf902cc93bd53ea5f205aaabf
Diffstat (limited to 'include')
-rw-r--r-- | include/gui/GLConsumer.h | 4 | ||||
-rw-r--r-- | include/private/gui/SyncFeatures.h | 45 |
2 files changed, 45 insertions, 4 deletions
diff --git a/include/gui/GLConsumer.h b/include/gui/GLConsumer.h index b1622d2..3b8dd77 100644 --- a/include/gui/GLConsumer.h +++ b/include/gui/GLConsumer.h @@ -267,10 +267,6 @@ protected: // values. status_t checkAndUpdateEglStateLocked(); - // If set, GLConsumer will use the EGL_ANDROID_native_fence_sync - // extension to create Android native fences for GLES activity. - static const bool sUseNativeFenceSync; - private: // createImage creates a new EGLImage from a GraphicBuffer. EGLImageKHR createImage(EGLDisplay dpy, diff --git a/include/private/gui/SyncFeatures.h b/include/private/gui/SyncFeatures.h new file mode 100644 index 0000000..79fb75b --- /dev/null +++ b/include/private/gui/SyncFeatures.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ANDROID_GUI_SYNC_FEATURES_H +#define ANDROID_GUI_SYNC_FEATURES_H + +#include <utils/Singleton.h> +#include <utils/String8.h> + + +namespace android { +// ---------------------------------------------------------------------------- + +class SyncFeatures : public Singleton<SyncFeatures> { + friend class Singleton<SyncFeatures>; + bool mHasNativeFenceSync; + bool mHasFenceSync; + bool mHasWaitSync; + String8 mString; + SyncFeatures(); + +public: + bool useNativeFenceSync() const; + bool useFenceSync() const; + bool useWaitSync() const; + String8 toString() const; +}; + +// ---------------------------------------------------------------------------- +}; // namespace android + +#endif // ANDROID_GUI_SYNC_FEATURES_H |