Skip to content

Commit eadf737

Browse files
committed
fixes for lots-o-images
1 parent 7bfceda commit eadf737

10 files changed

+336
-909
lines changed

js/perf-harness.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ var PerfHarness = (function(undefined) {
77
targetTime: 1,
88
velocity: 1,
99
direction: 1,
10-
frames: []
10+
frames: [],
1111
};
1212

1313
var countHistory = [];
1414
var totalCount = 0;
1515
var countIndex = 0;
16+
var skipFrames = 0;
1617
var framesToAverage;
1718
var then;
1819
var callback;
@@ -45,12 +46,19 @@ var PerfHarness = (function(undefined) {
4546
if (g.direction != desiredDirection) {
4647
g.direction = desiredDirection;
4748
g.velocity = Math.max(Math.abs(Math.floor(g.velocity / 4)), 1) * g.direction;
49+
if (g.direction < 0) {
50+
skipFrames = 3;
51+
}
52+
} else if (skipFrames) {
53+
--skipFrames;
4854
} else {
4955
g.velocity *= 2;
5056
}
57+
5158
if (g.frames.length < 1000) {
5259
g.frames.push(g.elapsedTime);
5360
}
61+
5462
g.count += g.velocity;
5563
g.count = Math.max(1, g.count);
5664

@@ -61,7 +69,7 @@ var PerfHarness = (function(undefined) {
6169

6270
callback(g.count, Math.floor(totalCount / framesToAverage), g.elapsedTime);
6371

64-
window.requestAnimFrame(test, canvas);
72+
requestAnimationFrame(test, canvas);
6573
};
6674

6775
var getTargetFPS = function() {

lots-o-images/lots-o-images-buffer-data-opaque.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,8 @@
340340
app.update(elapsedTime);
341341
app.render();
342342
}
343-
PerfHarness.start(canvas, render, 1);
343+
var framesToAverage = 60;
344+
PerfHarness.start(canvas, render, 60);
344345
return true;
345346
}
346347
</script>

lots-o-images/lots-o-images-buffer-data.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,8 @@
340340
app.update(elapsedTime);
341341
app.render();
342342
}
343-
PerfHarness.start(canvas, render, 1);
343+
var framesToAverage = 60;
344+
PerfHarness.start(canvas, render, 60);
344345
return true;
345346
}
346347
</script>

lots-o-images/lots-o-images-draw-elements-with-tex-upload.html

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<meta charset="utf-8">
3535
<title>Lots-O-Images - DrawElements</title>
3636
<link rel="stylesheet" type="text/css" href="../google-io/2011/style.css" />
37+
<script type="text/javascript" src="../js/perf-harness.js"></script>
3738
<script type="text/javascript" src="../tdl/base.js"></script>
3839
<script type="text/javascript">
3940
tdl.require('tdl.buffers');
@@ -57,7 +58,7 @@
5758
var g_maxImages = 250000;
5859
var g_numImages = 100;
5960
var g_imageSize = 32;
60-
var g_targetFrameRate = 20 - 2; // add some fudge so browser that runs at 58-59 can still run the test
61+
var g_targetFrameRate = 60 - 5; // add some fudge so browser that runs at 58-59 can still run the test
6162

6263
function CreateApp() {
6364
var updatePositions = true;
@@ -242,33 +243,22 @@
242243
var then = (new Date()).getTime() * 0.001;
243244
var changeAmount = 1;
244245

245-
function render() {
246-
tdl.webgl.requestAnimationFrame(render, canvas);
247-
248-
// Compute the elapsed time since the last rendered frame
249-
// in seconds.
250-
var now = (new Date()).getTime() * 0.001;
251-
var elapsedTime = Math.min(now - then, 0.1);
252-
then = now;
246+
PerfHarness.setTargetFPS(g_targetFrameRate);
253247

248+
function render(count, averageCount, elapsedTime) {
254249
// Update the FPS timer.
255250
fpsTimer.update(elapsedTime);
256251
fpsElem.innerHTML = fpsTimer.averageFPS;
257252

258-
var goFaster = fpsTimer.averageFPS >= g_targetFrameRate;
259-
if (goFaster) {
260-
changeAmount = 11;
261-
} else {
262-
changeAmount = -9;
263-
}
264-
g_numImages = Math.max(Math.min(g_numImages + changeAmount, g_maxImages), 1);
253+
g_numImages = count;
265254

266255
cntElem.innerHTML = g_numImages;
267256

268257
app.update(elapsedTime);
269258
app.render();
270259
}
271-
render();
260+
var framesToAverage = 60;
261+
PerfHarness.start(canvas, render, 60);
272262
return true;
273263
}
274264
</script>

lots-o-images/lots-o-images-draw-elements.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,8 @@
277277
app.update(elapsedTime);
278278
app.render();
279279
}
280-
PerfHarness.start(canvas, render, 1);
280+
var framesToAverage = 60;
281+
PerfHarness.start(canvas, render, 60);
281282
}
282283
</script>
283284
</head>

lots-o-images/lots-o-images-texture-data.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
var g_maxImages = 4096;
5858
var g_numImages = 3;
5959
var g_imageSize = 32;
60-
var g_targetFrameRate = 60;
60+
var g_targetFrameRate = 20;
6161

6262
function CreateApp() {
6363
var updatePositions = true;

0 commit comments

Comments
 (0)