summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorsievers <sievers@chromium.org>2015-01-28 20:00:53 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-29 04:01:57 +0000
commite3b17fd533b81a9855a28d04894021479cd6d89d (patch)
treed24a55d73711e31fe08c11464baf56a5af11c0cb /gpu
parente3bd3d03b895a14e811912a06162efa316668ff9 (diff)
downloadchromium_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')
-rw-r--r--gpu/command_buffer/service/feature_info_unittest.cc2
-rw-r--r--gpu/command_buffer/service/framebuffer_manager_unittest.cc6
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc10
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_async_pixel.cc2
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc1
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc49
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc10
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc9
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc14
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc1
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc22
-rw-r--r--gpu/command_buffer/service/gpu_service_test.cc2
-rw-r--r--gpu/command_buffer/service/gpu_tracer_unittest.cc12
-rw-r--r--gpu/command_buffer/service/memory_program_cache_unittest.cc2
-rw-r--r--gpu/command_buffer/service/query_manager_unittest.cc2
-rw-r--r--gpu/command_buffer/service/vertex_array_manager_unittest.cc2
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());
}