Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: tools/perf/page_sets/tough_texture_upload_cases/texture_upload_experiment.js

Issue 1159733003: Added Tough Texture upload page set to smoothness benchmark. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change to animation interaction Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1
2 function SetupShaderProgram(gl) {
3 // Create Vertex Shader.
4 var vertex_shader = '' +
5 'attribute vec4 vPosition;\n' +
6 'attribute vec2 texCoord0;\n' +
7 'varying vec2 texCoord;\n' +
8 'void main() {\n' +
9 ' gl_Position = vPosition;\n' +
10 ' texCoord = texCoord0;\n' +
11 '}\n';
12 var vs = gl.createShader(gl.VERTEX_SHADER);
13 gl.shaderSource(vs, vertex_shader);
14 gl.compileShader(vs);
15
16 // Create Fragment Shader.
17 var fragment_shader = '' +
18 '#ifdef GL_ES\n' +
19 'precision mediump float;\n' +
20 '#endif\n' +
21 'uniform sampler2D tex;\n' +
22 'varying vec2 texCoord;\n' +
23 'void main() {\n' +
24 ' gl_FragData[0] = texture2D(tex, texCoord);\n' +
25 '}\n';
26 var fs = gl.createShader(gl.FRAGMENT_SHADER);
27 gl.shaderSource(fs, fragment_shader);
28 gl.compileShader(fs);
29
30 // Link Program.
31 var program = gl.createProgram();
32 gl.attachShader(program, vs);
33 gl.attachShader(program, fs);
34
35 gl.bindAttribLocation(program, 0, 'vPosition');
36 gl.bindAttribLocation(program, 1, 'texCoord0');
37 gl.linkProgram(program);
38
39 gl.deleteShader(fs);
40 gl.deleteShader(vs);
41 gl.useProgram(program);
42 };
43
44 function SetupQuad(gl) {
45 SetupShaderProgram(gl);
46
47 // Setup unit quad
48 var vertexObject = gl.createBuffer();
49 gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject);
50 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
51 1.0, 1.0, 0.0,
52 -1.0, 1.0, 0.0,
53 -1.0, -1.0, 0.0,
54 1.0, 1.0, 0.0,
55 -1.0, -1.0, 0.0,
56 1.0, -1.0, 0.0]), gl.STATIC_DRAW);
57 gl.enableVertexAttribArray(0);
58 gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
59
60 var vertexObject = gl.createBuffer();
61 gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject);
62 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
63 1.0, 1.0,
64 0.0, 1.0,
65 0.0, 0.0,
66 1.0, 1.0,
67 0.0, 0.0,
68 1.0, 0.0]), gl.STATIC_DRAW);
69 gl.enableVertexAttribArray(1);
70 gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0);
71 };
72
73 function DoTextureUploadBenchmark(gl, dimension) {
74 SetupShaderProgram(gl);
75 SetupQuad(gl);
76
77 var canvasTexture = gl.createTexture();
78 gl.bindTexture(gl.TEXTURE_2D, canvasTexture);
79 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
80 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
81
82 var frame = 0;
83 var delta = 10;
84
85 function update_texture() {
86 requestAnimationFrame(update_texture);
87 var pixels = new Uint8Array(dimension * dimension * 4);
88 if (((frame + delta) < 0) || (frame + delta) >= 256 * 3)
89 delta *= -1;
90 frame += delta;
91
92 for (var i = 0; i < dimension * dimension; ++i) {
93 pixels[i*4] = Math.min(frame, 255);
94 pixels[i*4+1] = Math.max(256, Math.min(511, frame)) - 256;
95 pixels[i*4+2] = Math.max(512, frame) - 512;
96 pixels[i*4+3] = 0xFF;
97 }
98
99 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, dimension, dimension, 0,
100 gl.RGBA, gl.UNSIGNED_BYTE, pixels);
101 gl.drawArrays(gl.TRIANGLES, 0, 6);
102 }
103 update_texture();
104 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698