Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <jeroen@blender.org>2022-10-19 15:37:43 +0300
committerJeroen Bakker <jeroen@blender.org>2022-10-19 15:37:43 +0300
commitdce3327404111316d368e4d55aaa4add55026375 (patch)
tree4d1afb4a5925424937cd4cdc2185d3780071dc8f /source/blender
parent3ee90b6c01783e36a17a077489f2fd1150c7d19d (diff)
Add supported backend check to shader builder.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/gpu/intern/gpu_shader_builder.cc21
1 files changed, 16 insertions, 5 deletions
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();