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

Unified Diff: client/deps/glbench/src/fillratetest.cc

Issue 2913008: Converted fill rate test to GLES2. (Closed) Base URL: ssh://git@chromiumos-git//autotest.git
Patch Set: Created 10 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/deps/glbench/src/Makefile ('k') | client/deps/glbench/src/main.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/deps/glbench/src/fillratetest.cc
diff --git a/client/deps/glbench/src/fillratetest.cc b/client/deps/glbench/src/fillratetest.cc
index 426a3a4e45b38e3c16bdc832868047dcdb1a15f8..e31eec2d2c6eb0bbd0d5d448cb4274ed06c8adfc 100644
--- a/client/deps/glbench/src/fillratetest.cc
+++ b/client/deps/glbench/src/fillratetest.cc
@@ -21,6 +21,41 @@ class FillRateTest : public DrawArraysTestFunc {
DISALLOW_COPY_AND_ASSIGN(FillRateTest);
};
+#if defined(I915_WORKAROUND)
+#define V1 "gl_TexCoord[0]"
+#else
+#define V1 "v1"
+#endif
+
+const char* kVertexShader1 =
+ "attribute vec4 position;"
+ "void main() {"
+ " gl_Position = position;"
+ "}";
+
+const char* kFragmentShader1 =
+ "uniform vec4 color;"
+ "void main() {"
+ " gl_FragColor = color;"
+ "}";
+
+
+const char* kVertexShader2 =
+ "attribute vec4 position;"
+ "attribute vec4 texcoord;"
+ "uniform float scale;"
+ "varying vec2 v1;"
+ "void main() {"
+ " gl_Position = position * vec4(scale, scale, 1., 1.);"
+ " " V1 " = texcoord;"
+ "}";
+
+const char* kFragmentShader2 =
+ "uniform sampler2D texture;"
+ "varying vec2 v1;"
+ "void main() {"
+ " gl_FragColor = texture2D(texture, " V1 ".xy);"
+ "}";
bool FillRateTest::Run() {
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
@@ -39,25 +74,43 @@ bool FillRateTest::Run() {
0.f, 1.f,
1.f, 1.f,
};
- glEnableClientState(GL_VERTEX_ARRAY);
GLuint vbo_vertex = SetupVBO(GL_ARRAY_BUFFER,
sizeof(buffer_vertex), buffer_vertex);
- glVertexPointer(2, GL_FLOAT, 0, 0);
+ GLuint program = InitShaderProgram(kVertexShader1, kFragmentShader1);
+ GLint position_attribute = glGetAttribLocation(program, "position");
+ glVertexAttribPointer(position_attribute, 2, GL_FLOAT, GL_FALSE, 0, NULL);
+ glEnableVertexAttribArray(position_attribute);
- GLuint vbo_texture = SetupVBO(GL_ARRAY_BUFFER,
- sizeof(buffer_texture), buffer_texture);
- glTexCoordPointer(2, GL_FLOAT, 0, 0);
+ GLint color_uniform = glGetUniformLocation(program, "color");
+ const GLfloat red[4] = {1.f, 0.f, 0.f, 1.f};
+ glUniform4fv(color_uniform, 1, red);
- glColor4f(1.f, 0.f, 0.f, 1.f);
FillRateTestNormal("fill_solid");
FillRateTestBlendDepth("fill_solid");
- glColor4f(1.f, 1.f, 1.f, 1.f);
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glEnable(GL_TEXTURE_2D);
+ glDeleteProgram(program);
+
+ program = InitShaderProgram(kVertexShader2, kFragmentShader2);
+ position_attribute = glGetAttribLocation(program, "position");
+ // Reusing vbo_vertex buffer from the previous test.
+ glVertexAttribPointer(position_attribute, 2, GL_FLOAT, GL_FALSE, 0, NULL);
+ glEnableVertexAttribArray(position_attribute);
+
+ GLuint vbo_texture = SetupVBO(GL_ARRAY_BUFFER,
+ sizeof(buffer_texture), buffer_texture);
+ GLuint texcoord_attribute = glGetAttribLocation(program, "texcoord");
+ glVertexAttribPointer(texcoord_attribute, 2, GL_FLOAT, GL_FALSE, 0, NULL);
+ glEnableVertexAttribArray(texcoord_attribute);
GLuint texture = SetupTexture(9);
+
+ GLuint texture_uniform = glGetUniformLocation(program, "texture");
+ glUniform1i(texture_uniform, 0);
+
+ GLuint scale_uinform = glGetUniformLocation(program, "scale");
+ glUniform1f(scale_uinform, 1.f);
+
FillRateTestNormal("fill_tex_nearest");
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -65,7 +118,7 @@ bool FillRateTest::Run() {
FillRateTestNormal("fill_tex_bilinear");
// lod = 0.5
- glScalef(0.7071f, 0.7071f, 1.f);
+ glUniform1f(scale_uinform, 0.7071f);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_LINEAR_MIPMAP_NEAREST);
FillRateTestNormalSubWindow("fill_tex_trilinear_nearest_05",
@@ -77,21 +130,20 @@ bool FillRateTest::Run() {
0.7071f * g_width, 0.7071f * g_height);
// lod = 0.4
- glLoadIdentity();
- glScalef(0.758f, 0.758f, 1.f);
+ glUniform1f(scale_uinform, 0.758f);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_LINEAR_MIPMAP_LINEAR);
FillRateTestNormalSubWindow("fill_tex_trilinear_linear_04",
0.758f * g_width, 0.758f * g_height);
// lod = 0.1
- glLoadIdentity();
- glScalef(0.933f, 0.933f, 1.f);
+ glUniform1f(scale_uinform, 0.933f);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_LINEAR_MIPMAP_LINEAR);
FillRateTestNormalSubWindow("fill_tex_trilinear_linear_01",
0.933f * g_width, 0.933f * g_height);
+ glDeleteProgram(program);
glDeleteBuffers(1, &vbo_vertex);
glDeleteBuffers(1, &vbo_texture);
glDeleteTextures(1, &texture);
« no previous file with comments | « client/deps/glbench/src/Makefile ('k') | client/deps/glbench/src/main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698