Changeset 261751 in webkit


Ignore:
Timestamp:
May 15, 2020 11:33:21 AM (4 years ago)
Author:
dino@apple.com
Message:

REGRESSION (r259589): Google Maps background layer fades out and back in
https://bugs.webkit.org/show_bug.cgi?id=210992

Patch by James Darpinian <James Darpinian> on 2020-05-14
Reviewed by Dean Jackson.

ANGLE rendering feedback loop detection was incorrect if a texture attached
to a framebuffer was also bound to an active texture unit, and then that texture
unit became inactive because a sampler uniform was set.

  • src/libANGLE/Context.cpp:

(gl::Context::onSamplerUniformChange):

  • src/libANGLE/State.cpp:

(gl::State::setTextureIndexInactive):

  • src/libANGLE/State.h:
Location:
trunk/Source/ThirdParty/ANGLE
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/ThirdParty/ANGLE/ChangeLog

    r261750 r261751  
     12020-05-14  James Darpinian  <jdarpinian@chromium.org>
     2
     3        REGRESSION (r259589): Google Maps background layer fades out and back in
     4        https://bugs.webkit.org/show_bug.cgi?id=210992
     5
     6        Reviewed by Dean Jackson.
     7
     8        ANGLE rendering feedback loop detection was incorrect if a texture attached
     9        to a framebuffer was also bound to an active texture unit, and then that texture
     10        unit became inactive because a sampler uniform was set.
     11
     12        * src/libANGLE/Context.cpp:
     13        (gl::Context::onSamplerUniformChange):
     14        * src/libANGLE/State.cpp:
     15        (gl::State::setTextureIndexInactive):
     16        * src/libANGLE/State.h:
     17
    1182020-05-14  Kenneth Russell  <kbr@chromium.org>
    219
  • trunk/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp

    r261750 r261751  
    64676467    mState.onActiveTextureChange(this, textureUnitIndex);
    64686468    mStateCache.onActiveTextureChange(this);
     6469    if (!mState.getProgram()->getExecutable().getActiveSamplersMask()[textureUnitIndex]) {
     6470        mState.setTextureIndexInactive(textureUnitIndex);
     6471    }
    64696472}
    64706473
  • trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp

    r261750 r261751  
    598598}
    599599
     600void State::setTextureIndexInactive(size_t textureIndex) {
     601    mActiveTexturesCache.reset(textureIndex);
     602}
     603
    600604ANGLE_INLINE void State::updateActiveTextureState(const Context *context,
    601605                                                  size_t textureIndex,
  • trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.h

    r261750 r261751  
    778778                                  const Sampler *sampler,
    779779                                  Texture *texture);
     780    void setTextureIndexInactive(size_t textureIndex);
    780781    Texture *getTextureForActiveSampler(TextureType type, size_t index);
    781782
Note: See TracChangeset for help on using the changeset viewer.