aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLingfeng Yang <lfy@google.com>2020-10-02 22:32:34 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-10-02 22:32:34 +0000
commitb9c79eb5b2fdb680b38c93f4b39a822d95d41f01 (patch)
tree9beb7925100c60268655b4248dc78a6b027f0ce4
parent24dfa743c5f1ca0dfe472b1356f2cbae646d6af8 (diff)
parent9ee90ceb9715808f7d28a360d7f3ed9aede2714d (diff)
downloaddevice_generic_goldfish-opengl-b9c79eb5b2fdb680b38c93f4b39a822d95d41f01.tar.gz
device_generic_goldfish-opengl-b9c79eb5b2fdb680b38c93f4b39a822d95d41f01.tar.bz2
device_generic_goldfish-opengl-b9c79eb5b2fdb680b38c93f4b39a822d95d41f01.zip
Merge "Make it easier to locally unit test guest/host combined tracing"
-rw-r--r--android-emu/android/base/Tracing.cpp8
-rw-r--r--android-emu/android/base/Tracing.h25
-rw-r--r--system/OpenglSystemCommon/HostConnection.cpp10
3 files changed, 36 insertions, 7 deletions
diff --git a/android-emu/android/base/Tracing.cpp b/android-emu/android/base/Tracing.cpp
index 59090428..0e635db1 100644
--- a/android-emu/android/base/Tracing.cpp
+++ b/android-emu/android/base/Tracing.cpp
@@ -25,11 +25,11 @@
namespace android {
namespace base {
-void ScopedTrace::beginTraceImpl(const char* name) {
+void ScopedTraceGuest::beginTraceImpl(const char* name) {
atrace_begin(VK_TRACE_TAG, name);
}
-void ScopedTrace::endTraceImpl(const char*) {
+void ScopedTraceGuest::endTraceImpl(const char*) {
atrace_end(VK_TRACE_TAG);
}
@@ -47,13 +47,13 @@ void ScopedTrace::endTraceImpl(const char*) {
namespace android {
namespace base {
-void ScopedTrace::beginTraceImpl(const char* name) {
+void ScopedTraceGuest::beginTraceImpl(const char* name) {
#ifndef FUCHSIA_NO_TRACE
TRACE_DURATION_BEGIN(VK_TRACE_TAG, name);
#endif
}
-void ScopedTrace::endTraceImpl(const char* name) {
+void ScopedTraceGuest::endTraceImpl(const char* name) {
#ifndef FUCHSIA_NO_TRACE
TRACE_DURATION_END(VK_TRACE_TAG, name);
#endif
diff --git a/android-emu/android/base/Tracing.h b/android-emu/android/base/Tracing.h
index 046a5bf0..3a78726e 100644
--- a/android-emu/android/base/Tracing.h
+++ b/android-emu/android/base/Tracing.h
@@ -19,13 +19,30 @@
namespace android {
namespace base {
+#ifdef HOST_BUILD
+void initializeTracing();
+void enableTracing();
+void disableTracing();
+
class ScopedTrace {
public:
- ScopedTrace(const char* name) : name_(name) {
+ ScopedTrace(const char* name);
+ ~ScopedTrace();
+};
+
+class ScopedTraceDerived : public ScopedTrace {
+public:
+ void* member = nullptr;
+};
+#endif
+
+class ScopedTraceGuest {
+public:
+ ScopedTraceGuest(const char* name) : name_(name) {
beginTraceImpl(name_);
}
- ~ScopedTrace() {
+ ~ScopedTraceGuest() {
endTraceImpl(name_);
}
private:
@@ -42,4 +59,8 @@ private:
#define __AEMU_GENSYM1(x,y) __AEMU_GENSYM2(x,y)
#define AEMU_GENSYM(x) __AEMU_GENSYM1(x,__COUNTER__)
+#ifdef HOST_BUILD
#define AEMU_SCOPED_TRACE(tag) __attribute__ ((unused)) android::base::ScopedTrace AEMU_GENSYM(aemuScopedTrace_)(tag)
+#else
+#define AEMU_SCOPED_TRACE(tag) __attribute__ ((unused)) android::base::ScopedTraceGuest AEMU_GENSYM(aemuScopedTrace_)(tag)
+#endif
diff --git a/system/OpenglSystemCommon/HostConnection.cpp b/system/OpenglSystemCommon/HostConnection.cpp
index 7d309fbd..7ddf277f 100644
--- a/system/OpenglSystemCommon/HostConnection.cpp
+++ b/system/OpenglSystemCommon/HostConnection.cpp
@@ -17,6 +17,10 @@
#include "cutils/properties.h"
+#ifdef HOST_BUILD
+#include "android/base/Tracing.h"
+#endif
+
#ifdef GOLDFISH_NO_GL
struct gl_client_context_t {
int placeholder;
@@ -359,7 +363,11 @@ HostConnection::HostConnection() :
m_grallocOnly(true),
m_noHostError(true),
m_rendernodeFd(-1),
- m_rendernodeFdOwned(false) { }
+ m_rendernodeFdOwned(false) {
+#ifdef HOST_BUILD
+ android::base::initializeTracing();
+#endif
+}
HostConnection::~HostConnection()
{