diff --git a/conanfile.py b/conanfile.py
index 60af502d5c97d0c1c252ab90c5351b1822132d22..e3ddbdcf0c2d9aa8512bfb8bca3f5e1032152f39 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -36,7 +36,7 @@ class ProjectPhoenix(ConanFile):
                 ("cppcheck/1.84@RWTH-VR/thirdparty"),
                 ("cpplint/e8ffd7c@RWTH-VR/thirdparty"),
                 ("freeimage/3.17.0_2@RWTH-VR/thirdparty"),
-                ("gl/1.1.1@RWTH-VR/thirdparty"),
+                ("gl/1.1.6@RWTH-VR/thirdparty"),
                 ("glm/0.9.8.5@g-truc/stable"),
                 ("jsonformoderncpp/3.0.1@vthiery/stable"),
                 ("openvr/1.0.12@RWTH-VR/thirdparty"),
diff --git a/library/phx/rendering/auxiliary/splash_screen.cpp b/library/phx/rendering/auxiliary/splash_screen.cpp
index 6dc547a6cb0699368c4b098f3a2f495504c902ac..c4910cd1deff54d8be0aa52b68a32103e39eba36 100644
--- a/library/phx/rendering/auxiliary/splash_screen.cpp
+++ b/library/phx/rendering/auxiliary/splash_screen.cpp
@@ -26,9 +26,9 @@
 #include <memory>
 #include <string>
 
-#include "phx/resources/types/image.hpp"
 #include "phx/resources/resource_manager.hpp"
 #include "phx/resources/resource_utils.hpp"
