| 9 | function detectCL() {
|
| 10 | var
|
| 11 | platforms,
|
| 12 | devices,
|
| 13 | i;
|
| 14 | // Wenn die WebCL-Erweiterung installiert ist, existiert das WebCL-Objekt als Element des globalen window-Objekts.
|
| 15 | if (window.WebCL === undefined) {
|
| 16 | window.document.getElementById("message").innerHTML = "Dein Browser unterst�tzt (noch) kein WebCL. " +
|
| 17 | "Du brauchst einen Treiber f�r OpenCL 1.1 (z.B. nVidia Grafiktreiber ab Version 280)" +
|
| 18 | "und die experimentelle WebCL-Erweiterung von Nokia Research.";
|
| 19 | return false;
|
| 20 | }
|
| 21 |
|
| 22 | try {
|
| 23 | platforms = window.WebCL.getPlatformIDs(); // Alle auf dem System verf�gbaren WebCL-Platformen werden werden aufgelistet und im Array platforms abgelegt.
|
| 24 | devices = []; // Innerhalb einer Platform kann es mehrere Devices geben.
|
| 25 | // z.B. Platform[0] : nVidia Cuda / OpenCL 1.1
|
| 26 | // Device[0] : Geforce 9800GT
|
| 27 | // Device[1] : Tesla c2070
|
| 28 | // Platform[1] : Intel OpenCL SDK
|
| 29 | // Device[0] : Core i7
|
| 30 | for (i = 0; i < platforms.length; i = i + 1) {
|
| 31 | devices[i] = platforms[i].getDeviceIDs(window.WebCL.CL_DEVICE_TYPE_ALL);
|
| 32 | }
|
| 33 |
|
| 34 | // Falls die Abfragen getPlatformIDs oder getDeviceIDs eine Exception werfen, ist WebCL nicht verf�gbar, andernfalls
|
| 35 | // kann die Erfolgsmeldung ausgegeben werden:
|
| 36 | window.document.getElementById("message").innerHTML = 'Testergebnis: Super! WebCL funktioniert auf deinem System!';
|
| 37 | } catch (e) {
|
| 38 | window.document.getElementById("message").innerHTML = 'Testergebnis: Die WebCL-Erweiterung scheint in deinem Browser installiert zu sein, aber es wurde kein geei gneter Hardwaretreiber f�r OpenCL 1.1 gefunden.';
|
| 39 | }
|
| 40 | }
|