diff options
author | sievers <sievers@chromium.org> | 2015-01-28 20:00:53 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-29 04:01:57 +0000 |
commit | e3b17fd533b81a9855a28d04894021479cd6d89d (patch) | |
tree | d24a55d73711e31fe08c11464baf56a5af11c0cb /gpu | |
parent | e3bd3d03b895a14e811912a06162efa316668ff9 (diff) | |
download | chromium_src-e3b17fd533b81a9855a28d04894021479cd6d89d.zip chromium_src-e3b17fd533b81a9855a28d04894021479cd6d89d.tar.gz chromium_src-e3b17fd533b81a9855a28d04894021479cd6d89d.tar.bz2 |
Make GL bindings conditional
In addition to the extensions also parse GL/GLES version
information from the headers (hence add a few fresh headers).
Instead of brute-forcing binding in somewhat unclear order
make all dynamic bindings very specifically conditional to
the GL version or extension, given the precise name.
If a function is not available, then leave function pointer
set to NULL so it will generate a crash (report).
(Previously it might have ended up as 0
or with whatever valid or not valid pointer GetProcAddr()
returned - i.e. GetProcAddr returning something does not
imply the functionality is there.)
The version also includes whether it is GLES or not which
means we won't look up functions on GLES anymore that are
specific to desktop or vice versa.
Update gpu_unittests so that they are very specific to what
extensions they need (otherwise they might end up calling
the _NotBound fallback).
Also make WGL/GLX/EGL/MESA bindings all happen rightaway since
they don't depend on a context.
BUG=438742,325668
Review URL: https://codereview.chromium.org/871763002
Cr-Commit-Position: refs/heads/master@{#313663}
Diffstat (limited to 'gpu')
16 files changed, 55 insertions, 91 deletions
diff --git a/gpu/command_buffer/service/feature_info_unittest.cc b/gpu/command_buffer/service/feature_info_unittest.cc index e81dad1..8455be6 100644 --- a/gpu/command_buffer/service/feature_info_unittest.cc +++ b/gpu/command_buffer/service/feature_info_unittest.cc @@ -42,7 +42,7 @@ class FeatureInfoTest : public GpuServiceTest { } void SetupInitExpectations(const char* extensions) { - SetupInitExpectationsWithGLVersion(extensions, "", ""); + SetupInitExpectationsWithGLVersion(extensions, "", "3.0"); } void SetupInitExpectationsWithGLVersion( diff --git a/gpu/command_buffer/service/framebuffer_manager_unittest.cc b/gpu/command_buffer/service/framebuffer_manager_unittest.cc index 859726d..ddd3739 100644 --- a/gpu/command_buffer/service/framebuffer_manager_unittest.cc +++ b/gpu/command_buffer/service/framebuffer_manager_unittest.cc @@ -126,10 +126,12 @@ class FramebufferInfoTest : public GpuServiceTest { } protected: - void SetUp() override { InitializeContext("", ""); } + void SetUp() override { + InitializeContext("2.0", "GL_EXT_framebuffer_object"); + } void InitializeContext(const char* gl_version, const char* extensions) { - GpuServiceTest::SetUp(); + GpuServiceTest::SetUpWithGLVersion(gl_version, extensions); TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(gl_.get(), extensions, "", gl_version); feature_info_->Initialize(); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc index 8794e42..905a390 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc @@ -62,7 +62,6 @@ void GLES2DecoderRGBBackbufferTest::SetUp() { switches::kGpuDriverBugWorkarounds, base::IntToString(gpu::CLEAR_ALPHA_IN_READPIXELS)); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoderWithCommandLine(init, &command_line); SetupDefaultProgram(); @@ -268,7 +267,6 @@ TEST_P(GLES2DecoderTest, IsTexture) { TEST_P(GLES2DecoderManualInitTest, BindGeneratesResourceFalse) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); BindTexture cmd1; @@ -704,7 +702,6 @@ TEST_P(GLES2DecoderTest, IsEnabledReturnsCachedValue) { TEST_P(GLES2DecoderManualInitTest, GpuMemoryManagerCHROMIUM) { InitState init; init.extensions = "GL_ARB_texture_rectangle"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -780,7 +777,6 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerInitialSize) { new SizeOnlyMemoryTracker(); set_memory_tracker(memory_tracker.get()); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); // Expect that initial size - size is 0. @@ -793,7 +789,6 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerTexImage2D) { new SizeOnlyMemoryTracker(); set_memory_tracker(memory_tracker.get()); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); @@ -850,7 +845,6 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerTexStorage2DEXT) { new SizeOnlyMemoryTracker(); set_memory_tracker(memory_tracker.get()); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); @@ -877,7 +871,6 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerCopyTexImage2D) { new SizeOnlyMemoryTracker(); set_memory_tracker(memory_tracker.get()); InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.request_alpha = true; init.bind_generates_resource = true; @@ -914,7 +907,6 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerRenderbufferStorage) { new SizeOnlyMemoryTracker(); set_memory_tracker(memory_tracker.get()); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); DoBindRenderbuffer( @@ -950,7 +942,6 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerBufferData) { new SizeOnlyMemoryTracker(); set_memory_tracker(memory_tracker.get()); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); @@ -989,7 +980,6 @@ TEST_P(GLES2DecoderManualInitTest, ImmutableCopyTexImage2D) { const GLint kBorder = 0; InitState init; init.extensions = "GL_EXT_texture_storage"; - init.gl_version = "3.0"; init.has_alpha = true; init.request_alpha = true; init.bind_generates_resource = true; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_async_pixel.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_async_pixel.cc index d32870d..4e6346e 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_async_pixel.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_async_pixel.cc @@ -57,7 +57,6 @@ using namespace cmds; TEST_P(GLES2DecoderManualInitTest, AsyncPixelTransfers) { InitState init; init.extensions = "GL_CHROMIUM_async_pixel_transfers"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -319,7 +318,6 @@ TEST_P(GLES2DecoderManualInitTest, AsyncPixelTransfers) { TEST_P(GLES2DecoderManualInitTest, AsyncPixelTransferManager) { InitState init; init.extensions = "GL_CHROMIUM_async_pixel_transfers"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc index fd28f75..cd39253 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc @@ -356,7 +356,6 @@ class GLES2DecoderEmulatedVertexArraysOESTest void SetUp() override { InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; init.use_native_vao = false; InitDecoder(init); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc index 07d1eaf..807d488 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc @@ -57,6 +57,7 @@ void NormalizeInitState(gpu::gles2::GLES2DecoderTestBase::InitState* init) { break; } } + if (init->use_native_vao) { if (contains_vao_extension) return; @@ -75,6 +76,10 @@ void NormalizeInitState(gpu::gles2::GLES2DecoderTestBase::InitState* init) { // Make sure we don't set up an invalid InitState. CHECK(!contains_vao_extension); } + + if (!init->extensions.empty()) + init->extensions += " "; + init->extensions += "GL_EXT_framebuffer_object "; } } // namespace Anonymous @@ -118,7 +123,9 @@ GLES2DecoderTestBase::~GLES2DecoderTestBase() {} void GLES2DecoderTestBase::SetUp() { InitState init; - init.gl_version = "3.0"; + // Autogenerated tests do not overwrite version or extension string, + // so we have to pick something that supports everything here. + init.gl_version = "4.4"; init.has_alpha = true; init.has_depth = true; init.request_alpha = true; @@ -136,7 +143,9 @@ void GLES2DecoderTestBase::AddExpectationsForVertexAttribManager() { } GLES2DecoderTestBase::InitState::InitState() - : has_alpha(false), + : extensions("GL_EXT_framebuffer_object"), + gl_version("2.1"), + has_alpha(false), has_depth(false), has_stencil(false), request_alpha(false), @@ -156,6 +165,9 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( const base::CommandLine* command_line) { InitState normalized_init = init; NormalizeInitState(&normalized_init); + // For easier substring/extension matching + DCHECK(normalized_init.extensions.empty() || + *normalized_init.extensions.rbegin() == ' '); Framebuffer::ClearFramebufferCompleteComboMap(); gfx::SetGLGetProcAddressProc(gfx::MockGLInterface::GetGLProcAddress); @@ -166,9 +178,6 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( SetupMockGLBehaviors(); - // Only create stream texture manager if extension is requested. - std::vector<std::string> list; - base::SplitString(normalized_init.extensions, ' ', &list); scoped_refptr<FeatureInfo> feature_info; if (command_line) feature_info = new FeatureInfo(*command_line); @@ -423,15 +432,27 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( decoder_->set_unsafe_es3_apis_enabled(true); reset_unsafe_es3_apis_enabled = true; } - EXPECT_CALL(*gl_, GenSamplers(_, _)) - .WillOnce(SetArgumentPointee<1>(kServiceSamplerId)) - .RetiresOnSaturation(); - GenHelper<cmds::GenSamplersImmediate>(client_sampler_id_); - EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)) - .WillOnce(SetArgumentPointee<1>(kServiceTransformFeedbackId)) - .RetiresOnSaturation(); - GenHelper<cmds::GenTransformFeedbacksImmediate>(client_transformfeedback_id_); - DoFenceSync(client_sync_id_, kServiceSyncId); + + const gfx::GLVersionInfo* version = context_->GetVersionInfo(); + if (version->IsAtLeastGL(3, 3) || version->IsAtLeastGLES(3, 0)) { + EXPECT_CALL(*gl_, GenSamplers(_, _)) + .WillOnce(SetArgumentPointee<1>(kServiceSamplerId)) + .RetiresOnSaturation(); + GenHelper<cmds::GenSamplersImmediate>(client_sampler_id_); + } + if (version->IsAtLeastGL(4, 0) || version->IsAtLeastGLES(3, 0)) { + EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)) + .WillOnce(SetArgumentPointee<1>(kServiceTransformFeedbackId)) + .RetiresOnSaturation(); + GenHelper<cmds::GenTransformFeedbacksImmediate>( + client_transformfeedback_id_); + } + + if (init.extensions.find("GL_ARB_sync ") != std::string::npos || + version->IsAtLeastGL(3, 2) || version->IsAtLeastGLES(3, 0)) { + DoFenceSync(client_sync_id_, kServiceSyncId); + } + if (reset_unsafe_es3_apis_enabled) { decoder_->set_unsafe_es3_apis_enabled(false); } diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc index 74149ef..3578b5b 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc @@ -99,7 +99,6 @@ void GLES2DecoderRestoreStateTest::InitializeContextState( TEST_P(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) { InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); SetupTexture(); @@ -128,7 +127,6 @@ TEST_P(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) { TEST_P(GLES2DecoderRestoreStateTest, NullPreviousState) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); SetupTexture(); @@ -153,7 +151,6 @@ TEST_P(GLES2DecoderRestoreStateTest, NullPreviousState) { TEST_P(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) { InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); SetupTexture(); @@ -178,7 +175,6 @@ TEST_P(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) { TEST_P(GLES2DecoderRestoreStateTest, WithPreviousState) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); SetupTexture(); @@ -202,7 +198,6 @@ TEST_P(GLES2DecoderRestoreStateTest, WithPreviousState) { TEST_P(GLES2DecoderRestoreStateTest, ActiveUnit1) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); // Bind a non-default texture to GL_TEXTURE1 unit. @@ -233,7 +228,6 @@ TEST_P(GLES2DecoderRestoreStateTest, ActiveUnit1) { TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) { InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -272,7 +266,6 @@ TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) { TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) { InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -305,7 +298,6 @@ TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) { TEST_P(GLES2DecoderRestoreStateTest, DefaultUnit0) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); // Bind a non-default texture to GL_TEXTURE1 unit. @@ -342,7 +334,6 @@ TEST_P(GLES2DecoderRestoreStateTest, DefaultUnit0) { TEST_P(GLES2DecoderRestoreStateTest, DefaultUnit1) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); // Bind a non-default texture to GL_TEXTURE0 unit. @@ -391,7 +382,6 @@ TEST_P(GLES2DecoderManualInitTest, ContextStateCapabilityCaching) { {0, false, false}}; InitState init; - init.gl_version = "2.1"; InitDecoder(init); for (int i = 0; test[i].gl_enum; i++) { diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc index baff353..957b53b 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc @@ -391,7 +391,6 @@ TEST_P(GLES2DecoderRGBBackbufferTest, RGBBackbufferColorMaskFBO) { TEST_P(GLES2DecoderManualInitTest, DepthEnableWithDepth) { InitState init; - init.gl_version = "3.0"; init.has_depth = true; init.request_depth = true; init.bind_generates_resource = true; @@ -444,7 +443,6 @@ TEST_P(GLES2DecoderManualInitTest, DepthEnableWithDepth) { TEST_P(GLES2DecoderManualInitTest, DepthEnableWithoutRequestedDepth) { InitState init; - init.gl_version = "3.0"; init.has_depth = true; init.bind_generates_resource = true; InitDecoder(init); @@ -496,7 +494,6 @@ TEST_P(GLES2DecoderManualInitTest, DepthEnableWithoutRequestedDepth) { TEST_P(GLES2DecoderManualInitTest, StencilEnableWithStencil) { InitState init; - init.gl_version = "3.0"; init.has_stencil = true; init.request_stencil = true; init.bind_generates_resource = true; @@ -550,7 +547,6 @@ TEST_P(GLES2DecoderManualInitTest, StencilEnableWithStencil) { TEST_P(GLES2DecoderManualInitTest, StencilEnableWithoutRequestedStencil) { InitState init; - init.gl_version = "3.0"; init.has_stencil = true; init.bind_generates_resource = true; InitDecoder(init); @@ -602,7 +598,6 @@ TEST_P(GLES2DecoderManualInitTest, StencilEnableWithoutRequestedStencil) { TEST_P(GLES2DecoderManualInitTest, CachedColorMask) { InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.has_depth = true; init.has_stencil = true; @@ -630,7 +625,6 @@ TEST_P(GLES2DecoderManualInitTest, CachedColorMask) { TEST_P(GLES2DecoderManualInitTest, CachedDepthMask) { InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.has_depth = true; init.has_stencil = true; @@ -657,7 +651,6 @@ TEST_P(GLES2DecoderManualInitTest, CachedDepthMask) { TEST_P(GLES2DecoderManualInitTest, CachedStencilMask) { InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.has_depth = true; init.has_stencil = true; @@ -746,7 +739,6 @@ TEST_P(GLES2DecoderWithShaderTest, DrawArraysSimulatedAttrib0OOMFails) { // Test that we lose context. TEST_P(GLES2DecoderManualInitTest, LoseContextWhenOOM) { InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.has_depth = true; init.request_alpha = true; @@ -863,7 +855,6 @@ TEST_P(GLES2DecoderManualInitTest, InitVertexAttributes) { switches::kGpuDriverBugWorkarounds, base::IntToString(gpu::INIT_VERTEX_ATTRIBUTES)); InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.has_depth = true; init.request_alpha = true; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc index d230be78f..21526b1 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc @@ -927,7 +927,6 @@ TEST_P(GLES2DecoderTest, FramebufferRenderbufferClearDepthStencil) { TEST_P(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) { InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.request_alpha = true; init.bind_generates_resource = true; @@ -954,7 +953,6 @@ TEST_P(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) { TEST_P(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) { InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.bind_generates_resource = true; InitDecoder(init); @@ -980,7 +978,6 @@ TEST_P(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) { TEST_P(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) { InitState init; - init.gl_version = "3.0"; init.has_depth = true; init.request_depth = true; init.bind_generates_resource = true; @@ -1007,7 +1004,6 @@ TEST_P(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) { TEST_P(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) { InitState init; - init.gl_version = "3.0"; init.has_depth = true; init.bind_generates_resource = true; InitDecoder(init); @@ -1033,7 +1029,6 @@ TEST_P(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) { TEST_P(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) { InitState init; - init.gl_version = "3.0"; init.has_stencil = true; init.request_stencil = true; init.bind_generates_resource = true; @@ -1060,7 +1055,6 @@ TEST_P(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) { TEST_P(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) { InitState init; - init.gl_version = "3.0"; init.has_stencil = true; init.bind_generates_resource = true; InitDecoder(init); @@ -1404,7 +1398,6 @@ TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUMGLError) { InitState init; init.extensions = "GL_EXT_framebuffer_multisample"; - init.gl_version = "2.1"; init.bind_generates_resource = true; InitDecoder(init); DoBindRenderbuffer( @@ -1429,7 +1422,6 @@ TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUMBadArgs) { InitState init; init.extensions = "GL_EXT_framebuffer_multisample"; - init.gl_version = "2.1"; init.bind_generates_resource = true; InitDecoder(init); DoBindRenderbuffer( @@ -1464,7 +1456,6 @@ TEST_P(GLES2DecoderManualInitTest, TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) { InitState init; init.extensions = "GL_EXT_framebuffer_multisample"; - init.gl_version = "2.1"; InitDecoder(init); DoBindRenderbuffer( GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); @@ -1482,7 +1473,6 @@ TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUMRebindRenderbuffer) { InitState init; init.extensions = "GL_EXT_framebuffer_multisample"; - init.gl_version = "2.1"; InitDecoder(init); DoBindRenderbuffer( GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); @@ -1501,7 +1491,6 @@ TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleEXTNotSupported) { InitState init; init.extensions = "GL_EXT_framebuffer_multisample"; - init.gl_version = "2.1"; init.bind_generates_resource = true; InitDecoder(init); DoBindRenderbuffer( @@ -1786,7 +1775,6 @@ TEST_P(GLES2DecoderManualInitTest, UnClearedAttachmentsGetClearedOnReadPixelsAndDrawBufferGetsRestored) { InitState init; init.extensions = "GL_EXT_framebuffer_multisample"; - init.gl_version = "2.1"; init.bind_generates_resource = true; InitDecoder(init); const GLuint kFBOClientTextureId = 4100; @@ -2277,7 +2265,6 @@ TEST_P(GLES2DecoderManualInitTest, TEST_P(GLES2DecoderManualInitTest, ReadFormatExtension) { InitState init; init.extensions = "GL_OES_read_format"; - init.gl_version = "2.1"; init.bind_generates_resource = true; InitDecoder(init); @@ -2336,7 +2323,6 @@ TEST_P(GLES2DecoderManualInitTest, ReadFormatExtension) { TEST_P(GLES2DecoderManualInitTest, NoReadFormatExtension) { InitState init; - init.gl_version = "2.1"; init.bind_generates_resource = true; InitDecoder(init); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc index bcfeb1b..5eda0a9 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc @@ -1032,7 +1032,6 @@ TEST_P(GLES2DecoderManualInitTest, ClearUniformsBeforeFirstProgramUse) { switches::kGpuDriverBugWorkarounds, base::IntToString(gpu::CLEAR_UNIFORMS_BEFORE_FIRST_PROGRAM_USE)); InitState init; - init.gl_version = "3.0"; init.has_alpha = true; init.request_alpha = true; init.bind_generates_resource = true; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc index f0cadf1..05b44af 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc @@ -131,7 +131,6 @@ TEST_P(GLES2DecoderManualInitTest, SetTextureFiltersBeforeGenerateMipmap) { switches::kGpuDriverBugWorkarounds, base::IntToString(gpu::SET_TEXTURE_FILTER_BEFORE_GENERATING_MIPMAP)); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoderWithCommandLine(init, &command_line); @@ -641,7 +640,6 @@ TEST_P(GLES2DecoderTest, CopyTexImage2DGLError) { TEST_P(GLES2DecoderManualInitTest, CompressedTexImage2DBucketBadBucket) { InitState init; init.extensions = "GL_EXT_texture_compression_s3tc"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -679,7 +677,6 @@ struct S3TCTestData { TEST_P(GLES2DecoderManualInitTest, CompressedTexImage2DS3TC) { InitState init; init.extensions = "GL_EXT_texture_compression_s3tc"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); const uint32 kBucketId = 123; @@ -1090,7 +1087,6 @@ TEST_P(GLES2DecoderManualInitTest, EGLImageExternalTexImage2DError) { TEST_P(GLES2DecoderManualInitTest, DefaultTextureZero) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); BindTexture cmd1; @@ -1108,7 +1104,6 @@ TEST_P(GLES2DecoderManualInitTest, DefaultTextureZero) { TEST_P(GLES2DecoderManualInitTest, DefaultTextureBGR) { InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -1131,7 +1126,6 @@ TEST_P(GLES2DecoderManualInitTest, DefaultTextureBGR) { // Test that default texture 0 is immutable. TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterf) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); { @@ -1163,7 +1157,6 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterf) { TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteri) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); { @@ -1195,7 +1188,6 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteri) { TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterfv) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); { @@ -1235,7 +1227,6 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterfv) { TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteriv) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); { @@ -1275,7 +1266,6 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteriv) { TEST_P(GLES2DecoderManualInitTest, NoDefaultTexImage2D) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); BindTexture cmd1; @@ -1300,7 +1290,6 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexImage2D) { TEST_P(GLES2DecoderManualInitTest, NoDefaultTexSubImage2D) { InitState init; - init.gl_version = "3.0"; InitDecoder(init); BindTexture cmd1; @@ -1328,7 +1317,6 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexSubImage2D) { TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleBindTexture) { InitState init; init.extensions = "GL_ARB_texture_rectangle"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_RECTANGLE_ARB, kNewServiceId)); @@ -1346,7 +1334,6 @@ TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleBindTexture) { TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleGetBinding) { InitState init; init.extensions = "GL_ARB_texture_rectangle"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); DoBindTexture( @@ -1377,7 +1364,6 @@ TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleGetBinding) { TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureDefaults) { InitState init; init.extensions = "GL_ARB_texture_rectangle"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); DoBindTexture( @@ -1394,7 +1380,6 @@ TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureDefaults) { TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParam) { InitState init; init.extensions = "GL_ARB_texture_rectangle"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -1443,7 +1428,6 @@ TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParam) { TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParamInvalid) { InitState init; init.extensions = "GL_ARB_texture_rectangle"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -1476,7 +1460,6 @@ TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParamInvalid) { TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTexImage2DError) { InitState init; init.extensions = "GL_ARB_texture_rectangle"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -1632,7 +1615,6 @@ TEST_P( switches::kGpuDriverBugWorkarounds, base::IntToString(gpu::TEXSUBIMAGE2D_FASTER_THAN_TEXIMAGE2D)); InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoderWithCommandLine(init, &command_line); DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); @@ -1834,7 +1816,6 @@ TEST_P(GLES2DecoderTest, CopyTexSubImage2DClearsUnclearedBackBufferSizedTexture) TEST_P(GLES2DecoderManualInitTest, CompressedImage2DMarksTextureAsCleared) { InitState init; init.extensions = "GL_EXT_texture_compression_s3tc"; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -2663,7 +2644,6 @@ TEST_P(GLES2DecoderManualInitTest, TexSubImage2DFloatDoesClearOnGLES3) { TEST_P(GLES2DecoderManualInitTest, TexImage2DFloatConvertsFormatDesktop) { InitState init; init.extensions = "GL_ARB_texture_float"; - init.gl_version = "2.1"; InitDecoder(init); DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); DoTexImage2D( @@ -2742,7 +2722,6 @@ class GLES2DecoderCompressedFormatsTest : public GLES2DecoderManualInitTest { void CheckFormats(const char* extension, const GLenum* formats, int count) { InitState init; init.extensions = extension; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); @@ -2814,7 +2793,6 @@ TEST_P(GLES2DecoderCompressedFormatsTest, GetCompressedTextureFormatsETC1) { TEST_P(GLES2DecoderManualInitTest, GetNoCompressedTextureFormats) { InitState init; - init.gl_version = "3.0"; init.bind_generates_resource = true; InitDecoder(init); diff --git a/gpu/command_buffer/service/gpu_service_test.cc b/gpu/command_buffer/service/gpu_service_test.cc index a7c9db1..89740b9 100644 --- a/gpu/command_buffer/service/gpu_service_test.cc +++ b/gpu/command_buffer/service/gpu_service_test.cc @@ -38,7 +38,7 @@ void GpuServiceTest::SetUpWithGLVersion(const char* gl_version, } void GpuServiceTest::SetUp() { - SetUpWithGLVersion("2.0", NULL); + SetUpWithGLVersion("2.0", "GL_EXT_framebuffer_object"); } void GpuServiceTest::TearDown() { diff --git a/gpu/command_buffer/service/gpu_tracer_unittest.cc b/gpu/command_buffer/service/gpu_tracer_unittest.cc index 3737018..1b10fc6 100644 --- a/gpu/command_buffer/service/gpu_tracer_unittest.cc +++ b/gpu/command_buffer/service/gpu_tracer_unittest.cc @@ -225,7 +225,17 @@ class BaseGpuTest : public GpuServiceTest { protected: void SetUp() override { - GpuServiceTest::SetUp(); + const char* gl_version = "3.2"; + const char* extensions = nullptr; + if (GetTracerType() == kTracerTypeDisjointTimer) { + gl_version = "opengl es 3.0"; + extensions = "GL_EXT_disjoint_timer_query"; + } else if (GetTracerType() == kTracerTypeARBTimer) { + // TODO(sievers): The tracer should not depend on ARB_occlusion_query. + // Try merge Query APIs (core, ARB, EXT) into a single binding each. + extensions = "GL_ARB_timer_query GL_ARB_occlusion_query"; + } + GpuServiceTest::SetUpWithGLVersion(gl_version, extensions); gl_fake_queries_.Reset(); gl_surface_ = new gfx::GLSurfaceStub(); gl_context_ = new gfx::GLContextStub(); diff --git a/gpu/command_buffer/service/memory_program_cache_unittest.cc b/gpu/command_buffer/service/memory_program_cache_unittest.cc index 9134c78..7c39028 100644 --- a/gpu/command_buffer/service/memory_program_cache_unittest.cc +++ b/gpu/command_buffer/service/memory_program_cache_unittest.cc @@ -86,7 +86,7 @@ class MemoryProgramCacheTest : public GpuServiceTest { protected: void SetUp() override { - GpuServiceTest::SetUp(); + GpuServiceTest::SetUpWithGLVersion("3.0", "GL_ARB_get_program_binary"); vertex_shader_ = shader_manager_.CreateShader(kVertexShaderClientId, kVertexShaderServiceId, diff --git a/gpu/command_buffer/service/query_manager_unittest.cc b/gpu/command_buffer/service/query_manager_unittest.cc index 7c8e93c..9c3dd10 100644 --- a/gpu/command_buffer/service/query_manager_unittest.cc +++ b/gpu/command_buffer/service/query_manager_unittest.cc @@ -38,7 +38,7 @@ class QueryManagerTest : public GpuServiceTest { protected: void SetUp() override { - GpuServiceTest::SetUp(); + GpuServiceTest::SetUpWithGLVersion("2.1", "GL_ARB_occlusion_query"); engine_.reset(new MockCommandBufferEngine()); decoder_.reset(new MockGLES2Decoder()); decoder_->set_engine(engine_.get()); diff --git a/gpu/command_buffer/service/vertex_array_manager_unittest.cc b/gpu/command_buffer/service/vertex_array_manager_unittest.cc index 24592b6..0d3d1d0 100644 --- a/gpu/command_buffer/service/vertex_array_manager_unittest.cc +++ b/gpu/command_buffer/service/vertex_array_manager_unittest.cc @@ -29,7 +29,7 @@ class VertexArrayManagerTest : public GpuServiceTest { protected: void SetUp() override { - GpuServiceTest::SetUp(); + GpuServiceTest::SetUpWithGLVersion("2.1", "GL_ARB_vertex_array_object"); manager_.reset(new VertexArrayManager()); } |