Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

Graceful degradation when WebGL fails #400

Closed
forman opened this issue Sep 25, 2017 · 5 comments
Closed

Graceful degradation when WebGL fails #400

forman opened this issue Sep 25, 2017 · 5 comments
Assignees
Labels
Milestone

Comments

@forman
Copy link
Member

forman commented Sep 25, 2017

From @JanisGailis on April 28, 2017 12:21

Using cate desktop on a VM that can't use WebGL, Cesium doesn't work and Cate Desktop fails with the following stack trace:

/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/react-dom/lib/ReactDOM.js:73 Download the React DevTools and use an HTTP server (instead of a file: URL) for a better development experience: https://fb.me/react-devtools
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:55.704 UPDATE_INITIAL_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:55.726 SET_WEBAPI_STATUS
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/main.js:46 webAPIConfig: Object
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.001 SET_WEBAPI_STATUS
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.005 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.008 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.013 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.017 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/ExternalObjectComponent.js:156 ExternalObjectComponent: attaching new external object with id = CesiumGlobe-world-1686d77b3-15bb47d3303
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Widgets/CesiumWidget/CesiumWidget.js:635 Error constructing CesiumWidget.
Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL.  Consider trying a different web browser or updating your video drivers.  Detailed error information is below:
RuntimeError: The browser supports WebGL, but initialization failed.
Error
    at new RuntimeError (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Core/RuntimeError.js:43:19)
    at new Context (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Renderer/Context.js:216:23)
    at new Scene (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Scene/Scene.js:218:23)
    at new CesiumWidget (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Widgets/CesiumWidget/CesiumWidget.js:256:25)
    at new Viewer (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Widgets/Viewer/Viewer.js:396:28)
    at CesiumGlobe.newExternalObject (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/cesium/CesiumGlobe.js:70:24)
    at CesiumGlobe.mountNewExternalObject (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/ExternalObjectComponent.js:160:29)
    at CesiumGlobe.remountExternalObject (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/ExternalObjectComponent.js:145:22)
    at onRef (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/ExternalObjectComponent.js:120:18)
    at attachRef (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/react-dom/lib/ReactRef.js:20:5)CesiumWidget.showErrorPanel @ /tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Widgets/CesiumWidget/CesiumWidget.js:635
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Widgets/CesiumWidget/CesiumWidget.js:365 Uncaught RuntimeError: The browser supports WebGL, but initialization failed.
Error
    at new RuntimeError (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Core/RuntimeError.js:43:19)
    at new Context (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Renderer/Context.js:216:23)
    at new Scene (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Scene/Scene.js:218:23)
    at new CesiumWidget (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Widgets/CesiumWidget/CesiumWidget.js:256:25)
    at new Viewer (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/cesium/Source/Widgets/Viewer/Viewer.js:396:28)
    at CesiumGlobe.newExternalObject (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/cesium/CesiumGlobe.js:70:24)
    at CesiumGlobe.mountNewExternalObject (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/ExternalObjectComponent.js:160:29)
    at CesiumGlobe.remountExternalObject (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/ExternalObjectComponent.js:145:22)
    at onRef (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/renderer/components/ExternalObjectComponent.js:120:18)
    at attachRef (/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/react-dom/lib/ReactRef.js:20:5)
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.553 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.556 UPDATE_SESSION_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.559 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.563 UPDATE_DATA_STORES
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.567 UPDATE_CONTROL_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.576 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.588 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/fbjs/lib/warning.js:36 Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>. See OperationsPanel > p > ... > p.printWarning @ /tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/fbjs/lib/warning.js:36
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/fbjs/lib/warning.js:36 Warning: validateDOMNesting(...): <ul> cannot appear as a descendant of <p>. See OperationsPanel > p > ... > ul.printWarning @ /tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/fbjs/lib/warning.js:36
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.599 UPDATE_OPERATIONS
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.984 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:56.994 SET_CURRENT_WORKSPACE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:57.087 UPDATE_CONTROL_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:57.366 UPDATE_TASK_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:57.388 UPDATE_DATA_SOURCES
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:15:57.397 UPDATE_CONTROL_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:17:23.508 UPDATE_CONTROL_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:17:24.559 UPDATE_CONTROL_STATE
/tmp/.mount_pUn9kV/usr/bin/resources/app.asar/node_modules/redux-logger/lib/core.js:98  action @ 14:17:52.346 UPDATE_CONTROL_STATE

It would be nice if it makes an automatic fallback to the map background view, so that Cate Desktop can still be used just without the globa visualization.

Copied from original issue: CCI-Tools/cate-desktop#3

@forman
Copy link
Member Author

forman commented Sep 25, 2017

Seems to be no way to fix this. Cate Desktop (Electron + Cesium) requires WebGL.

@forman forman added the ux label Sep 25, 2017
@forman
Copy link
Member Author

forman commented Sep 25, 2017

Ok, we could check if WebGL isn't available and then disable Cesium.

@forman
Copy link
Member Author

forman commented Sep 25, 2017

From @HerzogStephan on August 8, 2017 6:20

I set up cate + cate-desktop yesterday on our remote server (linux) and encountered the Cesium/WebGL issue. (see screenshot)

20161012_catedesktop_001

After I talked to Marco I used my local machine/'workstation' and it worked just fine. (For now I will stick to that approach.)

For me and my colleagues it is quite common to set up software on servers instead using our local machines. (It was the same with my prior employer.) That is why I would appreciate, if we could have a solution for that in the future or agree that only CLI/API should be used in such a case, but let the users know about it.

@forman forman added the gui label Sep 25, 2017
@forman
Copy link
Member Author

forman commented Sep 25, 2017

We'll add this to the list of known issues.

@forman forman added this to the 1.0 milestone Sep 25, 2017
@forman forman assigned forman and unassigned mzuehlke Oct 5, 2017
@forman
Copy link
Member Author

forman commented Oct 5, 2017

Without WebGL it now looks like so:

image

@forman forman closed this as completed Oct 5, 2017
forman added a commit to CCI-Tools/cate-desktop that referenced this issue Oct 5, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants