GpuStats: track CPU Vulkan implementation usage
Bug: 131927737
Test: atest GpuStatsPuller_test
Change-Id: I003f6a169886bf1acf131a7dd4811ebd48e4120e
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 84bb11f..801596e 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -6182,6 +6182,9 @@
// 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 f727d6d..0d3aca0 100644
--- a/cmds/statsd/src/external/GpuStatsPuller.cpp
+++ b/cmds/statsd/src/external/GpuStatsPuller.cpp
@@ -95,6 +95,7 @@
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 63fb4ed..bdc52b0 100644
--- a/cmds/statsd/tests/external/GpuStatsPuller_test.cpp
+++ b/cmds/statsd/tests/external/GpuStatsPuller_test.cpp
@@ -55,8 +55,9 @@
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 @@
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 @@
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