Minimalistischer WebCL-Test (Beispiel 1)

Dein Browser unterstützt (noch) kein WebCL. Du brauchst einen Treiber für OpenCL 1.1 (z.B. nVidia Grafiktreiber ab Version 280)und die experimentelle WebCL-Erweiterung von Nokia Research.

"use strict";
/*global window */  // tells jslint that 'window' is defined!

function detectCL() {
    var
	    platforms,
	    devices,
	    i;
    // Wenn die WebCL-Erweiterung installiert ist, existiert das WebCL-Objekt als Element des globalen window-Objekts.
    if (window.WebCL === undefined) {
        window.document.getElementById("message").innerHTML = "Dein Browser unterstützt (noch) kein WebCL. " +
            "Du brauchst einen Treiber für OpenCL 1.1 (z.B. nVidia Grafiktreiber ab Version 280)" +
            "und die experimentelle WebCL-Erweiterung von Nokia Research.";
        return false;
    }

    try {
        platforms = window.WebCL.getPlatformIDs();  // Alle auf dem System verfügbaren WebCL-Platformen werden werden aufgelistet und im Array platforms abgelegt.
	    devices = []; // Innerhalb einer Platform kann es mehrere Devices geben. 
	                  // z.B. Platform[0] : nVidia Cuda / OpenCL 1.1
					  //          Device[0] : Geforce 9800GT
					  //          Device[1] : Tesla c2070
                      //      Platform[1] : Intel OpenCL SDK
                      //          Device[0] : Core i7
	    for (i = 0; i < platforms.length; i = i + 1) {
	        devices[i] = platforms[i].getDeviceIDs(window.WebCL.CL_DEVICE_TYPE_ALL);
	    }

	    // Falls die Abfragen getPlatformIDs oder getDeviceIDs eine Exception werfen, ist WebCL nicht verfügbar, andernfalls 
        // kann die Erfolgsmeldung ausgegeben werden:	
        window.document.getElementById("message").innerHTML = 'Testergebnis: Super! WebCL funktioniert auf deinem System!';
    } catch (e) {
        window.document.getElementById("message").innerHTML = 'Testergebnis: Die WebCL-Erweiterung scheint in deinem Browser installiert zu sein, aber es wurde kein geeigneter Hardwaretreiber für OpenCL 1.1 gefunden.';
    }
}
window.onload = function () {
    detectCL();
};




This example is closely based on the Nokia WebCL Tutorial.