diff --git a/liblava/core/version.hpp b/liblava/core/version.hpp
index 47868444cd9fff0b3ec0395213ab04cd15a97ae6..665479a1b066b7db8c35f6425e21fd4a332254f6 100644
--- a/liblava/core/version.hpp
+++ b/liblava/core/version.hpp
@@ -4,6 +4,7 @@
 
 #pragma once
 
+#include <compare>
 #include <liblava/core/types.hpp>
 
 namespace lava {
diff --git a/src/scene.cpp b/src/scene.cpp
index 8c8bf4abb0741463fa98debd7e77f8422fb042da..805373531c2e99d2053179cd10ffab2a125477f0 100644
--- a/src/scene.cpp
+++ b/src/scene.cpp
@@ -328,7 +328,7 @@ scene::ptr load_scene(lava::device_ptr device, lava::name filename) {
         assimp_material->GetTexture(aiTextureType_DIFFUSE, 0, &diffuse_texture_path);
         if (diffuse_texture_path.length > 0) {
             const auto texture_path = base_path / diffuse_texture_path.C_Str();
-            std::string texture_path_string = texture_path;
+            std::string texture_path_string = texture_path.string();
             std::replace(texture_path_string.begin(), texture_path_string.end(), '\\', '/');
             material->diffuse = load_texture(device, texture_path_string, VK_FORMAT_UNDEFINED);
 
@@ -355,7 +355,7 @@ scene::ptr load_scene(lava::device_ptr device, lava::name filename) {
         assimp_material->GetTexture(aiTextureType_NORMALS, 0, &normal_map_path);
         if (normal_map_path.length > 0) {
             auto texture_path = base_path / normal_map_path.C_Str();
-            std::string texture_path_string = texture_path;
+            std::string texture_path_string = texture_path.string();
             std::replace(texture_path_string.begin(), texture_path_string.end(), '\\', '/');
             log()->info("Load normal map: {}", texture_path_string);
             material->normal = load_texture(device, texture_path_string, VK_FORMAT_UNDEFINED);
diff --git a/src/vr_app.cpp b/src/vr_app.cpp
index 4693089ea0c7666c0f5f4edbb33741161241086c..9085d3af52f1ba71ecdd473318714c4c17f1af01 100644
--- a/src/vr_app.cpp
+++ b/src/vr_app.cpp
@@ -28,7 +28,6 @@ vr_app::vr_app(name name, argh::parser cmd_line) {
         if (log()) {
             log()->error("Failed to initialize OpenVR: {}", hmd_error);
         }
-        // throw std::runtime_error("Failed to initialize OpenVR");
     }
 
     const auto pos_args = cmd_line.pos_args();
@@ -526,7 +525,7 @@ stereo_framebuffer::ptr vr_app::create_framebuffer(glm::uvec2 size, vr::EVREye e
       }
       framebuffer->per_frame_data.projection = glm::transpose(framebuffer->per_frame_data.projection);
     } else {
-      framebuffer->per_frame_data.projection = glm::perspective(M_PI / 2, 16.0/9.0, 0.1, 1000000.0);
+      framebuffer->per_frame_data.projection = glm::perspective(glm::pi<double>() / 2, 16.0/9.0, 0.1, 1000000.0);
       framebuffer->per_frame_data.headToEye = glm::translate(glm::mat4(1.0f), glm::vec3(10.0f, 0.0, 0.0f) * (eye == vr::Eye_Left ? 1.0f : -1.0f));
     }
     framebuffer->per_frame_data.view = glm::identity<glm::mat4>();