Title: [261751] trunk/Source/ThirdParty/ANGLE
Revision
261751
Author
[email protected]
Date
2020-05-15 11:33:21 -0700 (Fri, 15 May 2020)

Log 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 <[email protected]> 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:

Modified Paths

Diff

Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (261750 => 261751)


--- trunk/Source/ThirdParty/ANGLE/ChangeLog	2020-05-15 18:33:07 UTC (rev 261750)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog	2020-05-15 18:33:21 UTC (rev 261751)
@@ -1,3 +1,20 @@
+2020-05-14  James Darpinian  <[email protected]>
+
+        REGRESSION (r259589): Google Maps background layer fades out and back in
+        https://bugs.webkit.org/show_bug.cgi?id=210992
+
+        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:
+
 2020-05-14  Kenneth Russell  <[email protected]>
 
         Update ANGLE to 2020-03-27

Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp (261750 => 261751)


--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp	2020-05-15 18:33:07 UTC (rev 261750)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp	2020-05-15 18:33:21 UTC (rev 261751)
@@ -6466,6 +6466,9 @@
 {
     mState.onActiveTextureChange(this, textureUnitIndex);
     mStateCache.onActiveTextureChange(this);
+    if (!mState.getProgram()->getExecutable().getActiveSamplersMask()[textureUnitIndex]) {
+        mState.setTextureIndexInactive(textureUnitIndex);
+    }
 }
 
 void Context::uniform1i(UniformLocation location, GLint x)

Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp (261750 => 261751)


--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp	2020-05-15 18:33:07 UTC (rev 261750)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.cpp	2020-05-15 18:33:21 UTC (rev 261751)
@@ -597,6 +597,10 @@
     }
 }
 
+void State::setTextureIndexInactive(size_t textureIndex) {
+    mActiveTexturesCache.reset(textureIndex);
+}
+
 ANGLE_INLINE void State::updateActiveTextureState(const Context *context,
                                                   size_t textureIndex,
                                                   const Sampler *sampler,

Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.h (261750 => 261751)


--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.h	2020-05-15 18:33:07 UTC (rev 261750)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/State.h	2020-05-15 18:33:21 UTC (rev 261751)
@@ -777,6 +777,7 @@
                                   size_t textureIndex,
                                   const Sampler *sampler,
                                   Texture *texture);
+    void setTextureIndexInactive(size_t textureIndex);
     Texture *getTextureForActiveSampler(TextureType type, size_t index);
 
     bool hasConstantColor(GLenum sourceRGB, GLenum destRGB) const;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to