shg8 / 3DGS.cpp

A cross-platform, high performance renderer for Gaussian Splatting using Vulkan Compute. Supports ✅ Windows, Linux, macOS, iOS, and visionOS
GNU Lesser General Public License v2.1
447 stars 26 forks source link

iOS installation - OK but VK_ERROR_OUT_OF_DEVICE_MEMORY #39

Open AlexMorgand opened 2 days ago

AlexMorgand commented 2 days ago

Hey! First of all thank you for your work.

I managed to get the app installed but I'm not sure if I did things correctly. Here is a walkthrough of what I did.

Initially did

 mkdir build
cmake -DCMAKE_BUILD_TYPE=Release -S ./ -B ./build
cmake --build ./build -j4

I had to fix a couple of things first:

  1. Remove case VK_DRIVER_ID_MESA_AGXV in vk_enum_string_helper.h
  2. Replace define VULKAN_HPP_TYPESAFE_CONVERSION to VULKAN_HPP_TYPESAFE_CONVERSION 0 as it caused issues as it's expected to be an integer

Installed Vulkan SDK and prebuilt MoltenVK libraries.

and then running

make xcode_setup

in the build folder. I was expecting a xcodeproj to be generated but I got nothing.

What worked for me:

  1. building in the root dir and not the build folder.
  2. Using the default "apps/apple/VulkanSplatting/project.xcconfig" project
  3. In MetalWindow.cpp, replaced context->instance->createMetalSurfacEXT(surfaceCreateInfo) to static_cast<VkSurfaceKHR>(context->instance->createMetalSurfacEXT(surfaceCreateInfo))
  4. Removed the default VulkanSplatting.cpp (xcode generated) since it should be Renderer.cpp (I think?)
  5. Fix references for glm, 3dgs.hpp and placed 3dgs.cpp correctly in the project since there was undefined references.

The app seems to be installed well but when loading a classic ply like bonsai it loads but when I move around to explore the splat, I get a VK_ERROR_OUT_OF_DEVICE_MEMORY

My device is a Iphone 15 max pro and the splats tested are not super big.

Any advice? Is there any more spot left in the testflight :)

Thanks in advance!