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

Changeset 284835 in webkit


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

Cherry-pick r284125. rdar://problem/84630015

Upstream ANGLE: PrimitiveRestart tests fail due to incorrect draw commands
https://bugs.webkit.org/show_bug.cgi?id=231626
<rdar:/problem/84167241>

Primitive restart draw commands were being encoded
incorrectly. Single element ranges were being disregarded,
and a maximum draw size was not being enforced when the
index buffer was aliased / reused.

Cherry-pick from upstream anglebug.com/6535

Reviewed by Kenneth Russell.

  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::getDrawIndices):

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

Location:
branches/safari-612-branch/Source/ThirdParty/ANGLE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-612-branch/Source/ThirdParty/ANGLE/ChangeLog

    r284826 r284835  
     12021-10-25  Null  <null@apple.com>
     2
     3        Cherry-pick r284125. rdar://problem/84630015
     4
     5    Upstream ANGLE: PrimitiveRestart tests fail due to incorrect draw commands
     6    https://bugs.webkit.org/show_bug.cgi?id=231626
     7    <rdar:/problem/84167241>
     8   
     9    Primitive restart draw commands were being encoded
     10    incorrectly. Single element ranges were being disregarded,
     11    and a maximum draw size was not being enforced when the
     12    index buffer was aliased / reused.
     13   
     14    Cherry-pick from upstream anglebug.com/6535
     15   
     16    Reviewed by Kenneth Russell.
     17   
     18    * src/libANGLE/renderer/metal/VertexArrayMtl.mm:
     19    (rx::VertexArrayMtl::getDrawIndices):
     20   
     21   
     22    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     23
     24    2021-10-13  Kyle Piddington  <kpiddington@apple.com>
     25
     26            Upstream ANGLE: PrimitiveRestart tests fail due to incorrect draw commands
     27            https://bugs.webkit.org/show_bug.cgi?id=231626
     28            <rdar:/problem/84167241>
     29
     30            Primitive restart draw commands were being encoded
     31            incorrectly. Single element ranges were being disregarded,
     32            and a maximum draw size was not being enforced when the
     33            index buffer was aliased / reused.
     34
     35            Cherry-pick from upstream anglebug.com/6535
     36
     37            Reviewed by Kenneth Russell.
     38
     39            * src/libANGLE/renderer/metal/VertexArrayMtl.mm:
     40            (rx::VertexArrayMtl::getDrawIndices):
     41
    1422021-10-25  Null  <null@apple.com>
    243
  • branches/safari-612-branch/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm

    r279372 r284835  
    788788        if (range.restartBegin > currentIndexOffset)
    789789        {
    790             int64_t nIndicesInSlice = ((int64_t)range.restartBegin - currentIndexOffset) - ((int64_t) range.restartBegin - currentIndexOffset) % nIndicesPerPrimitive;
     790            int64_t nIndicesInSlice = MIN(((int64_t)range.restartBegin - currentIndexOffset) -
     791                                          ((int64_t)range.restartBegin - currentIndexOffset) % nIndicesPerPrimitive,
     792                                      indicesLeft);
    791793            size_t restartSize = (range.restartEnd - range.restartBegin) + 1;
    792             if (nIndicesInSlice > nIndicesPerPrimitive)
     794            if (nIndicesInSlice >= nIndicesPerPrimitive)
     795            {
    793796                drawCommands.push_back({(uint32_t) nIndicesInSlice, currentIndexOffset * indexTypeBytes});
     797            }
    794798            // Account for dropped indices due to incomplete primitives.
    795799            size_t indicesUsed = ( (range.restartBegin + restartSize) - currentIndexOffset);
Note: See TracChangeset for help on using the changeset viewer.