DescriptionRevert of WebGL: Refactor active context management. (https://codereview.chromium.org/251373005/)
Reason for revert:
This is likely to be the cause of crashes observed in
http://build.chromium.org/p/chromium.gpu/builders/Mac%20Debug%20%28Intel%29/builds/34596
Original issue's description:
> WebGL: Refactor active context management.
>
> This CL makes WebGL lost&retore code more succinct.
>
> 1. Deactive a context in loseContextImpl(), instead of dispatchContextLostEvent().
> Because of
> a) Prevent inconsistent state. Currently, activeContext() vector can store a lost
> context due to this, so oldestContextIndex() needs to check if active context is
> lost. Now we don't need redundant lostContext check. In addition, it does not
> make sense that active context list can store a lost context.
> b) In the same sense, only maybeRestoreContext() actives a context like loseContextImpl()
> in this CL.
>
> 2. Don't call activeContexts().remove() adhoc.
> Only deactiveContext() calls activeContexts().remove() like only activeContext()
> calls activeContexts().append().
>
> 3. Change the logic of dispatchContextLostEvent().
> Currently, when m_contextLostMode != RealLostContext, a context is added to
> forcibly evicted list, in which the context will be restored when another
> context is destructed. However, we start the restore-timer when
> the context is lost due to AutoRecoverSyntheticLostContext also. It means
> AutoRecoverSyntheticLostContext can restore twice. So this CL changes a context
> to be added into forcibly evicted list only if SyntheticLostContext.
>
> BUG=392274
>
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=177833
Patch Set 1 #
Created: 6 years, 5 months ago
(Patch set is too large to download)
Messages
Total messages: 5 (0 generated)
|