diff options
author | 2019-05-06 19:08:31 -0700 | |
---|---|---|
committer | 2019-05-06 19:11:23 -0700 | |
commit | 174a2a0e76ce64402885ae1aafc2ccef19034c56 (patch) | |
tree | be41ffb1a5f6627eadc647177b2adbe96ec05eba | |
parent | 794d295a61f5b0649023e1218aa18cce5f32f4d3 (diff) |
GpuStats: plumb all 3d api versions
Bug: 131866357
Test: adb shell dumpsys gpu
Change-Id: I2ef57cb61f51f380745c2ea363b36f093befc313
-rw-r--r-- | libs/graphicsenv/GpuStatsInfo.cpp | 6 | ||||
-rw-r--r-- | libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h | 2 | ||||
-rw-r--r-- | services/gpuservice/gpustats/GpuStats.cpp | 19 | ||||
-rw-r--r-- | services/gpuservice/gpustats/GpuStats.h | 2 |
4 files changed, 27 insertions, 2 deletions
diff --git a/libs/graphicsenv/GpuStatsInfo.cpp b/libs/graphicsenv/GpuStatsInfo.cpp index cbf6e507e4..f89b4c16f2 100644 --- a/libs/graphicsenv/GpuStatsInfo.cpp +++ b/libs/graphicsenv/GpuStatsInfo.cpp @@ -35,6 +35,8 @@ status_t GpuStatsGlobalInfo::writeToParcel(Parcel* parcel) const { if ((status = parcel->writeInt32(vkLoadingCount)) != OK) return status; if ((status = parcel->writeInt32(vkLoadingFailureCount)) != OK) return status; if ((status = parcel->writeInt32(vulkanVersion)) != OK) return status; + if ((status = parcel->writeInt32(cpuVulkanVersion)) != OK) return status; + if ((status = parcel->writeInt32(glesVersion)) != OK) return status; return OK; } @@ -49,6 +51,8 @@ status_t GpuStatsGlobalInfo::readFromParcel(const Parcel* parcel) { if ((status = parcel->readInt32(&vkLoadingCount)) != OK) return status; if ((status = parcel->readInt32(&vkLoadingFailureCount)) != OK) return status; if ((status = parcel->readInt32(&vulkanVersion)) != OK) return status; + if ((status = parcel->readInt32(&cpuVulkanVersion)) != OK) return status; + if ((status = parcel->readInt32(&glesVersion)) != OK) return status; return OK; } @@ -63,6 +67,8 @@ std::string GpuStatsGlobalInfo::toString() const { StringAppendF(&result, "vkLoadingCount = %d\n", vkLoadingCount); StringAppendF(&result, "vkLoadingFailureCount = %d\n", vkLoadingFailureCount); StringAppendF(&result, "vulkanVersion = %d\n", vulkanVersion); + StringAppendF(&result, "cpuVulkanVersion = %d\n", cpuVulkanVersion); + StringAppendF(&result, "glesVersion = %d\n", glesVersion); return result; } diff --git a/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h b/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h index e96c932f36..98ab02b3e9 100644 --- a/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h +++ b/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h @@ -45,6 +45,8 @@ public: int32_t vkLoadingCount = 0; int32_t vkLoadingFailureCount = 0; int32_t vulkanVersion = 0; + int32_t cpuVulkanVersion = 0; + int32_t glesVersion = 0; }; /* diff --git a/services/gpuservice/gpustats/GpuStats.cpp b/services/gpuservice/gpustats/GpuStats.cpp index 1cb78db12d..5174c86171 100644 --- a/services/gpuservice/gpustats/GpuStats.cpp +++ b/services/gpuservice/gpustats/GpuStats.cpp @@ -19,11 +19,12 @@ #include "GpuStats.h" -#include <unordered_set> - +#include <cutils/properties.h> #include <log/log.h> #include <utils/Trace.h> +#include <unordered_set> + namespace android { static bool addLoadingCount(GraphicsEnv::Driver driver, bool isDriverLoaded, @@ -120,6 +121,16 @@ void GpuStats::insert(const std::string& driverPackageName, const std::string& d addLoadingTime(driver, driverLoadingTime, &mAppStats[appStatsKey]); } +void GpuStats::interceptSystemDriverStatsLocked() { + // Append cpuVulkanVersion and glesVersion to system driver stats + if (!mGlobalStats.count(0) || mGlobalStats[0].glesVersion) { + return; + } + + mGlobalStats[0].cpuVulkanVersion = property_get_int32("ro.cpuvulkan.version", 0); + mGlobalStats[0].glesVersion = property_get_int32("ro.opengles.version", 0); +} + void GpuStats::dump(const Vector<String16>& args, std::string* result) { ATRACE_CALL(); @@ -176,6 +187,8 @@ void GpuStats::dump(const Vector<String16>& args, std::string* result) { } void GpuStats::dumpGlobalLocked(std::string* result) { + interceptSystemDriverStatsLocked(); + for (const auto& ele : mGlobalStats) { result->append(ele.second.toString()); result->append("\n"); @@ -196,6 +209,8 @@ void GpuStats::pullGlobalStats(std::vector<GpuStatsGlobalInfo>* outStats) { outStats->clear(); outStats->reserve(mGlobalStats.size()); + interceptSystemDriverStatsLocked(); + for (const auto& ele : mGlobalStats) { outStats->emplace_back(ele.second); } diff --git a/services/gpuservice/gpustats/GpuStats.h b/services/gpuservice/gpustats/GpuStats.h index bb74fbbdc8..49699ee813 100644 --- a/services/gpuservice/gpustats/GpuStats.h +++ b/services/gpuservice/gpustats/GpuStats.h @@ -52,6 +52,8 @@ private: void dumpGlobalLocked(std::string* result); // Dump app stats void dumpAppLocked(std::string* result); + // Append cpuVulkanVersion and glesVersion to system driver stats + void interceptSystemDriverStatsLocked(); // Below limits the memory usage of GpuStats to be less than 10KB. This is // the preferred number for statsd while maintaining nice data quality. |