+#include "phx/resources/types/image.hpp"
 #include "phx/resources_path.hpp"
 
 namespace phx {
@@ -63,7 +63,6 @@ void SplashScreen::Draw() {
   splash_tex.set_sub_image(0, 0, 0, static_cast<GLsizei>(splash_dimensions[0]),
                            static_cast<GLsizei>(splash_dimensions[1]), GL_RGBA,
                            GL_UNSIGNED_BYTE, splash_image_->GetPixels().first);
-  gl::print_error("OpenGl Error creating Splash Screen texture: ");
   splash_buff.unbind();
   splash_tex.unbind();
 
@@ -80,7 +79,6 @@ void SplashScreen::Draw() {
       0, 0, 0, static_cast<GLsizei>(progress_dimensions[0]),
       static_cast<GLsizei>(progress_dimensions[1]), GL_RGBA, GL_UNSIGNED_BYTE,
       progressbar_image_->GetPixels().first);
-  gl::print_error("OpenGl Error creating Progress Bar texture: ");
   progress_buff.unbind();
   progress_tex.unbind();
 
@@ -97,8 +95,6 @@ void SplashScreen::Draw() {
       static_cast<GLsizei>(splash_dimensions[1] + y_offset),
       GL_COLOR_BUFFER_BIT, GL_LINEAR);
 
-  gl::print_error("OpenGl Error blitting Splash Screen: ");
-
   constexpr float progressbar_max_pixel_width = 198.f;
   unsigned int progressbar_current_pixel_width;
   {
diff --git a/library/phx/rendering/backend/render_target.cpp b/library/phx/rendering/backend/render_target.cpp
index b8b1c611a6b5a0c5eaaa351dbeec3cd492b9f08e..0333923aab70419e1743028d20f19b397850417f 100644
--- a/library/phx/rendering/backend/render_target.cpp
+++ b/library/phx/rendering/backend/render_target.cpp
@@ -42,7 +42,6 @@ phx::RenderTarget::RenderTarget(const glm::uvec2 dimensions)
   const GLint width = static_cast<GLint>(dimensions.x);
   const GLint height = static_cast<GLint>(dimensions.y);
   color_texture_->set_storage(1, GL_RGB8, width, height);
-  gl::print_error("OpenGl Error creating Render Target Color Texture: ");
 
   attach_texture<GL_TEXTURE_2D>(GL_COLOR_ATTACHMENT0, *color_texture_, 0);
   color_texture_->unbind();
@@ -50,13 +49,11 @@ phx::RenderTarget::RenderTarget(const glm::uvec2 dimensions)
   depth_texture_ = std::make_unique<gl::texture_2d>();
   depth_texture_->bind();
   depth_texture_->set_storage(1, GL_DEPTH_COMPONENT24, width, height);
-  gl::print_error("OpenGl Error creating Render Target Depth Texture: ");
 
   attach_texture<GL_TEXTURE_2D>(GL_DEPTH_ATTACHMENT, *depth_texture_, 0);
   depth_texture_->unbind();
 
   if (!is_valid() || !is_complete()) {
-    gl::print_error("OpenGl Error creating Render Target: ");
     error(
         "[RenderTarget] Unable to create render target, status: {}, valid: {}",
         status(), is_valid());
diff --git a/library/phx/rendering/rendering_system.cpp b/library/phx/rendering/rendering_system.cpp
index 12a56f4b0e4429d552bb7b23886fd16ee58c91c5..7e9a59d963c9c06add6b051736bb304d0a52bddf 100644
--- a/library/phx/rendering/rendering_system.cpp
+++ b/library/phx/rendering/rendering_system.cpp
@@ -39,6 +39,7 @@
 #include "phx/rendering/components/transform.hpp"
 #include "phx/rendering/render_passes/skybox_pass.hpp"
 
+#include "gl/debug.hpp"
 #include "gl/opengl.hpp"
 
 namespace phx {
@@ -54,8 +55,11 @@ void RenderingSystem::InitializeOpenGL() {
   if (!gl::initialize()) {
     error("Initializing gl failed");
   }
-  std::string prefix = "[RenderingSystem] OpenGl Error: ";
-  gl::print_error(prefix.c_str());
+
+  gl::set_debug_output_enabled(true);
+  gl::set_debug_log_callback([&](gl::debug_log log) {
+    warn("[gl::error] with message {}", log.message);
+  });
 }
 
 void RenderingSystem::SetupFramegraph() {
diff --git a/library/phx/resources/types/material.cpp b/library/phx/resources/types/material.cpp
index 49bd551988f68eedfbee0d585a378d54e50c785a..bf130003f5daed018b24dd2601b26ffd5323f32c 100644
--- a/library/phx/resources/types/material.cpp
+++ b/library/phx/resources/types/material.cpp
@@ -131,7 +131,6 @@ void Material::SetTexture(ResourcePointer<Image> image,
   (*texture)->generate_mipmap();
   gl::texture_handle handle(*texture->get());
   handle.set_resident(true);
-  gl::print_error("[Material::SetTexture] OpenGl Error code");
 }
 
 void Material::ResetTexture(std::shared_ptr<gl::texture_2d>* texture) {
diff --git a/tests/src/mocks/generation/Create_openGL_mock.py b/tests/src/mocks/generation/Create_openGL_mock.py
index c9904353410302187b1c9e0dd889291f7e7581c5..02925abc19d92dbcfdeab722e360395279a86910 100644
--- a/tests/src/mocks/generation/Create_openGL_mock.py
+++ b/tests/src/mocks/generation/Create_openGL_mock.py
@@ -22,11 +22,11 @@
 import sys, getopt
 
 #functions you want to mock should be put in this list
-functions_to_mock =['glClear', 'glEnable', 'glClearColor', 'glCreateProgram', 'glCreateShader', 'glNamedBufferData', 'glShaderSource',
+functions_to_mock =['glClear', 'glEnable', 'glIsEnabled', 'glDisable', 'glClearColor', 'glCreateProgram', 'glCreateShader', 'glNamedBufferData', 'glShaderSource',
                     'glCompileShader', 'glAttachShader', 'glBindVertexArray', 'glCreateBuffers', 'glCreateVertexArrays', 'glEnableVertexArrayAttrib',
                     'glGetUniformLocation', 'glIsBuffer', 'glIsProgram', 'glIsVertexArray', 'glLinkProgram', 'glUniformMatrix4fv', 'glUniform3fv',
                     'glUniform1f', 'glUseProgram', 'glVertexArrayElementBuffer', 'glVertexArrayVertexBuffer', 'glDrawElements', 'glVertexArrayAttribFormat',
-                    'glGetProgramiv', 'glGetProgramInfoLog', 'glProgramUniform3fv', 'glProgramUniformMatrix4fv', 'glClearColor',
+                    'glGetProgramiv', 'glGetProgramInfoLog', 'glProgramUniform3fv', 'glProgramUniformMatrix4fv', 'glGetPointerv', 
                     'glClearDepth', 'glClearStencil', 'glColorMask', 'glDepthMask', 'glReadPixels', '__glewStencilMaskSeparate', '__glewClampColor',
                     '__glewColorMaski', '__glewClearDepthf', '__glewBlitNamedFramebuffer', '__glewCheckNamedFramebufferStatus', '__glewClearNamedFramebufferfi',
                     '__glewClearNamedFramebufferfv', '__glewClearNamedFramebufferiv', '__glewClearNamedFramebufferuiv', '__glewCreateFramebuffers',
@@ -62,8 +62,9 @@ functions_to_mock =['glClear', 'glEnable', 'glClearColor', 'glCreateProgram', 'g
                     '__glewGetVertexArrayIndexediv', '__glewGetVertexArrayiv', '__glewVertexArrayAttribBinding', '__glewVertexArrayAttribIFormat', '__glewVertexArrayAttribLFormat',
                     '__glewVertexArrayBindingDivisor', '__glewDeleteVertexArrays', 'glBindTexture', 'glDeleteTextures', '__glewCreateTextures', '__glewNamedFramebufferTexture',
                     '__glewTextureStorage2D', '__glewBindFramebuffer', 'glIsTexture', '__glewGetTextureHandleARB', '__glewGenerateTextureMipmap', '__glewTextureParameteri', '__glewTextureSubImage2D',
-                    '__glewBindBufferBase', '__glewBindBuffer', '__glewBindBufferRange', '__glewCreateShaderProgramv', 'glDepthRange', '__glewDepthRangef', '__glewDepthRangeIndexed', '__glewViewportIndexedf', 
-					'glPolygonMode', 'glDrawArrays', '__glewTextureStorage3D', '__glewTextureSubImage3D']
+                    '__glewBindBufferBase', '__glewBindBuffer', '__glewBindBufferRange', '__glewCreateShaderProgramv', 'glDepthRange', '__glewDepthRangef', '__glewDepthRangeIndexed', '__glewViewportIndexedf', 'glPolygonMode', 'glDebugMessageCallback',
+					'__glewDebugMessageControl', '__glewDebugMessageInsert', '__glewGetDebugMessageLog', '__glewGetObjectPtrLabel', '__glewPopDebugGroup', '__glewPushDebugGroup', '__glewClientWaitSync', 
+					'__glewDeleteSync', '__glewFenceSync', '__glewGetSynciv', '__glewIsSync', '__glewWaitSync', '__glewObjectPtrLabel', '__glewTextureStorage3D', '__glewTextureSubImage3D', 'glDrawArrays']
 
 #allow calls you want to provide and not be auto generated
 allow_calls_provided = ['ALLOW_CALL(open_gl_mock, glewInit()).RETURN(GLEW_OK);',
@@ -93,7 +94,7 @@ gl_types = ['GLuint64EXT', 'GLint64EXT', 'GLintptr', 'GLsizeiptr', 'GLint64', 'G
             'GLhandleARB', 'GLcharARB', 'GLintptrARB', 'GLsizeiptrARB',
             'GLvdpauSurfaceNV', 'GLeglClientBufferEXT',
             'GLDEBUGPROCAMD', 'GLDEBUGPROCARB', 'GLDEBUGPROC', 'GLLOGPROCREGAL',
-            'cl_context', 'cl_event']
+			'cl_context', 'cl_event']
 
 
 functions = []