[Bf-blender-cvs] [dce33274041] temp-T101905-gpu-backend-argument: Add supported backend check to shader builder.

Jeroen Bakker noreply at git.blender.org
Wed Oct 19 14:46:44 CEST 2022


Commit: dce3327404111316d368e4d55aaa4add55026375
Author: Jeroen Bakker
Date:   Wed Oct 19 14:37:43 2022 +0200
Branches: temp-T101905-gpu-backend-argument
https://developer.blender.org/rBdce3327404111316d368e4d55aaa4add55026375

Add supported backend check to shader builder.

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

M	source/blender/gpu/intern/gpu_shader_builder.cc

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

diff --git a/source/blender/gpu/intern/gpu_shader_builder.cc b/source/blender/gpu/intern/gpu_shader_builder.cc
index 9f28126da75..9a67ddde5e6 100644
--- a/source/blender/gpu/intern/gpu_shader_builder.cc
+++ b/source/blender/gpu/intern/gpu_shader_builder.cc
@@ -91,16 +91,27 @@ int main(int argc, const char *argv[])
 
   int exit_code = 0;
 
-  blender::Vector<eGPUBackendType> backends_to_validate;
-  backends_to_validate.append(GPU_BACKEND_OPENGL);
+  struct NamedBackend {
+    std::string name;
+    eGPUBackendType backend;
+  };
+
+  blender::Vector<NamedBackend> backends_to_validate;
+  backends_to_validate.append({"OpenGL", GPU_BACKEND_OPENGL});
 #ifdef WITH_METAL_BACKEND
-  backends_to_validate.append(GPU_BACKEND_METAL);
+  backends_to_validate.append({"Metal", GPU_BACKEND_METAL});
 #endif
-  for (eGPUBackendType backend : backends_to_validate) {
-    GPU_backend_type_selection_set(backend);
+  for (NamedBackend &backend : backends_to_validate) {
+    GPU_backend_type_selection_set(backend.backend);
+    if (!GPU_backend_supported()) {
+      printf("%s isn't supported on this platform. Shader compilation is skipped\n",
+             backend.name.c_str());
+      continue;
+    }
     blender::gpu::shader_builder::ShaderBuilder builder;
     builder.init();
     if (!builder.bake_create_infos()) {
+      printf("Shader compilation failed for %s backend\n", backend.name.c_str());
       exit_code = 1;
     }
     builder.exit();



More information about the Bf-blender-cvs mailing list