Title: [223640] trunk
Revision
223640
Author
[email protected]
Date
2017-10-18 16:41:44 -0700 (Wed, 18 Oct 2017)

Log Message

Some older hardware can't actually use renderbuffers at the size they advertise
https://bugs.webkit.org/show_bug.cgi?id=178417
<rdar://problem/35042291>

Reviewed by Tim Horton.

Source/WebCore:

The change in r223567 caused some older hardware to fail, because even though
they claimed to support a maximum renderbuffer and viewport of 16K, they were
unable to actually handle one. Rather than trying to identify such hardware,
clamp all buffers to a maximum of 8192. This is bigger than the previous value
of 4096, and large enough to have a full-screen buffer on a Retina 5K iMac.

* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::getIntegerv):

LayoutTests:

Unskip webgl/1.0.2/conformance/canvas/drawingbuffer-static-canvas-test.html.

* TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (223639 => 223640)


--- trunk/LayoutTests/ChangeLog	2017-10-18 23:14:34 UTC (rev 223639)
+++ trunk/LayoutTests/ChangeLog	2017-10-18 23:41:44 UTC (rev 223640)
@@ -1,3 +1,15 @@
+2017-10-18  Dean Jackson  <[email protected]>
+
+        Some older hardware can't actually use renderbuffers at the size they advertise
+        https://bugs.webkit.org/show_bug.cgi?id=178417
+        <rdar://problem/35042291>
+
+        Reviewed by Tim Horton.
+
+        Unskip webgl/1.0.2/conformance/canvas/drawingbuffer-static-canvas-test.html.
+
+        * TestExpectations:
+
 2017-10-18  Daniel Bates  <[email protected]>
 
         Add test to ensure that text-overflow: ellipsis text is scrollable

Modified: trunk/LayoutTests/TestExpectations (223639 => 223640)


--- trunk/LayoutTests/TestExpectations	2017-10-18 23:14:34 UTC (rev 223639)
+++ trunk/LayoutTests/TestExpectations	2017-10-18 23:41:44 UTC (rev 223640)
@@ -1509,4 +1509,3 @@
 webkit.org/b/177799 accessibility/table-detection.html [ Pass Failure ]
 
 webkit.org/b/177997 webgl/1.0.2/conformance/textures/copy-tex-image-2d-formats.html [ Pass Failure ]
-webkit.org/b/178417 webgl/1.0.2/conformance/canvas/drawingbuffer-static-canvas-test.html [ Pass Failure ]

Modified: trunk/Source/WebCore/ChangeLog (223639 => 223640)


--- trunk/Source/WebCore/ChangeLog	2017-10-18 23:14:34 UTC (rev 223639)
+++ trunk/Source/WebCore/ChangeLog	2017-10-18 23:41:44 UTC (rev 223640)
@@ -1,3 +1,20 @@
+2017-10-18  Dean Jackson  <[email protected]>
+
+        Some older hardware can't actually use renderbuffers at the size they advertise
+        https://bugs.webkit.org/show_bug.cgi?id=178417
+        <rdar://problem/35042291>
+
+        Reviewed by Tim Horton.
+
+        The change in r223567 caused some older hardware to fail, because even though
+        they claimed to support a maximum renderbuffer and viewport of 16K, they were
+        unable to actually handle one. Rather than trying to identify such hardware,
+        clamp all buffers to a maximum of 8192. This is bigger than the previous value
+        of 4096, and large enough to have a full-screen buffer on a Retina 5K iMac.
+
+        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+        (WebCore::GraphicsContext3D::getIntegerv):
+
 2017-10-18  Chris Dumez  <[email protected]>
 
         [Service Worker] Add stubs for Client / WindowClient / Clients

Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp (223639 => 223640)


--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp	2017-10-18 23:14:34 UTC (rev 223639)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp	2017-10-18 23:41:44 UTC (rev 223640)
@@ -333,6 +333,20 @@
         if (getExtensions().requiresRestrictedMaximumTextureSize())
             *value = std::min(1024, *value);
         break;
+#if PLATFORM(MAC)
+    // Some older hardware advertises a larger maximum than they
+    // can actually handle. Rather than detecting such devices, simply
+    // clamp the maximum to 8192, which is big enough for a 5K display.
+    case MAX_RENDERBUFFER_SIZE:
+        ::glGetIntegerv(MAX_RENDERBUFFER_SIZE, value);
+        *value = std::min(8192, *value);
+        break;
+    case MAX_VIEWPORT_DIMS:
+        ::glGetIntegerv(MAX_VIEWPORT_DIMS, value);
+        value[0] = std::min(8192, value[0]);
+        value[1] = std::min(8192, value[1]);
+        break;
+#endif
     default:
         ::glGetIntegerv(pname, value);
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to