$ jj diff --git
diff --git a/build.zig b/build.zig
index 3d0c38ec64..c57cda7abd 100644
--- a/build.zig
+++ b/build.zig
@@ -23,6 +23,13 @@
         .optimize = optimize,
     });
 
+    const dep_vma = b.dependency("vulkan_vma", .{});
+    const vma_translate = b.addTranslateC(.{
+        .root_source_file = dep_vma.path("include/vk_mem_alloc.h"),
+        .target = target,
+        .optimize = optimize,
+    });
+
     const zglfw_mod = dep_zglfw.module("root");
     zglfw_mod.addImport("vulkan", dep_vk_kickstart.module("vulkan"));
 
@@ -39,9 +46,16 @@
                 .{ .name = "vulkan", .module = dep_vk_kickstart.module("vulkan") },
                 .{ .name = "zglfw", .module = zglfw_mod },
                 .{ .name = "vk_kickstart", .module = dep_vk_kickstart.module("vk-kickstart") },
+                .{ .name = "vma", .module = vma_translate.createModule() },
             },
+            .link_libcpp = true,
         }),
     });
+    exe.root_module.addIncludePath(dep_vma.path("include"));
+    exe.root_module.addCSourceFile(.{
+        .file = b.path("src/vma_impl.cpp"),
+        .flags = &.{"--std=c++17"},
+    });
 
     if (target.result.os.tag != .emscripten) {
         exe.root_module.linkLibrary(dep_zglfw.artifact("glfw"));
diff --git a/build.zig.zon b/build.zig.zon
index b2b7b32a08..fc360232ea 100644
--- a/build.zig.zon
+++ b/build.zig.zon
@@ -4,10 +4,6 @@
     .fingerprint = 0x82952f5c6d322a7c, // Changing this has security and trust implications.
     .minimum_zig_version = "0.17.0-dev.284+cd23f7a81",
     .dependencies = .{
-        .sokol = .{
-            .url = "git+https://github.com/floooh/sokol-zig.git#6ca71321c91e842fb32a8140802a546e50d8a086",
-            .hash = "sokol-0.1.0-pb1HK9lgNwAAB5SLJlpJQ09PZ2CVydxkNs0KaptLaTUD",
-        },
         .zmath = .{
             .url = "git+https://github.com/zig-gamedev/zmath.git#9e42b04a24c970a297b365f3d3022f92dbf3219d",
             .hash = "zmath-0.11.0-dev-wjwivTwtAwDOjG2_KGP-HLtHrONfsFfHttalmxFAGVAK",
@@ -20,14 +16,14 @@
             .url = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/v1.4.350.tar.gz",
             .hash = "N-V-__8AAPnEbQK6L3hGtJefy0xZjeg7KOxIEj8_obZC2_lF",
         },
-        // .vulkan = .{
-        //     .url = "git+https://github.com/Snektron/vulkan-zig#be16fc99f7f794cba90334978c6c5aadeda8094f",
-        //     .hash = "vulkan-0.0.0-r7Ytx-V9AwCwHxS2TaZ-KJCp_3axidu3ASZUg3B512-k",
-        // },
         .vk_kickstart = .{
             .url = "git+https://github.com/mikastiv/vk-kickstart.git#64663eb42181aa4783584a4690ddff98cbfc2e81",
             .hash = "vk_kickstart-0.1.0-YDdE9ChKAQDOe_GDNH3-1WKNy7TtSeksA0OTCTv419Cy",
         },
+        .vulkan_vma = .{
+            .url = "git+https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git#a1d434708c217b2a6c7b365f1fe41fa03a562e59",
+            .hash = "N-V-__8AAAVPPwDox3fRB8szj8h2nd82xYnHf0oX_NSYDemV",
+        },
     },
     .paths = .{
         "build.zig",
diff --git a/src/VulkanRenderer/VulkanContext.zig b/src/VulkanRenderer/VulkanContext.zig
index 3219b3df7f..954966ece2 100644
--- a/src/VulkanRenderer/VulkanContext.zig
+++ b/src/VulkanRenderer/VulkanContext.zig
@@ -3,6 +3,7 @@
 
 const vk = @import("vulkan");
 const vkk = @import("vk_kickstart");
+const vma = @import("vma");
 const glfw = @import("zglfw");
 
 pub const VulkanContext = struct {
diff --git a/src/vma_impl.cpp b/src/vma_impl.cpp
new file mode 100644
index 0000000000..a2023d33b2
--- /dev/null
+++ b/src/vma_impl.cpp
@@ -0,0 +1,2 @@
+#define VMA_IMPLEMENTATION
+#include "vk_mem_alloc.h"


