Index: gpu/perftests/texture_upload_perftest.cc |
diff --git a/gpu/perftests/texture_upload_perftest.cc b/gpu/perftests/texture_upload_perftest.cc |
index 2e9ef6cea4346d217eeae515b89db88f9e0cf40f..f691c9e76d91f1b744f2609309ba91266e15f8b2 100644 |
--- a/gpu/perftests/texture_upload_perftest.cc |
+++ b/gpu/perftests/texture_upload_perftest.cc |
@@ -6,10 +6,8 @@ |
#include <vector> |
#include "base/containers/small_map.h" |
-#include "base/logging.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
-#include "gpu/command_buffer/service/gpu_timing.h" |
#include "gpu/perftests/measurements.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/gfx/geometry/size.h" |
@@ -33,7 +31,7 @@ SHADER( |
varying vec2 v_texCoord; |
void main() { |
gl_Position = vec4(a_position.x, a_position.y, 0.0, 1.0); |
- v_texCoord = vec2((a_position.x + 1.0) * 0.5, (a_position.y + 1.0) * 0.5); |
+ v_texCoord = vec2((a_position.x + 1) * 0.5, (a_position.y + 1) * 0.5); |
} |
); |
const char kFragmentShader[] = |
@@ -98,30 +96,12 @@ class TextureUploadPerfTest : public testing::Test { |
void SetUp() override { |
// Initialize an offscreen surface and a gl context. |
gfx::GLSurface::InitializeOneOff(); |
- surface_ = gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size(4, 4)); |
+ surface_ = gfx::GLSurface::CreateOffscreenGLSurface(size_); |
gl_context_ = gfx::GLContext::CreateGLContext(NULL, // share_group |
surface_.get(), |
gfx::PreferIntegratedGpu); |
- ui::ScopedMakeCurrent smc(gl_context_.get(), surface_.get()); |
- glGenTextures(1, &color_texture_); |
- glBindTexture(GL_TEXTURE_2D, color_texture_); |
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); |
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); |
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size_.width(), size_.height(), 0, |
- GL_RGBA, GL_UNSIGNED_BYTE, nullptr); |
- |
- glGenFramebuffersEXT(1, &framebuffer_object_); |
- glBindFramebufferEXT(GL_FRAMEBUFFER, framebuffer_object_); |
- |
- glFramebufferTexture2DEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, |
- GL_TEXTURE_2D, color_texture_, 0); |
- DCHECK_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_COMPLETE), |
- glCheckFramebufferStatusEXT(GL_FRAMEBUFFER)); |
- |
- glViewport(0, 0, size_.width(), size_.height()); |
+ ui::ScopedMakeCurrent smc(gl_context_.get(), surface_.get()); |
if (gpu_timing_.Initialize(gl_context_.get())) { |
LOG(INFO) << "Gpu timing initialized with timer type: " |
<< gpu_timing_.GetTimerTypeName(); |
@@ -130,6 +110,7 @@ class TextureUploadPerfTest : public testing::Test { |
} else { |
LOG(WARNING) << "Can't initialize gpu timing"; |
} |
+ |
// Prepare a simple program and a vertex buffer that will be |
// used to draw a quad on the offscreen surface. |
vertex_shader_ = LoadShader(GL_VERTEX_SHADER, kVertexShader); |
@@ -161,14 +142,18 @@ class TextureUploadPerfTest : public testing::Test { |
void TearDown() override { |
ui::ScopedMakeCurrent smc(gl_context_.get(), surface_.get()); |
- glDeleteProgram(program_object_); |
- glDeleteShader(vertex_shader_); |
- glDeleteShader(fragment_shader_); |
- glDeleteShader(vertex_buffer_); |
- |
- glBindFramebufferEXT(GL_FRAMEBUFFER, 0); |
- glDeleteFramebuffersEXT(1, &framebuffer_object_); |
- glDeleteTextures(1, &color_texture_); |
+ if (program_object_ != 0) { |
+ glDeleteProgram(program_object_); |
+ } |
+ if (vertex_shader_ != 0) { |
+ glDeleteShader(vertex_shader_); |
+ } |
+ if (fragment_shader_ != 0) { |
+ glDeleteShader(fragment_shader_); |
+ } |
+ if (vertex_buffer_ != 0) { |
+ glDeleteShader(vertex_buffer_); |
+ } |
gl_context_ = nullptr; |
surface_ = nullptr; |
@@ -182,8 +167,6 @@ class TextureUploadPerfTest : public testing::Test { |
const GLenum format, |
const GLenum type) { |
ui::ScopedMakeCurrent smc(gl_context_.get(), surface_.get()); |
- DCHECK_NE(0u, framebuffer_object_); |
- glBindFramebufferEXT(GL_FRAMEBUFFER, framebuffer_object_); |
MeasurementTimers total_timers(&gpu_timing_); |
GLuint texture_id = 0; |
@@ -195,8 +178,8 @@ class TextureUploadPerfTest : public testing::Test { |
glTexImage2D(GL_TEXTURE_2D, 0, format, size_.width(), size_.height(), 0, |
format, type, &pixels[0]); |
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); |
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); |
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); |
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); |
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
CheckNoGlError(); |
@@ -239,13 +222,11 @@ class TextureUploadPerfTest : public testing::Test { |
return measurements; |
} |
- const gfx::Size size_; // for the fbo and the texture |
+ const gfx::Size size_; // for the offscreen surface and the texture |
scoped_refptr<gfx::GLContext> gl_context_; |
scoped_refptr<gfx::GLSurface> surface_; |
GPUTiming gpu_timing_; |
- GLuint color_texture_ = 0; |
- GLuint framebuffer_object_ = 0; |
GLuint vertex_shader_ = 0; |
GLuint fragment_shader_ = 0; |
GLuint program_object_ = 0; |