Add vkprofiles to gpuservice
Bug: 299537644
Test: adb shell cmd gpu vkprofiles
Change-Id: If0453261144150c7e8c554a6a6259a9fedb7c6d9
diff --git a/services/gpuservice/GpuService.cpp b/services/gpuservice/GpuService.cpp
index 48d793a..79f22c1 100644
--- a/services/gpuservice/GpuService.cpp
+++ b/services/gpuservice/GpuService.cpp
@@ -33,6 +33,7 @@
#include <utils/String8.h>
#include <utils/Trace.h>
#include <vkjson.h>
+#include <vkprofiles.h>
#include <thread>
#include <memory>
@@ -44,6 +45,7 @@
namespace {
status_t cmdHelp(int out);
status_t cmdVkjson(int out, int err);
+status_t cmdVkprofiles(int out, int err);
void dumpGameDriverInfo(std::string* result);
} // namespace
@@ -147,6 +149,7 @@
if (args.size() >= 1) {
if (args[0] == String16("vkjson")) return cmdVkjson(out, err);
+ if (args[0] == String16("vkprofiles")) return cmdVkprofiles(out, err);
if (args[0] == String16("help")) return cmdHelp(out);
}
// no command, or unrecognized command
@@ -213,31 +216,24 @@
status_t cmdHelp(int out) {
FILE* outs = fdopen(out, "w");
if (!outs) {
- ALOGE("vkjson: failed to create out stream: %s (%d)", strerror(errno), errno);
+ ALOGE("gpuservice: failed to create out stream: %s (%d)", strerror(errno), errno);
return BAD_VALUE;
}
fprintf(outs,
"GPU Service commands:\n"
- " vkjson dump Vulkan properties as JSON\n");
+ " vkjson dump Vulkan properties as JSON\n"
+ " vkprofiles print support for select Vulkan profiles\n");
fclose(outs);
return NO_ERROR;
}
-void vkjsonPrint(FILE* out) {
- std::string json = VkJsonInstanceToJson(VkJsonGetInstance());
- fwrite(json.data(), 1, json.size(), out);
- fputc('\n', out);
+status_t cmdVkjson(int out, int /*err*/) {
+ dprintf(out, "%s\n", VkJsonInstanceToJson(VkJsonGetInstance()).c_str());
+ return NO_ERROR;
}
-status_t cmdVkjson(int out, int /*err*/) {
- FILE* outs = fdopen(out, "w");
- if (!outs) {
- int errnum = errno;
- ALOGE("vkjson: failed to create output stream: %s", strerror(errnum));
- return -errnum;
- }
- vkjsonPrint(outs);
- fclose(outs);
+status_t cmdVkprofiles(int out, int /*err*/) {
+ dprintf(out, "%s\n", android::vkprofiles::vkProfiles().c_str());
return NO_ERROR;
}