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;
4445namespace {
4546status_t cmdHelp (int out);
4647status_t cmdVkjson (int out, int err);
48+ status_t cmdVkprofiles (int out, int err);
4749void 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 {
213216status_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