Skip to content
Permalink
Browse files
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:

Canonical link: https://commits.webkit.org/194687@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
grorg committed Oct 18, 2017
1 parent 7dfdd84 commit eeeae07a736f6942804d5994d0c320330dca3ad5
Showing with 43 additions and 1 deletion.
  1. +12 −0 LayoutTests/ChangeLog
  2. +0 −1 LayoutTests/TestExpectations
  3. +17 −0 Source/WebCore/ChangeLog
  4. +14 −0 Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp
@@ -1,3 +1,15 @@
2017-10-18 Dean Jackson <dino@apple.com>

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 <dabates@apple.com>

Add test to ensure that text-overflow: ellipsis text is scrollable
@@ -1509,4 +1509,3 @@ imported/w3c/web-platform-tests/css/css-pseudo-4/first-letter-003.html [ ImageOn
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 ]
@@ -1,3 +1,20 @@
2017-10-18 Dean Jackson <dino@apple.com>

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 <cdumez@apple.com>

[Service Worker] Add stubs for Client / WindowClient / Clients
@@ -333,6 +333,20 @@ void GraphicsContext3D::getIntegerv(GC3Denum pname, GC3Dint* value)
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);
}

0 comments on commit eeeae07

Please sign in to comment.