Comments (11)
Okay so the sad news is that EXT_float_blend
is not supported, which is why regl-scatterplot does not render on Safari iOS.
As a sanity, I've also tested https://observablehq.com/@rreusser/selecting-the-right-opacity-for-2d-point-clouds which relies on EXT_float_blend
too. That pages also does not load in Safari iOS unfortunately.
I don't think there's anything I can do actively to fix this issue as the float blending extension is needed to support a feature. Hopefully Apple will bring back EXT_float_blend
support on iOS...
Meanwhile, I've opened a ticket with MDN to indicate that Safari on iOS does not support this extension starting with iOS version 16: mdn/browser-compat-data#18061
from regl-scatterplot.
Mhhh this is odd. I am not sure from the top of my head why the interactions don't work but it sounds like the issue is related to the Safari on iOS. It might be that Safari on iOS does not support or disables certain WebGL extensions required to render the scatter plot.
To be frank, when I created the library I wasn't really considering mobile devices much as I was focusing on large-scale data exploration. Anyway, thanks for bringing this up. I'll have to test this myself a little bit.
from regl-scatterplot.
I checked the demo site - it's not rendering on iOS and crashes upon several reloads.
Personally I feel this might relate to iOS's compatibility with WebGL 2.0. iPhone supports WebGL 2.0 starting iOS 15 but it looks like the problem still exists. These discussions might help:
"Webgl canvas is causing massive memory leaks on iOS 14 which may be the reason for the silent crashes and reloads." -> https://developer.apple.com/forums/thread/662251
regl-project/regl#378
from regl-scatterplot.
regl-scatterplot does not use WebGL 2. It's using WebGL 1. That's why I believe it might be related to the webgl extensions. The library uses the following four GL extensions:
- OES_texture_float
- OES_element_index_uint
- WEBGL_color_buffer_float
- EXT_float_blend
I've been out all week and haven't had a chance to do any testing but https://webglreport.com/ could help us. When I open the website, it turns out that EXT_float_blend
is not a supported extension. That might be the reason why regl-scatterplot is not rendering in Safari on iOS
from regl-scatterplot.
On macOS, Safari does list EXT_float_blend as a supported extension.
Also weird, according to https://developer.mozilla.org/en-US/docs/Web/API/EXT_float_blend#browser_compatibility the extension is supported by iOS so maybe webgl-report is just not working correctly and that the error is caused by something else. I'll have to do some remote debugging so find out what errors are thrown
from regl-scatterplot.
So I've done a bit testing about your demo site, the 2d point clouds for sanity and my own implementation.
Here's my result:
What intrigued me is that:
- Correct me if I'm wrong, but I assume Chrome on iOS would work but I've got no luck, and
- My implementation somehow renders on MacOS Safari with the other two not working 🤯
from regl-scatterplot.
Correct me if I'm wrong, but I assume Chrome on iOS would work but I've got no luck, and
No. As far as I know, on iOS you really only have one browser rendering engine, which is WebKit. Chrome on iOS is really only a different UI on top of the same rendering engine that's powering Safari. So I am not surprised that it's not working on iOS Chrome.
My implementation somehow renders on MacOS Safari with the other two not working 🤯
This seems to be a different issue and unrelated to Safari iOS. regl-scatterplot works fine for me in Safari (v16) on macOS (v12.6). Could you open a new issue and provides some background information like the versions of Safari and macOS, and which demo you have tested? Also, have you checked the web console for any error messages?
from regl-scatterplot.
FYI, MDN confirmed my suspicion that Safari iOS is not supporting EXT_float_blend
anymore and merged my PR. Hence, there is not much one can do at the moment. The only option I see at this point is to remove the usage of EXT_float_blend
on Safari iOS. However, I am not sure when I find time to get to it. In the meantime, I might add a visual indicator so users know when regl-scatterplot is expected to not work.
from regl-scatterplot.
No. As far as I know, on iOS you really only have one browser rendering engine, which is WebKit. Chrome on iOS is really only a different UI on top of the same rendering engine that's powering Safari. So I am not surprised that it's not working on iOS Chrome.
Makes sense!
This seems to be a different issue and unrelated to Safari iOS. regl-scatterplot works fine for me in Safari (v16) on macOS (v12.6). Could you open a new issue and provides some background information like the versions of Safari and macOS, and which demo you have tested? Also, have you checked the web console for any error messages?
I've opened a new issue here.
from regl-scatterplot.
I am closing this issue for now as MDN confirmed that Safari on iOS simple does not support the required WebGL extension anymore. This is unfortunate but there isn't really anything I can do.
To indicate whether all WebGL extensions are supported or not I've added a prop called isSupported
in v1.3.2. Using that prop the demos will display an error message accordingly. E.g., see the screenshot below
from regl-scatterplot.
Sounds great. Thanks for adding the prop @flekschas !!
from regl-scatterplot.
Related Issues (20)
- feat: Ability to pass `scaleBounds` to camera HOT 2
- Immediate redraw HOT 4
- Feature request: sort values HOT 2
- Center points and zoom to fit the viewport HOT 3
- Displaying colors instead of dots after hiding and showing points multiple times. HOT 6
- Control visibility of chart points when draw them HOT 8
- lassoInitiator not works HOT 8
- Constant point size when zooming HOT 7
- Troubles with Connecting Points HOT 4
- One to Many Connections HOT 3
- Support for updating point metadata without recreating coordinate index HOT 3
- Point circles look malformed HOT 1
- Can the canvas be re-used to draw other objects ? HOT 2
- spatialIndex is not a gettable Property HOT 1
- Adding ctrl and cmd in the keymap with same action (merge) HOT 1
- (regl) context lost HOT 5
- Lasso function
- Need atleast 2 annotations for drawAnnotations to work HOT 4
- Left clicking multiple times leads to unresponsive plot HOT 2
- KDBush worker fails due to missing KDBush HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from regl-scatterplot.