diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index f908990a..5831180e 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -221,6 +221,7 @@ namespace bgfx ARB_half_float_pixel, ARB_half_float_vertex, ARB_instanced_arrays, + ARB_map_buffer_range, ARB_multisample, ARB_sampler_objects, ARB_seamless_cube_map, @@ -228,8 +229,10 @@ namespace bgfx ARB_texture_compression_rgtc, ARB_texture_float, ARB_texture_multisample, + ARB_texture_storage, ARB_texture_swizzle, ARB_timer_query, + ARB_uniform_buffer_object, ARB_vertex_array_object, ARB_vertex_type_2_10_10_10_rev, @@ -244,6 +247,8 @@ namespace bgfx EXT_blend_color, EXT_blend_minmax, EXT_blend_subtract, + EXT_debug_label, + EXT_debug_marker, EXT_frag_depth, EXT_framebuffer_blit, EXT_framebuffer_object, @@ -322,11 +327,12 @@ namespace bgfx { "GL_ARB_depth_clamp", BGFX_CONFIG_RENDERER_OPENGL >= 32, true }, { "GL_ARB_ES3_compatibility", BGFX_CONFIG_RENDERER_OPENGL >= 43, true }, { "GL_ARB_framebuffer_object", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, - { "GL_ARB_framebuffer_sRGB", false, true }, + { "GL_ARB_framebuffer_sRGB", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_ARB_get_program_binary", BGFX_CONFIG_RENDERER_OPENGL >= 41, true }, { "GL_ARB_half_float_pixel", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_ARB_half_float_vertex", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_ARB_instanced_arrays", BGFX_CONFIG_RENDERER_OPENGL >= 33, true }, + { "GL_ARB_map_buffer_range", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_ARB_multisample", false, true }, { "GL_ARB_sampler_objects", BGFX_CONFIG_RENDERER_OPENGL >= 33, true }, { "GL_ARB_seamless_cube_map", BGFX_CONFIG_RENDERER_OPENGL >= 32, true }, @@ -334,8 +340,10 @@ namespace bgfx { "GL_ARB_texture_compression_rgtc", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_ARB_texture_float", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_ARB_texture_multisample", BGFX_CONFIG_RENDERER_OPENGL >= 32, true }, + { "GL_ARB_texture_storage", BGFX_CONFIG_RENDERER_OPENGL >= 42, true }, { "GL_ARB_texture_swizzle", BGFX_CONFIG_RENDERER_OPENGL >= 33, true }, { "GL_ARB_timer_query", BGFX_CONFIG_RENDERER_OPENGL >= 33, true }, + { "GL_ARB_uniform_buffer_object", BGFX_CONFIG_RENDERER_OPENGL >= 31, true }, { "GL_ARB_vertex_array_object", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_ARB_vertex_type_2_10_10_10_rev", false, true }, @@ -350,6 +358,8 @@ namespace bgfx { "GL_EXT_blend_color", BGFX_CONFIG_RENDERER_OPENGL >= 31, true }, { "GL_EXT_blend_minmax", BGFX_CONFIG_RENDERER_OPENGL >= 14, true }, { "GL_EXT_blend_subtract", BGFX_CONFIG_RENDERER_OPENGL >= 14, true }, + { "GL_EXT_debug_label", false, true }, + { "GL_EXT_debug_marker", false, true }, { "GL_EXT_frag_depth", false, true }, // GLES2 extension. { "GL_EXT_framebuffer_blit", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, { "GL_EXT_framebuffer_object", BGFX_CONFIG_RENDERER_OPENGL >= 30, true }, @@ -2124,13 +2134,25 @@ namespace bgfx { BX_TRACE("\n####\n%s\n####", code); + GLsizei len; char log[1024]; - GL_CHECK(glGetShaderInfoLog(m_id, sizeof(log), NULL, log) ); + GL_CHECK(glGetShaderInfoLog(m_id, sizeof(log), &len, log) ); BX_TRACE("Failed to compile shader. %d: %s", compiled, log); GL_CHECK(glDeleteShader(m_id) ); BGFX_FATAL(false, bgfx::Fatal::InvalidShader, "Failed to compile shader."); } + else if (BX_ENABLED(BGFX_CONFIG_DEBUG) + && s_extension[Extension::ANGLE_translated_shader_source].m_supported) + { + GLsizei len; + GL_CHECK(glGetShaderiv(m_id, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE, &len) ); + + char* source = (char*)alloca(len); + GL_CHECK(glGetTranslatedShaderSourceANGLE(m_id, len, &len, source) ); + + BX_TRACE("ANGLE source (len: %d):\n%s\n####", len, source); + } } }