Bug 1170855 - Part 5: Correctly load glGetInteger64v. r=jgilbert
☠☠ backed out by 862dd46b819f ☠ ☠
authorDan Glastonbury <dglastonbury@mozilla.com>
Fri, 05 Jun 2015 17:13:41 +1000
changeset 248212 835570bc63bf6f0c4a0488746a5cb699d05edb45
parent 248211 4ee1883ffc6506ac415757c496b9b9a04d9e5d32
child 248213 cca48a1bc6efe924c549ff18dc91a0a7a887c7ef
push id28893
push userkwierso@gmail.com
push dateFri, 12 Jun 2015 00:02:58 +0000
treeherderautoland@8cf9d3e497f9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjgilbert
bugs1170855
milestone41.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1170855 - Part 5: Correctly load glGetInteger64v. r=jgilbert Correctly detect support for ARB_sync via GLFeature.
gfx/gl/GLContext.cpp
gfx/gl/GLContext.h
gfx/gl/GLContextFeatures.cpp
--- a/gfx/gl/GLContext.cpp
+++ b/gfx/gl/GLContext.cpp
@@ -789,30 +789,30 @@ GLContext::InitWithPrefix(const char *pr
             if (!LoadSymbols(useCore ? coreSymbols : extSymbols, trygl, prefix)) {
                 NS_ERROR("GL supports framebuffer_multisample without supplying glRenderbufferStorageMultisample");
 
                 MarkUnsupported(GLFeature::framebuffer_multisample);
                 ClearSymbols(coreSymbols);
             }
         }
 
-        if (IsExtensionSupported(ARB_sync)) {
+        if (IsSupported(GLFeature::sync)) {
             SymLoadStruct syncSymbols[] = {
                 { (PRFuncPtr*) &mSymbols.fFenceSync,      { "FenceSync",      nullptr } },
                 { (PRFuncPtr*) &mSymbols.fIsSync,         { "IsSync",         nullptr } },
                 { (PRFuncPtr*) &mSymbols.fDeleteSync,     { "DeleteSync",     nullptr } },
                 { (PRFuncPtr*) &mSymbols.fClientWaitSync, { "ClientWaitSync", nullptr } },
                 { (PRFuncPtr*) &mSymbols.fWaitSync,       { "WaitSync",       nullptr } },
                 { (PRFuncPtr*) &mSymbols.fGetInteger64v,  { "GetInteger64v",  nullptr } },
                 { (PRFuncPtr*) &mSymbols.fGetSynciv,      { "GetSynciv",      nullptr } },
                 END_SYMBOLS
             };
 
             if (!LoadSymbols(&syncSymbols[0], trygl, prefix)) {
-                NS_ERROR("GL supports ARB_sync without supplying its functions.");
+                NS_ERROR("GL supports sync without supplying its functions.");
 
                 MarkExtensionUnsupported(ARB_sync);
                 ClearSymbols(syncSymbols);
             }
         }
 
         if (IsExtensionSupported(OES_EGL_image)) {
             SymLoadStruct extSymbols[] = {
--- a/gfx/gl/GLContext.h
+++ b/gfx/gl/GLContext.h
@@ -117,16 +117,17 @@ enum class GLFeature {
     read_buffer,
     renderbuffer_color_float,
     renderbuffer_color_half_float,
     robustness,
     sRGB_framebuffer,
     sRGB_texture,
     sampler_objects,
     standard_derivatives,
+    sync,
     texture_3D,
     texture_3D_compressed,
     texture_3D_copy,
     texture_float,
     texture_float_linear,
     texture_half_float,
     texture_half_float_linear,
     texture_non_power_of_two,
--- a/gfx/gl/GLContextFeatures.cpp
+++ b/gfx/gl/GLContextFeatures.cpp
@@ -525,16 +525,25 @@ static const FeatureInfo sFeatureInfoArr
         GLESVersion::ES3,
         GLContext::Extension_None,
         {
             GLContext::OES_standard_derivatives,
             GLContext::Extensions_End
         }
     },
     {
+        "sync",
+        GLVersion::GL3_2,
+        GLESVersion::ES3,
+        GLContext::ARB_sync,
+        {
+            GLContext::Extensions_End
+        }
+    },
+    {
         "texture_3D",
         GLVersion::GL1_2,
         GLESVersion::ES3,
         GLContext::Extension_None,
         {
             GLContext::EXT_texture3D,
             GLContext::OES_texture_3D,
             GLContext::Extensions_End