diff options
Diffstat (limited to 'services/gpuservice/GpuService.cpp')
-rw-r--r-- | services/gpuservice/GpuService.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/services/gpuservice/GpuService.cpp b/services/gpuservice/GpuService.cpp index 52d5d4fc46..7b9782f4e8 100644 --- a/services/gpuservice/GpuService.cpp +++ b/services/gpuservice/GpuService.cpp @@ -25,6 +25,7 @@ #include <binder/PermissionCache.h> #include <cutils/properties.h> #include <gpumem/GpuMem.h> +#include <gpuwork/GpuWork.h> #include <gpustats/GpuStats.h> #include <private/android_filesystem_config.h> #include <tracing/GpuMemTracer.h> @@ -50,13 +51,20 @@ const char* const GpuService::SERVICE_NAME = "gpu"; GpuService::GpuService() : mGpuMem(std::make_shared<GpuMem>()), + mGpuWork(std::make_shared<gpuwork::GpuWork>()), mGpuStats(std::make_unique<GpuStats>()), mGpuMemTracer(std::make_unique<GpuMemTracer>()) { - std::thread asyncInitThread([this]() { + + std::thread gpuMemAsyncInitThread([this]() { mGpuMem->initialize(); mGpuMemTracer->initialize(mGpuMem); }); - asyncInitThread.detach(); + gpuMemAsyncInitThread.detach(); + + std::thread gpuWorkAsyncInitThread([this]() { + mGpuWork->initialize(); + }); + gpuWorkAsyncInitThread.detach(); }; void GpuService::setGpuStats(const std::string& driverPackageName, @@ -124,6 +132,7 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto bool dumpDriverInfo = false; bool dumpMem = false; bool dumpStats = false; + bool dumpWork = false; size_t numArgs = args.size(); if (numArgs) { @@ -134,9 +143,11 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto dumpDriverInfo = true; } else if (args[index] == String16("--gpumem")) { dumpMem = true; + } else if (args[index] == String16("--gpuwork")) { + dumpWork = true; } } - dumpAll = !(dumpDriverInfo || dumpMem || dumpStats); + dumpAll = !(dumpDriverInfo || dumpMem || dumpStats || dumpWork); } if (dumpAll || dumpDriverInfo) { @@ -151,6 +162,10 @@ status_t GpuService::doDump(int fd, const Vector<String16>& args, bool /*asProto mGpuStats->dump(args, &result); result.append("\n"); } + if (dumpAll || dumpWork) { + mGpuWork->dump(args, &result); + result.append("\n"); + } } write(fd, result.c_str(), result.size()); |