Fix ImageSource not working in FF/Safari #10230
Merged
+4
−2
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.
Closes #10226. Closes #10230. Turns out that since Safari/FF don't support offscreen canvas, ImageSource uses the old blob url image loading hack, however the image isn't bound to a GL texture immediately because this is deferred to a separate
prepare
step. This leads to image sources trying to upload an image to GL that was already reset.This is a hacky workaround — wait until the next frame before releasing the image, so that
prepare
passes can happen before. But it may be fragile — we should have a hard look at the architecture here and make it more resilient.Launch Checklist
mapbox-gl-js
changelog:<changelog>Fix ImageSource not working in some cases in Firefox & Safari.</changelog>