diff --git a/bin/system-info.c b/bin/system-info.c index fc8769ced7e5461d5e7abebc852993f0d2fa9f50..b37c6a3fea3847a4c52395927f54c48cbb6d7623 100644 --- a/bin/system-info.c +++ b/bin/system-info.c @@ -131,6 +131,7 @@ enum { OPTION_HELP = 1, OPTION_EXPECTATION, + OPTION_IGNORE_EXTRA_DRIVERS, OPTION_VERBOSE, OPTION_VERSION, }; @@ -138,6 +139,7 @@ enum struct option long_options[] = { { "expectations", required_argument, NULL, OPTION_EXPECTATION }, + { "ignore-extra-drivers", no_argument, NULL, OPTION_IGNORE_EXTRA_DRIVERS }, { "verbose", no_argument, NULL, OPTION_VERBOSE }, { "version", no_argument, NULL, OPTION_VERSION }, { "help", no_argument, NULL, OPTION_HELP }, @@ -535,6 +537,7 @@ main (int argc, static const char * const multiarch_tuples[] = { SRT_ABI_I386, SRT_ABI_X86_64, NULL }; GList *icds; const GList *icd_iter; + SrtDriverFlags extra_driver_flags = SRT_DRIVER_FLAGS_INCLUDE_ALL; while ((opt = getopt_long (argc, argv, "", long_options, NULL)) != -1) { @@ -558,6 +561,10 @@ main (int argc, argv[0], VERSION); return 0; + case OPTION_IGNORE_EXTRA_DRIVERS: + extra_driver_flags = SRT_DRIVER_FLAGS_NONE; + break; + case OPTION_HELP: usage (0); break; @@ -836,11 +843,11 @@ main (int argc, print_graphics_details (builder, graphics_list); dri_list = srt_system_info_list_dri_drivers (info, multiarch_tuples[i], - SRT_DRIVER_FLAGS_INCLUDE_ALL); + extra_driver_flags); print_dri_details (builder, dri_list); va_api_list = srt_system_info_list_va_api_drivers (info, multiarch_tuples[i], - SRT_DRIVER_FLAGS_INCLUDE_ALL); + extra_driver_flags); print_va_api_details (builder, va_api_list); json_builder_end_object (builder); // End multiarch_tuple object diff --git a/steam-runtime-tools/system-info.c b/steam-runtime-tools/system-info.c index c61f71b6e5d08c18200309d2ad12e696f3d85b3f..c0b51bf30767d822729d108177c2aa49556685e3 100644 --- a/steam-runtime-tools/system-info.c +++ b/steam-runtime-tools/system-info.c @@ -2529,8 +2529,10 @@ srt_system_info_list_dri_drivers (SrtSystemInfo *self, for (iter = abi->cached_dri_list; iter != NULL; iter = iter->next) { - if ((flags & SRT_DRIVER_FLAGS_NONE) && srt_dri_driver_is_extra (iter->data)) + if ((flags & SRT_DRIVER_FLAGS_INCLUDE_ALL) == 0 && + srt_dri_driver_is_extra (iter->data)) continue; + ret = g_list_prepend (ret, g_object_ref (iter->data)); } @@ -2584,7 +2586,8 @@ srt_system_info_list_va_api_drivers (SrtSystemInfo *self, for (iter = abi->cached_va_api_list; iter != NULL; iter = iter->next) { - if ((flags & SRT_DRIVER_FLAGS_NONE) && srt_va_api_driver_is_extra (iter->data)) + if ((flags & SRT_DRIVER_FLAGS_INCLUDE_ALL) == 0 && + srt_va_api_driver_is_extra (iter->data)) continue; ret = g_list_prepend (ret, g_object_ref (iter->data)); } diff --git a/steam-runtime-tools/system-info.h b/steam-runtime-tools/system-info.h index 9ae6ef71d28efa4289dacf3a8d459d4e30450379..d44c9b600034d3161ecddf2cb02b2b588b82408f 100644 --- a/steam-runtime-tools/system-info.h +++ b/steam-runtime-tools/system-info.h @@ -68,7 +68,7 @@ typedef enum typedef enum { SRT_DRIVER_FLAGS_INCLUDE_ALL = (1 << 1), - SRT_DRIVER_FLAGS_NONE = (1 << 0) + SRT_DRIVER_FLAGS_NONE = 0 } SrtDriverFlags; typedef struct _SrtSystemInfo SrtSystemInfo;