diff options
author | 2024-02-15 23:12:22 +0000 | |
---|---|---|
committer | 2024-02-21 05:43:07 +0000 | |
commit | f2b7c868d2f5d8401fadb54a14b64561b1afed5e (patch) | |
tree | 00cdecc1e6d45f4fea526c8bfb00444186da6cb9 | |
parent | 0e2f19797f36fda3a74a5890a9f8c638ef1bca7c (diff) |
Add vkprofiles to gpuservice
Bug: 299537644
Test: adb shell cmd gpu vkprofiles
Change-Id: If0453261144150c7e8c554a6a6259a9fedb7c6d9
-rw-r--r-- | services/gpuservice/Android.bp | 4 | ||||
-rw-r--r-- | services/gpuservice/GpuService.cpp | 26 |
2 files changed, 14 insertions, 16 deletions
diff --git a/services/gpuservice/Android.bp b/services/gpuservice/Android.bp index e5b1e44b44..ca9fe5ea43 100644 --- a/services/gpuservice/Android.bp +++ b/services/gpuservice/Android.bp @@ -23,10 +23,11 @@ cc_defaults { name: "libgpuservice_defaults", defaults: [ "gpuservice_defaults", - "libvkjson_deps", "libgfxstats_deps", "libgpumem_deps", "libgpumemtracer_deps", + "libvkjson_deps", + "libvkprofiles_deps", ], cflags: [ "-DLOG_TAG=\"GpuService\"", @@ -46,6 +47,7 @@ cc_defaults { "libgpumemtracer", "libserviceutils", "libvkjson", + "libvkprofiles", ], export_static_lib_headers: [ "libserviceutils", diff --git a/services/gpuservice/GpuService.cpp b/services/gpuservice/GpuService.cpp index 48d793a4d4..79f22c1ac7 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 @@ using base::StringAppendF; 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 @@ status_t GpuService::shellCommand(int /*in*/, int out, int err, std::vector<Stri 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 @@ namespace { 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; } |