Commit: 6c310acccc557fbe50503abe1366bfa1ba080847
Author: Campbell Barton
Date:   Wed Jan 25 11:56:04 2023 +1100
Branches: master
https://developer.blender.org/rB6c310acccc557fbe50503abe1366bfa1ba080847

help now includes a GPU section & improve --gpu-backend error

- Include available GPU backends in the GPU backend error.
- Use stderr for the error message.

===================================================================

M       source/creator/creator_args.c

===================================================================

diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c
index e942c0d18ee..a53ee46b00a 100644
--- a/source/creator/creator_args.c
+++ b/source/creator/creator_args.c
@@ -598,6 +598,10 @@ static int arg_handle_print_help(int UNUSED(argc), const 
char **UNUSED(argv), vo
 
   BLI_args_print_arg_doc(ba, "--verbose");
 
+  printf("\n");
+  printf("GPU Options:\n");
+  BLI_args_print_arg_doc(ba, "--gpu-backend");
+
   printf("\n");
   printf("Misc Options:\n");
   BLI_args_print_arg_doc(ba, "--open-last");
@@ -1126,29 +1130,37 @@ static const char arg_handle_gpu_backend_set_doc[] =
 static int arg_handle_gpu_backend_set(int argc, const char **argv, void 
*UNUSED(data))
 {
   if (argc == 0) {
-    printf("\nError: GPU backend must follow '--gpu-backend'.\n");
+    fprintf(stderr, "\nError: GPU backend must follow '--gpu-backend'.\n");
     return 0;
   }
+  const char *backends_supported[3] = {NULL};
+  int backends_supported_num = 0;
 
   eGPUBackendType gpu_backend = GPU_BACKEND_NONE;
 
-  if (STREQ(argv[1], "opengl")) {
+  /* NOLINTBEGIN: bugprone-assignment-in-if-condition */
+  if (STREQ(argv[1], (backends_supported[backends_supported_num++] = 
"opengl"))) {
     gpu_backend = GPU_BACKEND_OPENGL;
   }
 #  ifdef WITH_VULKAN_BACKEND
-  else if (STREQ(argv[1], "vulkan")) {
+  else if (STREQ(argv[1], (backends_supported[backends_supported_num++] = 
"vulkan"))) {
     gpu_backend = GPU_BACKEND_VULKAN;
   }
 #  endif
 #  ifdef WITH_METAL_BACKEND
-  else if (STREQ(argv[1], "metal")) {
+  else if (STREQ(argv[1], (backends_supported[backends_supported_num++] = 
"metal"))) {
     gpu_backend = GPU_BACKEND_METAL;
   }
 #  endif
   else {
-    printf("\nError: Unrecognized GPU backend for '--gpu-backend'.\n");
+    fprintf(stderr, "\nError: Unrecognized GPU backend for '--gpu-backend', 
expected one of [");
+    for (int i = 0; i < backends_supported_num; i++) {
+      fprintf(stderr, (i + 1 != backends_supported_num) ? "%s, " : "%s", 
backends_supported[i]);
+    }
+    fprintf(stderr, "].\n");
     return 0;
   }
+  /* NOLINTEND: bugprone-assignment-in-if-condition */
 
   GPU_backend_type_selection_set_override(gpu_backend);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to