diff options
| author | 2019-05-06 17:43:59 -0700 | |
|---|---|---|
| committer | 2019-05-06 18:23:44 -0700 | |
| commit | 794d295a61f5b0649023e1218aa18cce5f32f4d3 (patch) | |
| tree | e1f2d18bd437ffe1c6c527a367e6d6c089a3282c | |
| parent | a10bfb9b33583401cf2c134b4f4c4135c398216d (diff) | |
GpuStats: plumb Vulkan api version
This change plumbs Vulkan api version to GraphicsEnv.
Bug: 131866357
Test: adb shell dumpsys gpu
Change-Id: I94f3ed6e6185a147b3f622dc70ea349c8fe66231
| -rw-r--r-- | libs/graphicsenv/GpuStatsInfo.cpp | 3 | ||||
| -rw-r--r-- | libs/graphicsenv/GraphicsEnv.cpp | 16 | ||||
| -rw-r--r-- | libs/graphicsenv/IGpuService.cpp | 12 | ||||
| -rw-r--r-- | libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h | 1 | ||||
| -rw-r--r-- | libs/graphicsenv/include/graphicsenv/GraphicsEnv.h | 4 | ||||
| -rw-r--r-- | libs/graphicsenv/include/graphicsenv/IGpuService.h | 4 | ||||
| -rw-r--r-- | services/gpuservice/GpuService.cpp | 6 | ||||
| -rw-r--r-- | services/gpuservice/GpuService.h | 5 | ||||
| -rw-r--r-- | services/gpuservice/gpustats/GpuStats.cpp | 9 | ||||
| -rw-r--r-- | services/gpuservice/gpustats/GpuStats.h | 4 |
10 files changed, 41 insertions, 23 deletions
diff --git a/libs/graphicsenv/GpuStatsInfo.cpp b/libs/graphicsenv/GpuStatsInfo.cpp index 0fa0d9e32c..cbf6e507e4 100644 --- a/libs/graphicsenv/GpuStatsInfo.cpp +++ b/libs/graphicsenv/GpuStatsInfo.cpp @@ -34,6 +34,7 @@ status_t GpuStatsGlobalInfo::writeToParcel(Parcel* parcel) const { if ((status = parcel->writeInt32(glLoadingFailureCount)) != OK) return status; if ((status = parcel->writeInt32(vkLoadingCount)) != OK) return status; if ((status = parcel->writeInt32(vkLoadingFailureCount)) != OK) return status; + if ((status = parcel->writeInt32(vulkanVersion)) != OK) return status; return OK; } @@ -47,6 +48,7 @@ status_t GpuStatsGlobalInfo::readFromParcel(const Parcel* parcel) { if ((status = parcel->readInt32(&glLoadingFailureCount)) != OK) return status; if ((status = parcel->readInt32(&vkLoadingCount)) != OK) return status; if ((status = parcel->readInt32(&vkLoadingFailureCount)) != OK) return status; + if ((status = parcel->readInt32(&vulkanVersion)) != OK) return status; return OK; } @@ -60,6 +62,7 @@ std::string GpuStatsGlobalInfo::toString() const { StringAppendF(&result, "glLoadingFailureCount = %d\n", glLoadingFailureCount); StringAppendF(&result, "vkLoadingCount = %d\n", vkLoadingCount); StringAppendF(&result, "vkLoadingFailureCount = %d\n", vkLoadingFailureCount); + StringAppendF(&result, "vulkanVersion = %d\n", vulkanVersion); return result; } diff --git a/libs/graphicsenv/GraphicsEnv.cpp b/libs/graphicsenv/GraphicsEnv.cpp index 13c0d876c0..8728f03f0c 100644 --- a/libs/graphicsenv/GraphicsEnv.cpp +++ b/libs/graphicsenv/GraphicsEnv.cpp @@ -162,7 +162,8 @@ void GraphicsEnv::setDriverPathAndSphalLibraries(const std::string path, void GraphicsEnv::setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, - int64_t driverBuildTime, const std::string& appPackageName) { + int64_t driverBuildTime, const std::string& appPackageName, + const int vulkanVersion) { ATRACE_CALL(); std::lock_guard<std::mutex> lock(mStatsLock); @@ -171,15 +172,17 @@ void GraphicsEnv::setGpuStats(const std::string& driverPackageName, "\tdriverVersionName[%s]\n" "\tdriverVersionCode[%" PRIu64 "]\n" "\tdriverBuildTime[%" PRId64 "]\n" - "\tappPackageName[%s]\n", + "\tappPackageName[%s]\n" + "\tvulkanVersion[%d]\n", driverPackageName.c_str(), driverVersionName.c_str(), driverVersionCode, driverBuildTime, - appPackageName.c_str()); + appPackageName.c_str(), vulkanVersion); mGpuStats.driverPackageName = driverPackageName; mGpuStats.driverVersionName = driverVersionName; mGpuStats.driverVersionCode = driverVersionCode; mGpuStats.driverBuildTime = driverBuildTime; mGpuStats.appPackageName = appPackageName; + mGpuStats.vulkanVersion = vulkanVersion; } void GraphicsEnv::setDriverToLoad(GraphicsEnv::Driver driver) { @@ -270,19 +273,20 @@ void GraphicsEnv::sendGpuStatsLocked(GraphicsEnv::Driver driver, bool isDriverLo "\tdriverVersionCode[%" PRIu64 "]\n" "\tdriverBuildTime[%" PRId64 "]\n" "\tappPackageName[%s]\n" + "\tvulkanVersion[%d]\n" "\tdriver[%d]\n" "\tisDriverLoaded[%d]\n" "\tdriverLoadingTime[%" PRId64 "]", mGpuStats.driverPackageName.c_str(), mGpuStats.driverVersionName.c_str(), mGpuStats.driverVersionCode, mGpuStats.driverBuildTime, mGpuStats.appPackageName.c_str(), - static_cast<int32_t>(driver), isDriverLoaded, driverLoadingTime); + mGpuStats.vulkanVersion, static_cast<int32_t>(driver), isDriverLoaded, driverLoadingTime); const sp<IGpuService> gpuService = getGpuService(); if (gpuService) { gpuService->setGpuStats(mGpuStats.driverPackageName, mGpuStats.driverVersionName, mGpuStats.driverVersionCode, mGpuStats.driverBuildTime, - mGpuStats.appPackageName, driver, isDriverLoaded, - driverLoadingTime); + mGpuStats.appPackageName, mGpuStats.vulkanVersion, driver, + isDriverLoaded, driverLoadingTime); } } diff --git a/libs/graphicsenv/IGpuService.cpp b/libs/graphicsenv/IGpuService.cpp index 1dc1c0e4e9..100dca598b 100644 --- a/libs/graphicsenv/IGpuService.cpp +++ b/libs/graphicsenv/IGpuService.cpp @@ -30,8 +30,8 @@ public: virtual void setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, const std::string& appPackageName, - GraphicsEnv::Driver driver, bool isDriverLoaded, - int64_t driverLoadingTime) { + const int32_t vulkanVersion, GraphicsEnv::Driver driver, + bool isDriverLoaded, int64_t driverLoadingTime) { Parcel data, reply; data.writeInterfaceToken(IGpuService::getInterfaceDescriptor()); @@ -40,6 +40,7 @@ public: data.writeUint64(driverVersionCode); data.writeInt64(driverBuildTime); data.writeUtf8AsUtf16(appPackageName); + data.writeInt32(vulkanVersion); data.writeInt32(static_cast<int32_t>(driver)); data.writeBool(isDriverLoaded); data.writeInt64(driverLoadingTime); @@ -118,6 +119,9 @@ status_t BnGpuService::onTransact(uint32_t code, const Parcel& data, Parcel* rep std::string appPackageName; if ((status = data.readUtf8FromUtf16(&appPackageName)) != OK) return status; + int32_t vulkanVersion; + if ((status = data.readInt32(&vulkanVersion)) != OK) return status; + int32_t driver; if ((status = data.readInt32(&driver)) != OK) return status; @@ -128,8 +132,8 @@ status_t BnGpuService::onTransact(uint32_t code, const Parcel& data, Parcel* rep if ((status = data.readInt64(&driverLoadingTime)) != OK) return status; setGpuStats(driverPackageName, driverVersionName, driverVersionCode, driverBuildTime, - appPackageName, static_cast<GraphicsEnv::Driver>(driver), isDriverLoaded, - driverLoadingTime); + appPackageName, vulkanVersion, static_cast<GraphicsEnv::Driver>(driver), + isDriverLoaded, driverLoadingTime); return OK; } diff --git a/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h b/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h index a92ca70493..e96c932f36 100644 --- a/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h +++ b/libs/graphicsenv/include/graphicsenv/GpuStatsInfo.h @@ -44,6 +44,7 @@ public: int32_t glLoadingFailureCount = 0; int32_t vkLoadingCount = 0; int32_t vkLoadingFailureCount = 0; + int32_t vulkanVersion = 0; }; /* diff --git a/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h b/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h index cb4239f775..b10cab7e3f 100644 --- a/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h +++ b/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h @@ -50,6 +50,7 @@ private: uint64_t driverVersionCode; int64_t driverBuildTime; std::string appPackageName; + int32_t vulkanVersion; Driver glDriverToLoad; Driver glDriverFallback; Driver vkDriverToLoad; @@ -61,6 +62,7 @@ private: driverVersionCode(0), driverBuildTime(0), appPackageName(""), + vulkanVersion(0), glDriverToLoad(Driver::NONE), glDriverFallback(Driver::NONE), vkDriverToLoad(Driver::NONE), @@ -84,7 +86,7 @@ public: android_namespace_t* getDriverNamespace(); void setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t versionCode, int64_t driverBuildTime, - const std::string& appPackageName); + const std::string& appPackageName, const int32_t vulkanVersion); void setDriverToLoad(Driver driver); void setDriverLoaded(Api api, bool isDriverLoaded, int64_t driverLoadingTime); void clearDriverLoadingInfo(Api api); diff --git a/libs/graphicsenv/include/graphicsenv/IGpuService.h b/libs/graphicsenv/include/graphicsenv/IGpuService.h index ac022b5d65..5bf0269430 100644 --- a/libs/graphicsenv/include/graphicsenv/IGpuService.h +++ b/libs/graphicsenv/include/graphicsenv/IGpuService.h @@ -37,8 +37,8 @@ public: virtual void setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, const std::string& appPackageName, - GraphicsEnv::Driver driver, bool isDriverLoaded, - int64_t driverLoadingTime) = 0; + const int32_t vulkanVersion, GraphicsEnv::Driver driver, + bool isDriverLoaded, int64_t driverLoadingTime) = 0; // get GPU global stats from GpuStats module. virtual status_t getGpuStatsGlobalInfo(std::vector<GpuStatsGlobalInfo>* outStats) const = 0; diff --git a/services/gpuservice/GpuService.cpp b/services/gpuservice/GpuService.cpp index 59fa1c0c33..b42884e139 100644 --- a/services/gpuservice/GpuService.cpp +++ b/services/gpuservice/GpuService.cpp @@ -51,12 +51,12 @@ GpuService::GpuService() : mGpuStats(std::make_unique<GpuStats>()){}; void GpuService::setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, const std::string& appPackageName, - GraphicsEnv::Driver driver, bool isDriverLoaded, - int64_t driverLoadingTime) { + const int32_t vulkanVersion, GraphicsEnv::Driver driver, + bool isDriverLoaded, int64_t driverLoadingTime) { ATRACE_CALL(); mGpuStats->insert(driverPackageName, driverVersionName, driverVersionCode, driverBuildTime, - appPackageName, driver, isDriverLoaded, driverLoadingTime); + appPackageName, vulkanVersion, driver, isDriverLoaded, driverLoadingTime); } status_t GpuService::getGpuStatsGlobalInfo(std::vector<GpuStatsGlobalInfo>* outStats) const { diff --git a/services/gpuservice/GpuService.h b/services/gpuservice/GpuService.h index 7a9b2d4dbf..3e02b4a073 100644 --- a/services/gpuservice/GpuService.h +++ b/services/gpuservice/GpuService.h @@ -45,8 +45,9 @@ private: */ void setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, - const std::string& appPackageName, GraphicsEnv::Driver driver, - bool isDriverLoaded, int64_t driverLoadingTime) override; + const std::string& appPackageName, const int32_t vulkanVersion, + GraphicsEnv::Driver driver, bool isDriverLoaded, + int64_t driverLoadingTime) override; status_t getGpuStatsGlobalInfo(std::vector<GpuStatsGlobalInfo>* outStats) const override; status_t getGpuStatsAppInfo(std::vector<GpuStatsAppInfo>* outStats) const override; diff --git a/services/gpuservice/gpustats/GpuStats.cpp b/services/gpuservice/gpustats/GpuStats.cpp index 618530523a..1cb78db12d 100644 --- a/services/gpuservice/gpustats/GpuStats.cpp +++ b/services/gpuservice/gpustats/GpuStats.cpp @@ -68,8 +68,8 @@ static void addLoadingTime(GraphicsEnv::Driver driver, int64_t driverLoadingTime void GpuStats::insert(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, - const std::string& appPackageName, GraphicsEnv::Driver driver, - bool isDriverLoaded, int64_t driverLoadingTime) { + const std::string& appPackageName, const int32_t vulkanVersion, + GraphicsEnv::Driver driver, bool isDriverLoaded, int64_t driverLoadingTime) { ATRACE_CALL(); std::lock_guard<std::mutex> lock(mLock); @@ -79,11 +79,13 @@ void GpuStats::insert(const std::string& driverPackageName, const std::string& d "\tdriverVersionCode[%" PRIu64 "]\n" "\tdriverBuildTime[%" PRId64 "]\n" "\tappPackageName[%s]\n" + "\tvulkanVersion[%d]\n" "\tdriver[%d]\n" "\tisDriverLoaded[%d]\n" "\tdriverLoadingTime[%" PRId64 "]", driverPackageName.c_str(), driverVersionName.c_str(), driverVersionCode, driverBuildTime, - appPackageName.c_str(), static_cast<int32_t>(driver), isDriverLoaded, driverLoadingTime); + appPackageName.c_str(), vulkanVersion, static_cast<int32_t>(driver), isDriverLoaded, + driverLoadingTime); if (!mGlobalStats.count(driverVersionCode)) { GpuStatsGlobalInfo globalInfo; @@ -94,6 +96,7 @@ void GpuStats::insert(const std::string& driverPackageName, const std::string& d globalInfo.driverVersionName = driverVersionName; globalInfo.driverVersionCode = driverVersionCode; globalInfo.driverBuildTime = driverBuildTime; + globalInfo.vulkanVersion = vulkanVersion; mGlobalStats.insert({driverVersionCode, globalInfo}); } else if (!addLoadingCount(driver, isDriverLoaded, &mGlobalStats[driverVersionCode])) { return; diff --git a/services/gpuservice/gpustats/GpuStats.h b/services/gpuservice/gpustats/GpuStats.h index d942154cbb..bb74fbbdc8 100644 --- a/services/gpuservice/gpustats/GpuStats.h +++ b/services/gpuservice/gpustats/GpuStats.h @@ -35,8 +35,8 @@ public: // Insert new gpu stats into global stats and app stats. void insert(const std::string& driverPackageName, const std::string& driverVersionName, uint64_t driverVersionCode, int64_t driverBuildTime, - const std::string& appPackageName, GraphicsEnv::Driver driver, bool isDriverLoaded, - int64_t driverLoadingTime); + const std::string& appPackageName, const int32_t vulkanVersion, + GraphicsEnv::Driver driver, bool isDriverLoaded, int64_t driverLoadingTime); // dumpsys interface void dump(const Vector<String16>& args, std::string* result); // Pull gpu global stats |