[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