Skip to content

Commit f2b7c86

Browse files
author
Trevor David Black
committed
Add vkprofiles to gpuservice
Bug: 299537644 Test: adb shell cmd gpu vkprofiles Change-Id: If0453261144150c7e8c554a6a6259a9fedb7c6d9
1 parent 0e2f197 commit f2b7c86

2 files changed

Lines changed: 14 additions & 16 deletions

File tree

services/gpuservice/Android.bp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ cc_defaults {
2323
name: "libgpuservice_defaults",
2424
defaults: [
2525
"gpuservice_defaults",
26-
"libvkjson_deps",
2726
"libgfxstats_deps",
2827
"libgpumem_deps",
2928
"libgpumemtracer_deps",
29+
"libvkjson_deps",
30+
"libvkprofiles_deps",
3031
],
3132
cflags: [
3233
"-DLOG_TAG=\"GpuService\"",
@@ -46,6 +47,7 @@ cc_defaults {
4647
"libgpumemtracer",
4748
"libserviceutils",
4849
"libvkjson",
50+
"libvkprofiles",
4951
],
5052
export_static_lib_headers: [
5153
"libserviceutils",

services/gpuservice/GpuService.cpp

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <utils/String8.h>
3434
#include <utils/Trace.h>
3535
#include <vkjson.h>
36+
#include <vkprofiles.h>
3637

3738
#include <thread>
3839
#include <memory>
@@ -44,6 +45,7 @@ using base::StringAppendF;
4445
namespace {
4546
status_t cmdHelp(int out);
4647
status_t cmdVkjson(int out, int err);
48+
status_t cmdVkprofiles(int out, int err);
4749
void dumpGameDriverInfo(std::string* result);
4850
} // namespace
4951

@@ -147,6 +149,7 @@ status_t GpuService::shellCommand(int /*in*/, int out, int err, std::vector<Stri
147149

148150
if (args.size() >= 1) {
149151
if (args[0] == String16("vkjson")) return cmdVkjson(out, err);
152+
if (args[0] == String16("vkprofiles")) return cmdVkprofiles(out, err);
150153
if (args[0] == String16("help")) return cmdHelp(out);
151154
}
152155
// no command, or unrecognized command
@@ -213,31 +216,24 @@ namespace {
213216
status_t cmdHelp(int out) {
214217
FILE* outs = fdopen(out, "w");
215218
if (!outs) {
216-
ALOGE("vkjson: failed to create out stream: %s (%d)", strerror(errno), errno);
219+
ALOGE("gpuservice: failed to create out stream: %s (%d)", strerror(errno), errno);
217220
return BAD_VALUE;
218221
}
219222
fprintf(outs,
220223
"GPU Service commands:\n"
221-
" vkjson dump Vulkan properties as JSON\n");
224+
" vkjson dump Vulkan properties as JSON\n"
225+
" vkprofiles print support for select Vulkan profiles\n");
222226
fclose(outs);
223227
return NO_ERROR;
224228
}
225229

226-
void vkjsonPrint(FILE* out) {
227-
std::string json = VkJsonInstanceToJson(VkJsonGetInstance());
228-
fwrite(json.data(), 1, json.size(), out);
229-
fputc('\n', out);
230+
status_t cmdVkjson(int out, int /*err*/) {
231+
dprintf(out, "%s\n", VkJsonInstanceToJson(VkJsonGetInstance()).c_str());
232+
return NO_ERROR;
230233
}
231234

232-
status_t cmdVkjson(int out, int /*err*/) {
233-
FILE* outs = fdopen(out, "w");
234-
if (!outs) {
235-
int errnum = errno;
236-
ALOGE("vkjson: failed to create output stream: %s", strerror(errnum));
237-
return -errnum;
238-
}
239-
vkjsonPrint(outs);
240-
fclose(outs);
235+
status_t cmdVkprofiles(int out, int /*err*/) {
236+
dprintf(out, "%s\n", android::vkprofiles::vkProfiles().c_str());
241237
return NO_ERROR;
242238
}
243239

0 commit comments

Comments
 (0)