[Bf-blender-cvs] [7d7a39d00bc] temp-vulkan-shader: Make sure that shader compiler doesn't crash when using Vulkan.
Jeroen Bakker
noreply at git.blender.org
Fri Nov 25 10:05:01 CET 2022
Commit: 7d7a39d00bcb207774c25a576ac863dbdf3bcb0f
Author: Jeroen Bakker
Date: Fri Nov 25 09:24:03 2022 +0100
Branches: temp-vulkan-shader
https://developer.blender.org/rB7d7a39d00bcb207774c25a576ac863dbdf3bcb0f
Make sure that shader compiler doesn't crash when using Vulkan.
===================================================================
M source/blender/gpu/intern/gpu_context.cc
M source/blender/gpu/intern/gpu_init_exit.c
M source/blender/gpu/intern/gpu_shader.cc
M source/blender/gpu/intern/gpu_shader_builder.cc
===================================================================
diff --git a/source/blender/gpu/intern/gpu_context.cc b/source/blender/gpu/intern/gpu_context.cc
index 7e94538892a..0443417a32a 100644
--- a/source/blender/gpu/intern/gpu_context.cc
+++ b/source/blender/gpu/intern/gpu_context.cc
@@ -321,6 +321,12 @@ eGPUBackendType GPU_backend_get_type()
}
#endif
+#ifdef WITH_VULKAN_BACKEND
+ if (g_backend && dynamic_cast<VKBackend *>(g_backend) != nullptr) {
+ return GPU_BACKEND_VULKAN;
+ }
+#endif
+
return GPU_BACKEND_NONE;
}
diff --git a/source/blender/gpu/intern/gpu_init_exit.c b/source/blender/gpu/intern/gpu_init_exit.c
index 2dbb4b215bb..af906ad685f 100644
--- a/source/blender/gpu/intern/gpu_init_exit.c
+++ b/source/blender/gpu/intern/gpu_init_exit.c
@@ -34,13 +34,13 @@ void GPU_init(void)
gpu_shader_create_info_init();
gpu_codegen_init();
-
- gpu_batch_init();
+ // TODO(jbakker): this should never land in master.
+ // gpu_batch_init();
}
void GPU_exit(void)
{
- gpu_batch_exit();
+ // gpu_batch_exit();
gpu_codegen_exit();
diff --git a/source/blender/gpu/intern/gpu_shader.cc b/source/blender/gpu/intern/gpu_shader.cc
index 4d059ae495e..15d2b37e0a9 100644
--- a/source/blender/gpu/intern/gpu_shader.cc
+++ b/source/blender/gpu/intern/gpu_shader.cc
@@ -98,6 +98,9 @@ static void standard_defines(Vector<const char *> &sources)
case GPU_BACKEND_METAL:
sources.append("#define GPU_METAL\n");
break;
+ case GPU_BACKEND_VULKAN:
+ sources.append("#define GPU_VULKAN\n");
+ break;
default:
BLI_assert(false && "Invalid GPU Backend Type");
break;
diff --git a/source/blender/gpu/intern/gpu_shader_builder.cc b/source/blender/gpu/intern/gpu_shader_builder.cc
index 96e3eacd6f5..877cd1ee406 100644
--- a/source/blender/gpu/intern/gpu_shader_builder.cc
+++ b/source/blender/gpu/intern/gpu_shader_builder.cc
@@ -54,6 +54,12 @@ void ShaderBuilder::init()
break;
#endif
+#ifdef WITH_VULKAN_BACKEND
+ case GPU_BACKEND_VULKAN:
+ glSettings.context_type = GHOST_kDrawingContextTypeVulkan;
+ break;
+#endif
+
default:
BLI_assert_unreachable();
break;
@@ -100,6 +106,9 @@ int main(int argc, const char *argv[])
backends_to_validate.append({"OpenGL", GPU_BACKEND_OPENGL});
#ifdef WITH_METAL_BACKEND
backends_to_validate.append({"Metal", GPU_BACKEND_METAL});
+#endif
+#ifdef WITH_VULKAN_BACKEND
+ backends_to_validate.append({"Vulkan", GPU_BACKEND_VULKAN});
#endif
for (NamedBackend &backend : backends_to_validate) {
GPU_backend_type_selection_set(backend.backend);
More information about the Bf-blender-cvs
mailing list