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

Changeset 290135 in webkit


Ignore:
Timestamp:
Feb 18, 2022, 10:10:31 AM (5 years ago)
Author:
Alan Coon
Message:

Cherry-pick r290087. rdar://problem/88713302

Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
​https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>

Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.

Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::syncState): (rx::VertexArrayMtl::setupDraw): (rx::VertexArrayMtl::syncDirtyAttrib):

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

Location:
branches/safari-613.1.17.1-branch
Files:
2 added
4 edited

Legend:

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

    r290070 r290135  
    1 2022-02-17  Russell Epstein  <repstein@apple.com>
    2 
    3         Cherry-pick r289693. rdar://problem/88264857
    4 
    5     Suppress style invalidation when matching :checked
    6     https://bugs.webkit.org/show_bug.cgi?id=235910
    7    
    8     Patch by Rob Buis <rbuis@igalia.com> on 2022-02-12
    9     Reviewed by Antti Koivisto.
    10    
    11     Source/WebCore:
    12    
    13     Suppress style invalidation when matching :checked for option elements.
    14    
    15     Test: fast/selectors/has-select-option-crash.html
    16    
    17     * css/SelectorCheckerTestFunctions.h:
    18     (WebCore::isChecked):
    19     * html/HTMLOptionElement.cpp:
    20     (WebCore::HTMLOptionElement::selected const):
    21     (WebCore::HTMLOptionElement::setSelectedState):
    22     * html/HTMLOptionElement.h:
    23     * html/HTMLSelectElement.cpp:
    24     (WebCore::HTMLSelectElement::updateListItemSelectedStates):
    25     (WebCore::HTMLSelectElement::recalcListItems const):
    26     * html/HTMLSelectElement.h:
    27    
     12022-02-18  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r290087. rdar://problem/88713302
     4
     5    Source/ThirdParty/ANGLE:
     6    Metal ANGLE: vertex array does not correctly observe contents of data buffers
     7    https://bugs.webkit.org/show_bug.cgi?id=236733
     8    <rdar://problem/88713302>
     9    <rdar://problem/88499073>
     10   
     11    Patch by Kyle Piddington <kpiddington@apple.com> on 2022-02-17
     12    Reviewed by Dean Jackson.
     13   
     14    Similar to previous bug (236427), we were not correctly observing changes to the
     15    vertex buffer data. This caused us to miss rebinding vertex buffers
     16    when data was updated without causing conversion
     17   
     18    * src/libANGLE/renderer/metal/VertexArrayMtl.h:
     19    * src/libANGLE/renderer/metal/VertexArrayMtl.mm:
     20    (rx::VertexArrayMtl::syncState):
     21    (rx::VertexArrayMtl::setupDraw):
     22    (rx::VertexArrayMtl::syncDirtyAttrib):
     23   
     24    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     25
     26    2022-02-17  Russell Epstein  <repstein@apple.com>
     27
     28            Cherry-pick r289693. rdar://problem/88264857
     29
     30        Suppress style invalidation when matching :checked
     31        https://bugs.webkit.org/show_bug.cgi?id=235910
     32
     33        Patch by Rob Buis <rbuis@igalia.com> on 2022-02-12
     34        Reviewed by Antti Koivisto.
     35
     36        Source/WebCore:
     37
     38        Suppress style invalidation when matching :checked for option elements.
     39
     40        Test: fast/selectors/has-select-option-crash.html
     41
     42        * css/SelectorCheckerTestFunctions.h:
     43        (WebCore::isChecked):
     44        * html/HTMLOptionElement.cpp:
     45        (WebCore::HTMLOptionElement::selected const):
     46        (WebCore::HTMLOptionElement::setSelectedState):
     47        * html/HTMLOptionElement.h:
     48        * html/HTMLSelectElement.cpp:
     49        (WebCore::HTMLSelectElement::updateListItemSelectedStates):
     50        (WebCore::HTMLSelectElement::recalcListItems const):
     51        * html/HTMLSelectElement.h:
     52
     532022-02-17  Kyle Piddington  <kpiddington@apple.com>
     54
     55        Metal ANGLE: vertex array does not correctly observe contents of data buffers
     56        https://bugs.webkit.org/show_bug.cgi?id=236733
     57        <rdar://problem/88713302>
     58        <rdar://problem/88499073>
     59
     60        Reviewed by Dean Jackson.
     61
     62        Similar to previous bug (236427), we were not correctly observing changes to the
     63        vertex buffer data. This caused us to miss rebinding vertex buffers
     64        when data was updated without causing conversion
     65
     66        * fast/canvas/webgl/buffer-data-subdata-dynamic-buffer.html: Added.
     67        * fast/canvas/webgl/buffer-data-subdata-dynamic-buffer-expected.txt: Added.
     68
    2869    LayoutTests:
    2970   
  • branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE/ChangeLog

    r290061 r290135  
     12022-02-18  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r290087. rdar://problem/88713302
     4
     5    Source/ThirdParty/ANGLE:
     6    Metal ANGLE: vertex array does not correctly observe contents of data buffers
     7    https://bugs.webkit.org/show_bug.cgi?id=236733
     8    <rdar://problem/88713302>
     9    <rdar://problem/88499073>
     10   
     11    Patch by Kyle Piddington <kpiddington@apple.com> on 2022-02-17
     12    Reviewed by Dean Jackson.
     13   
     14    Similar to previous bug (236427), we were not correctly observing changes to the
     15    vertex buffer data. This caused us to miss rebinding vertex buffers
     16    when data was updated without causing conversion
     17   
     18    * src/libANGLE/renderer/metal/VertexArrayMtl.h:
     19    * src/libANGLE/renderer/metal/VertexArrayMtl.mm:
     20    (rx::VertexArrayMtl::syncState):
     21    (rx::VertexArrayMtl::setupDraw):
     22    (rx::VertexArrayMtl::syncDirtyAttrib):
     23   
     24    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     25
     26    2022-02-17  Kyle Piddington  <kpiddington@apple.com>
     27
     28            Metal ANGLE: vertex array does not correctly observe contents of data buffers
     29            https://bugs.webkit.org/show_bug.cgi?id=236733
     30            <rdar://problem/88713302>
     31            <rdar://problem/88499073>
     32
     33            Reviewed by Dean Jackson.
     34
     35            Similar to previous bug (236427), we were not correctly observing changes to the
     36            vertex buffer data. This caused us to miss rebinding vertex buffers
     37            when data was updated without causing conversion
     38
     39            * src/libANGLE/renderer/metal/VertexArrayMtl.h:
     40            * src/libANGLE/renderer/metal/VertexArrayMtl.mm:
     41            (rx::VertexArrayMtl::syncState):
     42            (rx::VertexArrayMtl::setupDraw):
     43            (rx::VertexArrayMtl::syncDirtyAttrib):
     44
    1452022-02-17  Russell Epstein  <repstein@apple.com>
    246
  • branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.h

    r289657 r290135  
    152152
    153153    std::vector<uint32_t> mEmulatedInstanceAttribs;
    154     bool mElementArrayDirty = true;
     154
    155155    bool mVertexArrayDirty = true;
     156    bool mVertexDataDirty = true;
    156157};
    157158}  // namespace rx
  • branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm

    r289657 r290135  
    274274            case gl::VertexArray::DIRTY_BIT_ELEMENT_ARRAY_BUFFER_DATA:
    275275            {
    276                 mElementArrayDirty = true;
     276                mVertexDataDirty = true;
    277277                break;
    278278            }
    … …  
    302302        ANGLE_TRY(syncDirtyAttrib(context, attribs[INDEX], bindings[attribs[INDEX].bindingIndex], \
    303303                                  INDEX));                                                        \
    304         mVertexArrayDirty = true;                                                                 \
     304        mVertexDataDirty = true;                                                                 \
    305305        break;
    306306
    … …  
    481481    }
    482482
    483     if(dirty || mElementArrayDirty)
    484     {
    485         mElementArrayDirty = false;
     483    if(dirty || mVertexDataDirty)
     484    {
     485        mVertexDataDirty = false;
    486486        const gl::ProgramExecutable *executable = glContext->getState().getProgramExecutable();
    487487        const gl::AttributesMask &programActiveAttribsMask =
    … …  
    653653        {
    654654            BufferMtl *bufferMtl = mtl::GetImpl(bufferGL);
     655            mContentsObservers->enableForBuffer(bufferGL, static_cast<uint32_t>(attribIndex));
    655656            bool needConversion =
    656657                format.actualFormatId != format.intendedFormatId ||
    … …  
    662663            if (needConversion)
    663664            {
    664                 mContentsObservers->enableForBuffer(bufferGL, static_cast<uint32_t>(attribIndex));
    665665                ANGLE_TRY(convertVertexBuffer(glContext, bufferMtl, binding, attribIndex, format));
    666666            }
    667667            else
    668668            {
    669                 mContentsObservers->disableForBuffer(bufferGL, static_cast<uint32_t>(attribIndex));
    670669                mCurrentArrayBuffers[attribIndex]       = bufferMtl;
    671670                mCurrentArrayBufferOffsets[attribIndex] = binding.getOffset();
Note: See TracChangeset for help on using the changeset viewer.