diff --git a/demo/gpu.html b/demo/gpu.html index fa9fe2b7..d8f90802 100644 --- a/demo/gpu.html +++ b/demo/gpu.html @@ -102,14 +102,20 @@ function f(mode) { var a = []; var b = []; for(var n = 0; n < _length; n++) { - var randA = Math.random()/100.0; - var randB = Math.random()/100.0; + var randA = Math.random()*100.0; + var randB = Math.random()*100.0; a.push(randA); b.push(randB); } var f = GPU(function(a, b) { - return Math.sqrt( Math.pow( a[this.thread.x] , b[this.thread.x] ) ); + var res = 0.0; + var i = 0.0; + for(i = 0.0; i < 200000; ++i) { + res += Math.sqrt( Math.pow( a[this.thread.x] , b[this.thread.x] ) ); + } + + return res; }, { thread : [2048], mode : mode diff --git a/src/js-to-webclgl.js b/src/js-to-webclgl.js index 467bf181..027e7432 100644 --- a/src/js-to-webclgl.js +++ b/src/js-to-webclgl.js @@ -314,14 +314,14 @@ var GPU_jsStrToWebclglStr = (function() { if (forNode.type != "ForStatement") { throw "error"; } - retArr.push("for (float"); - ast_generic(forNode.init, retArr); + retArr.push("for (float "); + ast_generic(forNode.init, retArr, stateParam); retArr.push(";"); - ast_generic(forNode.test, retArr); + ast_generic(forNode.test, retArr, stateParam); retArr.push(";"); - ast_generic(forNode.update, retArr); + ast_generic(forNode.update, retArr, stateParam); retArr.push(")"); - ast_generic(forNode.body, retArr); + ast_generic(forNode.body, retArr, stateParam); return retArr; } diff --git a/test/html/basic_for_loop.html b/test/html/basic_for_loop.html new file mode 100644 index 00000000..eae08428 --- /dev/null +++ b/test/html/basic_for_loop.html @@ -0,0 +1,28 @@ + + +
+ +