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

Changeset 283979 in webkit


Ignore:
Timestamp:
Oct 12, 2021, 5:36:10 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

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.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r283969 r283979  
     12021-10-12  Kimmo Kinnunen  <kkinnunen@apple.com>
     2
     3        WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions
     4        https://bugs.webkit.org/show_bug.cgi?id=230618
     5        <rdar://problem/83668270>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Add a pixel test to verify that scissor is not applied when blitting drawing buffer
     10        to display buffer in preserveDrawingBuffer: true case.
     11
     12        * webgl/gl-clear-preserve-drawing-buffer-bug-expected.html: Added.
     13        * webgl/gl-clear-preserve-drawing-buffer-bug.html: Added.
     14
    1152021-10-11  Arcady Goldmints-Orlov  <agoldmints@igalia.com>
    216
  • trunk/Source/WebCore/ChangeLog

    r283973 r283979  
     12021-10-12  Kimmo Kinnunen  <kkinnunen@apple.com>
     2
     3        WebGL first clear is lost when scissor is used for preserveDrawingBuffer:true in some conditions
     4        https://bugs.webkit.org/show_bug.cgi?id=230618
     5        <rdar://problem/83668270>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Disable scissor for the duration of the blit from drawing buffer
     10        to display buffer.
     11        Not testable via WebGL conformance test suite as it affects the compositing.
     12
     13        Test: webgl/gl-clear-preserve-drawing-buffer-bug.html
     14
     15        * platform/graphics/angle/GraphicsContextGLANGLE.cpp:
     16        (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl):
     17
    1182021-10-12  Tim Nguyen  <ntim@apple.com>
    219
  • trunk/Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp

    r283703 r283979  
    531531    if (m_preserveDrawingBufferTexture) {
    532532        // Blit m_preserveDrawingBufferTexture into m_texture.
     533        TemporaryANGLESetting scopedScissor(GL_SCISSOR_TEST, GL_FALSE);
     534        TemporaryANGLESetting scopedDither(GL_DITHER, GL_FALSE);
    533535        gl::BindFramebuffer(GL_DRAW_FRAMEBUFFER_ANGLE, m_preserveDrawingBufferFBO);
    534536        gl::BindFramebuffer(GL_READ_FRAMEBUFFER_ANGLE, m_fbo);
Note: See TracChangeset for help on using the changeset viewer.