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-11-07 10:03:50 +0300
committerJeroen Bakker <jeroen@blender.org>2022-11-07 10:03:50 +0300
commitd64d78917406c467656f697d115e9b171802fcc5 (patch)
treecad75bf860ea97396cf74fc494bdb17f644acbf2
parent975e9020cbc1a3908d26c17914c5c2e3f3c48afb (diff)
Initialize vk backend.
-rw-r--r--source/blender/gpu/vulkan/vk_backend.cc30
-rw-r--r--source/blender/gpu/vulkan/vk_backend.hh14
2 files changed, 43 insertions, 1 deletions
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