From 7c70930267452550185231ba3c2ec1427d1d2f9b Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Thu, 9 May 2019 15:00:46 -0700 Subject: [PATCH] GpuStats: track CPU Vulkan implementation usage Bug: 131927737 Test: atest GpuStatsPuller_test Change-Id: I003f6a169886bf1acf131a7dd4811ebd48e4120e --- cmds/statsd/src/atoms.proto | 3 +++ cmds/statsd/src/external/GpuStatsPuller.cpp | 1 + cmds/statsd/tests/external/GpuStatsPuller_test.cpp | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto index 84bb11f54d0d..801596ea54f2 100644 --- a/cmds/statsd/src/atoms.proto +++ b/cmds/statsd/src/atoms.proto @@ -6182,6 +6182,9 @@ message GpuStatsAppInfo { // Angle driver loading time info. optional GpuDriverLoadingTime angle_driver_loading_time = 5 [(android.os.statsd.log_mode) = MODE_BYTES]; + + // CPU Vulkan implementation is in use. + optional bool cpu_vulkan_in_use = 6; } /* diff --git a/cmds/statsd/src/external/GpuStatsPuller.cpp b/cmds/statsd/src/external/GpuStatsPuller.cpp index f727d6d6f79e..0d3aca05e0e5 100644 --- a/cmds/statsd/src/external/GpuStatsPuller.cpp +++ b/cmds/statsd/src/external/GpuStatsPuller.cpp @@ -95,6 +95,7 @@ static bool pullGpuStatsAppInfo(const sp& gpuService, if (!event->write(int64VectorToProtoByteString(info.glDriverLoadingTime))) return false; if (!event->write(int64VectorToProtoByteString(info.vkDriverLoadingTime))) return false; if (!event->write(int64VectorToProtoByteString(info.angleDriverLoadingTime))) return false; + if (!event->write(info.cpuVulkanInUse)) return false; event->init(); data->emplace_back(event); } diff --git a/cmds/statsd/tests/external/GpuStatsPuller_test.cpp b/cmds/statsd/tests/external/GpuStatsPuller_test.cpp index 63fb4edd36e7..bdc52b0af34c 100644 --- a/cmds/statsd/tests/external/GpuStatsPuller_test.cpp +++ b/cmds/statsd/tests/external/GpuStatsPuller_test.cpp @@ -55,8 +55,9 @@ static const int64_t ANGLE_DRIVER_LOADING_TIME_1 = 1111; static const int32_t VULKAN_VERSION = 1; static const int32_t CPU_VULKAN_VERSION = 2; static const int32_t GLES_VERSION = 3; +static const bool CPU_VULKAN_IN_USE = true; static const size_t NUMBER_OF_VALUES_GLOBAL = 13; -static const size_t NUMBER_OF_VALUES_APP = 5; +static const size_t NUMBER_OF_VALUES_APP = 6; // clang-format on class MockGpuStatsPuller : public GpuStatsPuller { @@ -148,6 +149,7 @@ TEST_F(GpuStatsPuller_test, PullGpuStatsAppInfo) { EXPECT_TRUE(event->write(int64VectorToProtoByteString(glDriverLoadingTime))); EXPECT_TRUE(event->write(int64VectorToProtoByteString(vkDriverLoadingTime))); EXPECT_TRUE(event->write(int64VectorToProtoByteString(angleDriverLoadingTime))); + EXPECT_TRUE(event->write(CPU_VULKAN_IN_USE)); event->init(); inData.emplace_back(event); MockGpuStatsPuller mockPuller(android::util::GPU_STATS_APP_INFO, &inData); @@ -165,6 +167,7 @@ TEST_F(GpuStatsPuller_test, PullGpuStatsAppInfo) { outData[0]->getValues()[3].mValue.str_value); EXPECT_EQ(int64VectorToProtoByteString(angleDriverLoadingTime), outData[0]->getValues()[4].mValue.str_value); + EXPECT_EQ(CPU_VULKAN_IN_USE, outData[0]->getValues()[5].mValue.int_value); } } // namespace statsd