diff options
-rw-r--r-- | gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc | 2 | ||||
-rw-r--r-- | ui/gl/gpu_timing.cc | 15 | ||||
-rw-r--r-- | ui/gl/gpu_timing_unittest.cc | 1 |
3 files changed, 9 insertions, 9 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc index e2ecece..5c1e048 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc @@ -1011,7 +1011,7 @@ TEST_P(GLES2DecoderManualInitTest, BeginInvalidTargetQueryFails) { TEST_P(GLES2DecoderManualInitTest, QueryCounterEXTTimeStamp) { InitState init; init.extensions = "GL_ARB_timer_query"; - init.gl_version = "opengl 2.0"; + init.gl_version = "opengl es 3.0"; init.has_alpha = true; init.request_alpha = true; init.bind_generates_resource = true; diff --git a/ui/gl/gpu_timing.cc b/ui/gl/gpu_timing.cc index d8c0127..f5d9ae0 100644 --- a/ui/gl/gpu_timing.cc +++ b/ui/gl/gpu_timing.cc @@ -319,14 +319,6 @@ GPUTimingImpl::GPUTimingImpl(GLContextReal* context) { DCHECK(version_info); if (context->HasExtension("GL_EXT_disjoint_timer_query")) { timer_type_ = GPUTiming::kTimerTypeDisjoint; - if (!version_info->is_es3) { - // Due to a bug in the specification, glGetInteger64v is only supported - // under ES3. Since it is only used for timestamps, we workaround this by - // emulating timestamps on ES2 so WebGL 1.0 will still have access to the - // extension - force_time_elapsed_query_ = true; - timestamp_bit_count_gl_ = 0; - } } else if (context->HasExtension("GL_ARB_timer_query")) { timer_type_ = GPUTiming::kTimerTypeARB; } else if (context->HasExtension("GL_EXT_timer_query")) { @@ -334,6 +326,13 @@ GPUTimingImpl::GPUTimingImpl(GLContextReal* context) { force_time_elapsed_query_ = true; timestamp_bit_count_gl_ = 0; } + // The command glGetInteger64v is only supported under ES3 and GL3.2. Since it + // is only used for timestamps, we workaround this by emulating timestamps + // so WebGL 1.0 will still have access to the extension. + if (!version_info->IsAtLeastGLES(3, 0) && !version_info->IsAtLeastGL(3, 2)) { + force_time_elapsed_query_ = true; + timestamp_bit_count_gl_ = 0; + } } GPUTimingImpl::~GPUTimingImpl() { diff --git a/ui/gl/gpu_timing_unittest.cc b/ui/gl/gpu_timing_unittest.cc index fa5b1f1..22f6562 100644 --- a/ui/gl/gpu_timing_unittest.cc +++ b/ui/gl/gpu_timing_unittest.cc @@ -93,6 +93,7 @@ TEST_F(GPUTimingTest, FakeTimerTest) { TEST_F(GPUTimingTest, ForceTimeElapsedQuery) { // Test that forcing time elapsed query affects all clients. + SetupGLContext("3.2", "GL_ARB_timer_query"); scoped_refptr<GPUTimingClient> client1 = CreateGPUTimingClient(); EXPECT_FALSE(client1->IsForceTimeElapsedQuery()); |