Index: compile.sh
===================================================================
--- compile.sh	(revision e8445f0578a1239a58166837998c25fe3ab0ecc3)
+++ compile.sh	(revision b8072d392d78f98f83ee7c10e3f50a901a29dff2)
@@ -8,4 +8,6 @@
    VULKAN_SDK_PATH=/Users/dportnoy15/Development/vulkan-sdk-macos-1.1.108.0/macOS
 fi
+
+cd shaders
 
 shopt -s nullglob
@@ -22,2 +24,4 @@
    glslangValidator -V $f -o $fOut
 done
+
+cd ..
Index: sdl-game.cpp
===================================================================
--- sdl-game.cpp	(revision e8445f0578a1239a58166837998c25fe3ab0ecc3)
+++ sdl-game.cpp	(revision b8072d392d78f98f83ee7c10e3f50a901a29dff2)
@@ -78,7 +78,7 @@
 
 void VulkanGame::run(int width, int height, unsigned char guiFlags) {
+   cout << "Vulkan Game" << endl;
+
    cout << "DEBUGGING IS " << (ENABLE_VALIDATION_LAYERS ? "ON" : "OFF") << endl;
-
-   cout << "Vulkan Game" << endl;
 
    if (initUI(width, height, guiFlags) == RTWO_ERROR) {
@@ -103,6 +103,7 @@
    modelPipeline.addAttribute(VK_FORMAT_R32_UINT, offset_of(&ModelVertex::objIndex));
 
-   createBufferSet(sizeof(UBO_VP_mats), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
-      uniformBuffers_modelPipeline, uniformBuffersMemory_modelPipeline, uniformBufferInfoList_modelPipeline);
+   createBufferSet(uniformBuffers_modelPipeline, uniformBuffersMemory_modelPipeline, sizeof(UBO_VP_mats),
+      VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
+      uniformBufferInfoList_modelPipeline);
 
    modelPipeline.addDescriptorInfo(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
@@ -113,4 +114,6 @@
 
    SceneObject<ModelVertex, SSBO_ModelObject>* texturedSquare = nullptr;
+
+   // TODO: Ideally, avoid having to make the squares as modified upon creation
 
    texturedSquare = &addObject(modelObjects, modelPipeline,
@@ -1080,6 +1083,6 @@
 }
 
-void VulkanGame::createBufferSet(VkDeviceSize bufferSize, VkBufferUsageFlags flags,
-                                 vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory,
+void VulkanGame::createBufferSet(vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory,
+                                 VkDeviceSize bufferSize, VkBufferUsageFlags flags, VkMemoryPropertyFlags properties,
                                  vector<VkDescriptorBufferInfo>& bufferInfoList) {
    buffers.resize(swapChainImageCount);
@@ -1088,7 +1091,5 @@
 
    for (size_t i = 0; i < swapChainImageCount; i++) {
-      VulkanUtils::createBuffer(device, physicalDevice, bufferSize, flags,
-         VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
-         buffers[i], buffersMemory[i]);
+      VulkanUtils::createBuffer(device, physicalDevice, bufferSize, flags, properties, buffers[i], buffersMemory[i]);
 
       bufferInfoList[i].buffer = buffers[i];
@@ -1229,6 +1230,7 @@
    // instead of recreated every time
 
-   createBufferSet(sizeof(UBO_VP_mats), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
-      uniformBuffers_modelPipeline, uniformBuffersMemory_modelPipeline, uniformBufferInfoList_modelPipeline);
+   createBufferSet(uniformBuffers_modelPipeline, uniformBuffersMemory_modelPipeline, sizeof(UBO_VP_mats),
+      VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
+      uniformBufferInfoList_modelPipeline);
 
    modelPipeline.updateRenderPass(renderPass);
Index: sdl-game.hpp
===================================================================
--- sdl-game.hpp	(revision e8445f0578a1239a58166837998c25fe3ab0ecc3)
+++ sdl-game.hpp	(revision b8072d392d78f98f83ee7c10e3f50a901a29dff2)
@@ -276,16 +276,15 @@
       void cleanupImGuiOverlay();
 
-      void createBufferSet(VkDeviceSize bufferSize, VkBufferUsageFlags flags,
-         vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory,
-         vector<VkDescriptorBufferInfo>& bufferInfoList);
+      void createBufferSet(vector<VkBuffer>& buffers, vector<VkDeviceMemory>& buffersMemory, VkDeviceSize bufferSize,
+                           VkBufferUsageFlags flags, VkMemoryPropertyFlags properties,
+                           vector<VkDescriptorBufferInfo>& bufferInfoList);
 
       // TODO: Since addObject() returns a reference to the new object now,
       // stop using objects.back() to access the object that was just created
       template<class VertexType, class SSBOType>
-      SceneObject<VertexType, SSBOType>& addObject(
-         vector<SceneObject<VertexType, SSBOType>>& objects,
-         GraphicsPipeline_Vulkan<VertexType, SSBOType>& pipeline,
-         const vector<VertexType>& vertices, vector<uint16_t> indices, SSBOType ssbo,
-         bool pipelinesCreated);
+      SceneObject<VertexType, SSBOType>& addObject(vector<SceneObject<VertexType, SSBOType>>& objects,
+                                                   GraphicsPipeline_Vulkan<VertexType, SSBOType>& pipeline,
+                                                   const vector<VertexType>& vertices, vector<uint16_t> indices,
+                                                   SSBOType ssbo, bool pipelinesCreated);
 
       template<class VertexType>
@@ -299,6 +298,6 @@
 
       template<class VertexType, class SSBOType>
-      void updateObject(vector<SceneObject<VertexType, SSBOType>>& objects,
-         GraphicsPipeline_Vulkan<VertexType, SSBOType>& pipeline, size_t index);
+      void updateObject(vector<SceneObject<VertexType, SSBOType>>& objects, GraphicsPipeline_Vulkan<VertexType,
+                        SSBOType>& pipeline, size_t index);
 
       void renderFrame(ImDrawData* draw_data);
@@ -458,6 +457,6 @@
 // TODO: Just pass in the single object instead of a list of all of them
 template<class VertexType, class SSBOType>
-void VulkanGame::updateObject(vector<SceneObject<VertexType, SSBOType>>& objects,
-   GraphicsPipeline_Vulkan<VertexType, SSBOType>& pipeline, size_t index) {
+void VulkanGame::updateObject(vector<SceneObject<VertexType, SSBOType>>& objects, GraphicsPipeline_Vulkan<VertexType,
+                              SSBOType>& pipeline, size_t index) {
    SceneObject<VertexType, SSBOType>& obj = objects[index];
 
