From d64d78917406c467656f697d115e9b171802fcc5 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 7 Nov 2022 08:03:50 +0100 Subject: Initialize vk backend. --- source/blender/gpu/vulkan/vk_backend.cc | 30 +++++++++++++++++++++++++++++- source/blender/gpu/vulkan/vk_backend.hh | 14 ++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/source/blender/gpu/vulkan/vk_backend.cc b/source/blender/gpu/vulkan/vk_backend.cc index 00bc43333d6..d22275cebef 100644 --- a/source/blender/gpu/vulkan/vk_backend.cc +++ b/source/blender/gpu/vulkan/vk_backend.cc @@ -5,7 +5,7 @@ * \ingroup gpu */ -#include "vk_backend.hh" +#include "gpu_platform_private.hh" #include "vk_batch.hh" #include "vk_context.hh" @@ -19,8 +19,36 @@ #include "vk_uniform_buffer.hh" #include "vk_vertex_buffer.hh" +#include "vk_backend.hh" + namespace blender::gpu { +void VKBackend::init_platform() +{ + BLI_assert(!GPG.initialized); + + eGPUDeviceType device = GPU_DEVICE_ANY; + eGPUOSType os = GPU_OS_ANY; + eGPUDriverType driver = GPU_DRIVER_ANY; + eGPUSupportLevel support_level = GPU_SUPPORT_LEVEL_SUPPORTED; + +#ifdef _WIN32 + os = GPU_OS_WIN; +#elif defined(__APPLE__) + os = GPU_OS_MAC; +#else + os = GPU_OS_UNIX; +#endif + + GPG.init(device, os, driver, support_level, GPU_BACKEND_VULKAN, "", "", ""); +} + +void VKBackend::platform_exit() +{ + BLI_assert(GPG.initialized); + GPG.clear(); +} + void VKBackend::delete_resources() { } diff --git a/source/blender/gpu/vulkan/vk_backend.hh b/source/blender/gpu/vulkan/vk_backend.hh index 549478586e8..55b528bfa00 100644 --- a/source/blender/gpu/vulkan/vk_backend.hh +++ b/source/blender/gpu/vulkan/vk_backend.hh @@ -13,6 +13,16 @@ namespace blender::gpu { class VKBackend : public GPUBackend { public: + VKBackend() + { + VKBackend::init_platform(); + } + + virtual ~VKBackend() + { + VKBackend::platform_exit(); + } + void delete_resources() override; void samplers_update() override; @@ -37,6 +47,10 @@ class VKBackend : public GPUBackend { void render_begin() override; void render_end() override; void render_step() override; + + private: + static void init_platform(); + static void platform_exit(); }; } // namespace blender::gpu \ No newline at end of file -- cgit v1.2.3