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

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: Added copyright Created 5 years, 7 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
« no previous file with comments | « tools/perf/page_sets/tough_texture_upload_cases/small_texture_uploads.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 function SetupShaderProgram(gl) {
6 // Create Vertex Shader.
7 var vertex_shader = '' +
8 'attribute vec4 vPosition;\n' +
9 'attribute vec2 texCoord0;\n' +
10 'varying vec2 texCoord;\n' +
11 'void main() {\n' +
12 ' gl_Position = vPosition;\n' +
13 ' texCoord = texCoord0;\n' +
14 '}\n';
15 var vs = gl.createShader(gl.VERTEX_SHADER);
16 gl.shaderSource(vs, vertex_shader);
17 gl.compileShader(vs);
18
19 // Create Fragment Shader.
20 var fragment_shader = '' +
21 '#ifdef GL_ES\n' +
22 'precision mediump float;\n' +
23 '#endif\n' +
24 'uniform sampler2D tex;\n' +
25 'varying vec2 texCoord;\n' +
26 'void main() {\n' +
27 ' gl_FragData[0] = texture2D(tex, texCoord);\n' +
28 '}\n';
29 var fs = gl.createShader(gl.FRAGMENT_SHADER);
30 gl.shaderSource(fs, fragment_shader);
31 gl.compileShader(fs);
32
33 // Link Program.
34 var program = gl.createProgram();
35 gl.attachShader(program, vs);
36 gl.attachShader(program, fs);
37
38 gl.bindAttribLocation(program, 0, 'vPosition');
39 gl.bindAttribLocation(program, 1, 'texCoord0');
40 gl.linkProgram(program);
41
42 gl.deleteShader(fs);
43 gl.deleteShader(vs);
44 gl.useProgram(program);
45 };
46
47 function SetupQuad(gl) {
48 SetupShaderProgram(gl);
49
50 // Setup unit quad
51 var vertexObject = gl.createBuffer();
52 gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject);
53 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
54 1.0, 1.0, 0.0,
55 -1.0, 1.0, 0.0,
56 -1.0, -1.0, 0.0,
57 1.0, 1.0, 0.0,
58 -1.0, -1.0, 0.0,
59 1.0, -1.0, 0.0]), gl.STATIC_DRAW);
60 gl.enableVertexAttribArray(0);
61 gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
62
63 var vertexObject = gl.createBuffer();
64 gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject);
65 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
66 1.0, 1.0,
67 0.0, 1.0,
68 0.0, 0.0,
69 1.0, 1.0,
70 0.0, 0.0,
71 1.0, 0.0]), gl.STATIC_DRAW);
72 gl.enableVertexAttribArray(1);
73 gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0);
74 };
75
76 function DoTextureUploadBenchmark(gl, dimension) {
77 SetupShaderProgram(gl);
78 SetupQuad(gl);
79
80 var canvasTexture = gl.createTexture();
81 gl.bindTexture(gl.TEXTURE_2D, canvasTexture);
82 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
83 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
84
85 var frame = 0;
86 var delta = 10;
87
88 function update_texture() {
89 requestAnimationFrame(update_texture);
90 var pixels = new Uint8Array(dimension * dimension * 4);
91 if (((frame + delta) < 0) || (frame + delta) >= 256 * 3)
92 delta *= -1;
93 frame += delta;
94
95 for (var i = 0; i < dimension * dimension; ++i) {
96 pixels[i*4] = Math.min(frame, 255);
97 pixels[i*4+1] = Math.max(256, Math.min(511, frame)) - 256;
98 pixels[i*4+2] = Math.max(512, frame) - 512;
99 pixels[i*4+3] = 0xFF;
100 }
101
102 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, dimension, dimension, 0,
103 gl.RGBA, gl.UNSIGNED_BYTE, pixels);
104 gl.drawArrays(gl.TRIANGLES, 0, 6);
105 }
106 update_texture();
107 }
OLDNEW
« no previous file with comments | « tools/perf/page_sets/tough_texture_upload_cases/small_texture_uploads.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698