WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-230618-20211001165455.patch (text/plain), 4.69 KB, created by
Kimmo Kinnunen
on 2021-10-01 06:54:56 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Kimmo Kinnunen
Created:
2021-10-01 06:54:56 PDT
Size:
4.69 KB
patch
obsolete
>Subversion Revision: 283303 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index c9aca2d027e0ba5c5c75d12a0dd2a25d66138b9c..2da79eba480fe757a9e931e2ac67123c01949144 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2021-10-01 Kimmo Kinnunen <kkinnunen@apple.com> >+ >+ WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions >+ https://bugs.webkit.org/show_bug.cgi?id=230618 >+ <rdar://problem/83668270> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Disable scissor for the duration of the blit from drawing buffer >+ to display buffer. >+ Not testable via WebGL conformance test suite as it affects the compositing. >+ >+ Test: webgl/gl-clear-preserve-drawing-buffer-bug.html >+ >+ * platform/graphics/angle/GraphicsContextGLANGLE.cpp: >+ (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl): >+ > 2021-09-30 Kimmo Kinnunen <kkinnunen@apple.com> > > ScopedEGLDefaultDisplay should be removed >diff --git a/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp b/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp >index d7a60334b194d3986d3a8f4cd35f808858b84a55..c8f637661a744e76966ea0b83d8b741333c9829a 100644 >--- a/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp >+++ b/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp >@@ -529,6 +529,8 @@ void GraphicsContextGLOpenGL::prepareTextureImpl() > #else > if (m_preserveDrawingBufferTexture) { > // Blit m_preserveDrawingBufferTexture into m_texture. >+ TemporaryANGLESetting scopedScissor(GL_SCISSOR_TEST, GL_FALSE); >+ TemporaryANGLESetting scopedDither(GL_DITHER, GL_FALSE); > gl::BindFramebuffer(GL_DRAW_FRAMEBUFFER_ANGLE, m_preserveDrawingBufferFBO); > gl::BindFramebuffer(GL_READ_FRAMEBUFFER_ANGLE, m_fbo); > gl::BlitFramebufferANGLE(0, 0, m_currentWidth, m_currentHeight, 0, 0, m_currentWidth, m_currentHeight, GL_COLOR_BUFFER_BIT, GL_NEAREST); >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 93adb241649f6b93a83b4684f86ec7e773714c34..06b0556166eed195cff767896f4d397499bc386a 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,16 @@ >+2021-10-01 Kimmo Kinnunen <kkinnunen@apple.com> >+ >+ WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions >+ https://bugs.webkit.org/show_bug.cgi?id=230618 >+ <rdar://problem/83668270> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ done-scissor >+ >+ * webgl/gl-clear-preserve-drawing-buffer-bug-expected.html: Added. >+ * webgl/gl-clear-preserve-drawing-buffer-bug.html: Added. >+ > 2021-09-29 Youenn Fablet <youenn@apple.com> > > Import WPT push api tests >diff --git a/LayoutTests/webgl/gl-clear-preserve-drawing-buffer-bug-expected.html b/LayoutTests/webgl/gl-clear-preserve-drawing-buffer-bug-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b45d4ff5f2ef38871ebe5452c792184747cd17ea >--- /dev/null >+++ b/LayoutTests/webgl/gl-clear-preserve-drawing-buffer-bug-expected.html >@@ -0,0 +1,16 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Test for WebGL preserve drawing buffer being affected by scissor.</title> >+<script src="resources/webgl_test_files/js/webgl-test-utils.js"> </script> >+<style type=text/css> >+body { margin: 0 } >+</style> >+</head> >+<body> >+<div style="position: absolute; top: 50px; height: 50px; left: 125px; width: 50px; background-color: lime"></div> >+<div style="position: absolute; top: 100px; height: 50px; left: 0px; width: 300px; background-color: lime"></div> >+</body> >+</html> >+ >diff --git a/LayoutTests/webgl/gl-clear-preserve-drawing-buffer-bug.html b/LayoutTests/webgl/gl-clear-preserve-drawing-buffer-bug.html >new file mode 100644 >index 0000000000000000000000000000000000000000..348731531dd4755862efedc2d352a803034712b4 >--- /dev/null >+++ b/LayoutTests/webgl/gl-clear-preserve-drawing-buffer-bug.html >@@ -0,0 +1,28 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+<title>Test for WebGL preserve drawing buffer being affected by scissor.</title> >+<script src="resources/webgl_test_files/js/webgl-test-utils.js"> </script> >+<style type=text/css> >+body { margin: 0 } >+</style> >+</head> >+<body> >+<canvas id="c"></canvas> >+<script> >+"use strict"; >+var wtu = WebGLTestUtils; >+var gl = wtu.create3DContext("c", { preserveDrawingBuffer: true, antialias: false }); >+gl.enable(gl.SCISSOR_TEST); >+gl.clearColor(0., 1., 0., 1); >+gl.scissor(0, 0, 300, 50); >+gl.clear(gl.COLOR_BUFFER_BIT); >+gl.scissor(125, 50, 50, 50); >+gl.clear(gl.COLOR_BUFFER_BIT); >+if (window.testRunner) >+ window.testRunner.dumpAsText(true); >+</script> >+</body> >+</html> >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 230618
:
439850
|
439852
|
439969