[release-caspian] Fix binder.setUniform error symbol in draw loop #9491
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #9468 .
This regression was caused as an unintended sideeffect of d85afad.
The Uniform caching in that change works as expected, except in the symbol layer wherein the
Program
instance is only initialized once for all tiles in the draw loop.Since the tiles need a round trip from the worker when certain paint properties are updated, for a few frames there can be mix of old and new tiles on screen, prior to the optimization the uniform bindings would be re-evaluated every frame, so it would self-heal. But the new implementation requires that the instance of
ProgramConfiguration
passed toProgram#constructor
andProgram#draw
be the same.Launch Checklist
mapbox-gl-js
changelog:<changelog>Fixes a bug in which an exception would get thrown when updating symbol layer paint property using
setPaintProperty</changelog>