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;