I think this is caused by the graphics switching not working correctly. Error in OpenCL context: : OpenCL Error : clCreateCommandQueue failed: Device failed to create queue: -30 Error in OpenCL context: : OpenCL Error : clCreateCommandQueue failed: Device failed to create queue (gld returned: 10015). As you can see from the error logs, all tasks seems to end with: I woke up, it was still running, then I went away from the computer, the GPU started again and then I got a kernel panic and had to restart. Mostly this happens immediately but I had one task run last night: Unfortunately I get only "Error while computing", as you can see here: Last time I tried the discrete GPU was active even while boinc was suspendend, draining battery. Just updated to boinc 7.2.28 and decided to give the GPU another go. about:memory is the best way to tell if WebGL is actually being used.Hi, this might be boinc related, feel free to pass it on. Regarding Google Maps: note that it only uses WebGL if you enabled 'MapsGL'. As the last WebGL context goes away, gfxCardStatus should switch back to 'i'. Wait until GC happens so the WebGL contexts actually go away: you can go to about:memory to check if it still mentions WebGL under 'other measurements', and use the GC/CC buttons to accelerate them going away. Close all tabs that uses WebGL but keep Firefox open. Visit a page that uses WebGL, for instance. If the currently used GPU is the discrete one (icon is then 'd'), try quitting applications until it's switched back to 'i'. Make sure you're in the default auto-switch mode, and that the currently in-use GPU is the integrated one (gfxCardStatus's icon should be 'i'). On older macs, you can only force one GPU or the other. You can verify that by looking at the gfxCardStatus menu: only on supporting Macs does it offer the default/auto-switch option. install gfxCardStatus (Marcia's link) and verify that your mac supports dynamic GPU switching (only recent Macs do). That would be done by delaying the destruction of the dummy context when its refcount hits 0. Then for the actual WebGL context's OpenGL context, do not change anything (keep sharing, keep AllowOfflineRenderers).Īpple asked us to debounce GPU switching. That should be a global refcounted object. So the idea is: during WebGL context creation, just before creating the actual WebGL context's OpenGL context, create a dummy context without AllowOfflineRenderers. The usefulness of such a dummy context comes from the fact that it doesn't have to share resources with any other context, so we are free to choose its attributes. So if we create a dummy OpenGL context without AllowOfflineRenderers, we will switch immediately to the discrete GPU and stay there as long as this context is alive. The idea is that, except possibly in corner cases that we could detect if needed, only one GPU is used at a time. Not sure if it's been written down before, so here it is.
0 Comments
Leave a Reply. |