⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 284832 in webkit


Ignore:
Timestamp:
Oct 25, 2021, 2:51:03 PM (5 years ago)
Author:
Alan Coon
Message:

Cherry-pick r283979. rdar://problem/84630712

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>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-12
Reviewed by Dean Jackson.

Source/WebCore:

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):

LayoutTests:

Add a pixel test to verify that scissor is not applied when blitting drawing buffer
to display buffer in preserveDrawingBuffer: true case.

  • webgl/gl-clear-preserve-drawing-buffer-bug-expected.html: Added.
  • webgl/gl-clear-preserve-drawing-buffer-bug.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283979 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
branches/safari-612-branch
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-612-branch/LayoutTests/ChangeLog

    r284826 r284832  
     12021-10-25  Null  <null@apple.com>
     2
     3        Cherry-pick r283979. rdar://problem/84630712
     4
     5    WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions
     6    https://bugs.webkit.org/show_bug.cgi?id=230618
     7    <rdar://problem/83668270>
     8   
     9    Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-12
     10    Reviewed by Dean Jackson.
     11   
     12    Source/WebCore:
     13   
     14    Disable scissor for the duration of the blit from drawing buffer
     15    to display buffer.
     16    Not testable via WebGL conformance test suite as it affects the compositing.
     17   
     18    Test: webgl/gl-clear-preserve-drawing-buffer-bug.html
     19   
     20    * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
     21    (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl):
     22   
     23    LayoutTests:
     24   
     25    Add a pixel test to verify that scissor is not applied when blitting drawing buffer
     26    to display buffer in preserveDrawingBuffer: true case.
     27   
     28    * webgl/gl-clear-preserve-drawing-buffer-bug-expected.html: Added.
     29    * webgl/gl-clear-preserve-drawing-buffer-bug.html: Added.
     30   
     31    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     32
     33    2021-10-12  Kimmo Kinnunen  <kkinnunen@apple.com>
     34
     35            WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions
     36            https://bugs.webkit.org/show_bug.cgi?id=230618
     37            <rdar://problem/83668270>
     38
     39            Reviewed by Dean Jackson.
     40
     41            Add a pixel test to verify that scissor is not applied when blitting drawing buffer
     42            to display buffer in preserveDrawingBuffer: true case.
     43
     44            * webgl/gl-clear-preserve-drawing-buffer-bug-expected.html: Added.
     45            * webgl/gl-clear-preserve-drawing-buffer-bug.html: Added.
     46
    1472021-10-25  Null  <null@apple.com>
    248
  • branches/safari-612-branch/Source/WebCore/ChangeLog

    r284829 r284832  
     12021-10-25  Null  <null@apple.com>
     2
     3        Cherry-pick r283979. rdar://problem/84630712
     4
     5    WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions
     6    https://bugs.webkit.org/show_bug.cgi?id=230618
     7    <rdar://problem/83668270>
     8   
     9    Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-12
     10    Reviewed by Dean Jackson.
     11   
     12    Source/WebCore:
     13   
     14    Disable scissor for the duration of the blit from drawing buffer
     15    to display buffer.
     16    Not testable via WebGL conformance test suite as it affects the compositing.
     17   
     18    Test: webgl/gl-clear-preserve-drawing-buffer-bug.html
     19   
     20    * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
     21    (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl):
     22   
     23    LayoutTests:
     24   
     25    Add a pixel test to verify that scissor is not applied when blitting drawing buffer
     26    to display buffer in preserveDrawingBuffer: true case.
     27   
     28    * webgl/gl-clear-preserve-drawing-buffer-bug-expected.html: Added.
     29    * webgl/gl-clear-preserve-drawing-buffer-bug.html: Added.
     30   
     31    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283979 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     32
     33    2021-10-12  Kimmo Kinnunen  <kkinnunen@apple.com>
     34
     35            WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions
     36            https://bugs.webkit.org/show_bug.cgi?id=230618
     37            <rdar://problem/83668270>
     38
     39            Reviewed by Dean Jackson.
     40
     41            Disable scissor for the duration of the blit from drawing buffer
     42            to display buffer.
     43            Not testable via WebGL conformance test suite as it affects the compositing.
     44
     45            Test: webgl/gl-clear-preserve-drawing-buffer-bug.html
     46
     47            * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
     48            (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl):
     49
    1502021-10-25  Null  <null@apple.com>
    251
  • branches/safari-612-branch/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp

    r282929 r284832  
    487487    if (m_preserveDrawingBufferTexture) {
    488488        // Blit m_preserveDrawingBufferTexture into m_texture.
     489        TemporaryANGLESetting scopedScissor(GL_SCISSOR_TEST, GL_FALSE);
     490        TemporaryANGLESetting scopedDither(GL_DITHER, GL_FALSE);
    489491        gl::BindFramebuffer(GL_DRAW_FRAMEBUFFER_ANGLE, m_preserveDrawingBufferFBO);
    490492        gl::BindFramebuffer(GL_READ_FRAMEBUFFER_ANGLE, m_fbo);
Note: See TracChangeset for help on using the changeset viewer.