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

Side by Side Diff: gpu/command_buffer/service/feature_info_unittest.cc

Issue 10441087: Plum through ANGLE_depth_texture (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 6 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 unified diff | Download patch
« no previous file with comments | « gpu/command_buffer/service/feature_info.cc ('k') | gpu/command_buffer/service/gl_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/feature_info.h" 5 #include "gpu/command_buffer/service/feature_info.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "gpu/command_buffer/common/gl_mock.h" 8 #include "gpu/command_buffer/common/gl_mock.h"
9 #include "gpu/command_buffer/service/test_helper.h" 9 #include "gpu/command_buffer/service/test_helper.h"
10 #include "gpu/command_buffer/service/texture_manager.h" 10 #include "gpu/command_buffer/service/texture_manager.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 virtual void TearDown() { 52 virtual void TearDown() {
53 info_ = NULL; 53 info_ = NULL;
54 ::gfx::GLInterface::SetGLInterface(NULL); 54 ::gfx::GLInterface::SetGLInterface(NULL);
55 gl_.reset(); 55 gl_.reset();
56 } 56 }
57 57
58 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_; 58 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
59 FeatureInfo::Ref info_; 59 FeatureInfo::Ref info_;
60 }; 60 };
61 61
62 namespace {
63
64 struct FormatInfo {
65 GLenum format;
66 const GLenum* types;
67 size_t count;
68 };
69
70 } // anonymous namespace.
71
62 TEST_F(FeatureInfoTest, Basic) { 72 TEST_F(FeatureInfoTest, Basic) {
63 // Test it starts off uninitialized. 73 // Test it starts off uninitialized.
64 EXPECT_FALSE(info_->feature_flags().chromium_framebuffer_multisample); 74 EXPECT_FALSE(info_->feature_flags().chromium_framebuffer_multisample);
65 EXPECT_FALSE(info_->feature_flags().oes_standard_derivatives); 75 EXPECT_FALSE(info_->feature_flags().oes_standard_derivatives);
66 EXPECT_FALSE(info_->feature_flags().npot_ok); 76 EXPECT_FALSE(info_->feature_flags().npot_ok);
67 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); 77 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear);
68 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); 78 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear);
69 EXPECT_FALSE(info_->feature_flags().chromium_webglsl); 79 EXPECT_FALSE(info_->feature_flags().chromium_webglsl);
70 EXPECT_FALSE(info_->feature_flags().oes_egl_image_external); 80 EXPECT_FALSE(info_->feature_flags().oes_egl_image_external);
71 EXPECT_FALSE(info_->feature_flags().chromium_stream_texture); 81 EXPECT_FALSE(info_->feature_flags().chromium_stream_texture);
72 EXPECT_FALSE(info_->feature_flags().angle_translated_shader_source); 82 EXPECT_FALSE(info_->feature_flags().angle_translated_shader_source);
73 EXPECT_FALSE(info_->feature_flags().angle_pack_reverse_row_order); 83 EXPECT_FALSE(info_->feature_flags().angle_pack_reverse_row_order);
74 EXPECT_FALSE(info_->feature_flags().arb_texture_rectangle); 84 EXPECT_FALSE(info_->feature_flags().arb_texture_rectangle);
75 EXPECT_FALSE(info_->feature_flags().angle_instanced_arrays); 85 EXPECT_FALSE(info_->feature_flags().angle_instanced_arrays);
76 EXPECT_FALSE(info_->feature_flags().occlusion_query_boolean); 86 EXPECT_FALSE(info_->feature_flags().occlusion_query_boolean);
77 EXPECT_FALSE(info_->feature_flags( 87 EXPECT_FALSE(info_->feature_flags(
78 ).use_arb_occlusion_query2_for_occlusion_query_boolean); 88 ).use_arb_occlusion_query2_for_occlusion_query_boolean);
79 EXPECT_FALSE(info_->feature_flags( 89 EXPECT_FALSE(info_->feature_flags(
80 ).use_arb_occlusion_query_for_occlusion_query_boolean); 90 ).use_arb_occlusion_query_for_occlusion_query_boolean);
81 EXPECT_FALSE(info_->feature_flags().is_intel); 91 EXPECT_FALSE(info_->feature_flags().is_intel);
82 EXPECT_FALSE(info_->feature_flags().is_nvidia); 92 EXPECT_FALSE(info_->feature_flags().is_nvidia);
83 EXPECT_FALSE(info_->feature_flags().is_amd); 93 EXPECT_FALSE(info_->feature_flags().is_amd);
94
95 // Test good types.
96 {
97 static const GLenum kAlphaTypes[] = {
98 GL_UNSIGNED_BYTE,
99 };
100 static const GLenum kRGBTypes[] = {
101 GL_UNSIGNED_BYTE,
102 GL_UNSIGNED_SHORT_5_6_5,
103 };
104 static const GLenum kRGBATypes[] = {
105 GL_UNSIGNED_BYTE,
106 GL_UNSIGNED_SHORT_4_4_4_4,
107 GL_UNSIGNED_SHORT_5_5_5_1,
108 };
109 static const GLenum kLuminanceTypes[] = {
110 GL_UNSIGNED_BYTE,
111 };
112 static const GLenum kLuminanceAlphaTypes[] = {
113 GL_UNSIGNED_BYTE,
114 };
115 static const FormatInfo kFormatTypes[] = {
116 { GL_ALPHA, kAlphaTypes, arraysize(kAlphaTypes), },
117 { GL_RGB, kRGBTypes, arraysize(kRGBTypes), },
118 { GL_RGBA, kRGBATypes, arraysize(kRGBATypes), },
119 { GL_LUMINANCE, kLuminanceTypes, arraysize(kLuminanceTypes), },
120 { GL_LUMINANCE_ALPHA, kLuminanceAlphaTypes,
121 arraysize(kLuminanceAlphaTypes), } ,
122 };
123 for (size_t ii = 0; ii < arraysize(kFormatTypes); ++ii) {
124 const FormatInfo& info = kFormatTypes[ii];
125 const ValueValidator<GLenum>& validator =
126 info_->GetTextureFormatValidator(info.format);
127 for (size_t jj = 0; jj < info.count; ++jj) {
128 EXPECT_TRUE(validator.IsValid(info.types[jj]));
129 }
130 }
131 }
132
133 // Test some bad types
134 {
135 static const GLenum kAlphaTypes[] = {
136 GL_UNSIGNED_SHORT_5_5_5_1,
137 GL_FLOAT,
138 };
139 static const GLenum kRGBTypes[] = {
140 GL_UNSIGNED_SHORT_4_4_4_4,
141 GL_FLOAT,
142 };
143 static const GLenum kRGBATypes[] = {
144 GL_UNSIGNED_SHORT_5_6_5,
145 GL_FLOAT,
146 };
147 static const GLenum kLuminanceTypes[] = {
148 GL_UNSIGNED_SHORT_4_4_4_4,
149 GL_FLOAT,
150 };
151 static const GLenum kLuminanceAlphaTypes[] = {
152 GL_UNSIGNED_SHORT_5_5_5_1,
153 GL_FLOAT,
154 };
155 static const GLenum kBGRATypes[] = {
156 GL_UNSIGNED_BYTE,
157 GL_UNSIGNED_SHORT_5_6_5,
158 GL_FLOAT,
159 };
160 static const GLenum kDepthTypes[] = {
161 GL_UNSIGNED_BYTE,
162 GL_UNSIGNED_SHORT,
163 GL_UNSIGNED_INT,
164 GL_FLOAT,
165 };
166 static const FormatInfo kFormatTypes[] = {
167 { GL_ALPHA, kAlphaTypes, arraysize(kAlphaTypes), },
168 { GL_RGB, kRGBTypes, arraysize(kRGBTypes), },
169 { GL_RGBA, kRGBATypes, arraysize(kRGBATypes), },
170 { GL_LUMINANCE, kLuminanceTypes, arraysize(kLuminanceTypes), },
171 { GL_LUMINANCE_ALPHA, kLuminanceAlphaTypes,
172 arraysize(kLuminanceAlphaTypes), } ,
173 { GL_BGRA_EXT, kBGRATypes, arraysize(kBGRATypes), },
174 { GL_DEPTH_COMPONENT, kDepthTypes, arraysize(kDepthTypes), },
175 };
176 for (size_t ii = 0; ii < arraysize(kFormatTypes); ++ii) {
177 const FormatInfo& info = kFormatTypes[ii];
178 const ValueValidator<GLenum>& validator =
179 info_->GetTextureFormatValidator(info.format);
180 for (size_t jj = 0; jj < info.count; ++jj) {
181 EXPECT_FALSE(validator.IsValid(info.types[jj]));
182 }
183 }
184 }
84 } 185 }
85 186
86 TEST_F(FeatureInfoTest, InitializeNoExtensions) { 187 TEST_F(FeatureInfoTest, InitializeNoExtensions) {
87 SetupInitExpectations(""); 188 SetupInitExpectations("");
88 info_->Initialize(NULL); 189 info_->Initialize(NULL);
89 // Check default extensions are there 190 // Check default extensions are there
90 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_resource_safe")); 191 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_resource_safe"));
91 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_strict_attribs")); 192 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_strict_attribs"));
92 EXPECT_THAT(info_->extensions(), 193 EXPECT_THAT(info_->extensions(),
93 HasSubstr("GL_ANGLE_translated_shader_source")); 194 HasSubstr("GL_ANGLE_translated_shader_source"));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( 240 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid(
140 GL_DEPTH_STENCIL)); 241 GL_DEPTH_STENCIL));
141 EXPECT_FALSE(info_->validators()->texture_format.IsValid( 242 EXPECT_FALSE(info_->validators()->texture_format.IsValid(
142 GL_DEPTH_STENCIL)); 243 GL_DEPTH_STENCIL));
143 EXPECT_FALSE(info_->validators()->pixel_type.IsValid( 244 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(
144 GL_UNSIGNED_INT_24_8)); 245 GL_UNSIGNED_INT_24_8));
145 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid( 246 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid(
146 GL_DEPTH_COMPONENT24)); 247 GL_DEPTH_COMPONENT24));
147 EXPECT_FALSE(info_->validators()->texture_parameter.IsValid( 248 EXPECT_FALSE(info_->validators()->texture_parameter.IsValid(
148 GL_TEXTURE_USAGE_ANGLE)); 249 GL_TEXTURE_USAGE_ANGLE));
250 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
251 GL_DEPTH_COMPONENT16));
252 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
253 GL_DEPTH_COMPONENT32_OES));
254 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
255 GL_DEPTH24_STENCIL8_OES));
149 } 256 }
150 257
151 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGLES) { 258 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGLES) {
152 SetupInitExpectations("GL_OES_texture_npot"); 259 SetupInitExpectations("GL_OES_texture_npot");
153 info_->Initialize(NULL); 260 info_->Initialize(NULL);
154 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_npot")); 261 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_npot"));
155 EXPECT_TRUE(info_->feature_flags().npot_ok); 262 EXPECT_TRUE(info_->feature_flags().npot_ok);
156 } 263 }
157 264
158 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGL) { 265 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGL) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 305
199 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GLES2) { 306 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GLES2) {
200 SetupInitExpectations("GL_EXT_texture_format_BGRA8888"); 307 SetupInitExpectations("GL_EXT_texture_format_BGRA8888");
201 info_->Initialize(NULL); 308 info_->Initialize(NULL);
202 EXPECT_THAT(info_->extensions(), 309 EXPECT_THAT(info_->extensions(),
203 HasSubstr("GL_EXT_texture_format_BGRA8888")); 310 HasSubstr("GL_EXT_texture_format_BGRA8888"));
204 EXPECT_TRUE(info_->validators()->texture_format.IsValid( 311 EXPECT_TRUE(info_->validators()->texture_format.IsValid(
205 GL_BGRA_EXT)); 312 GL_BGRA_EXT));
206 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 313 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
207 GL_BGRA_EXT)); 314 GL_BGRA_EXT));
315 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid(
316 GL_UNSIGNED_BYTE));
208 } 317 }
209 318
210 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GL) { 319 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GL) {
211 SetupInitExpectations("GL_EXT_bgra"); 320 SetupInitExpectations("GL_EXT_bgra");
212 info_->Initialize(NULL); 321 info_->Initialize(NULL);
213 EXPECT_THAT(info_->extensions(), 322 EXPECT_THAT(info_->extensions(),
214 HasSubstr("GL_EXT_texture_format_BGRA8888")); 323 HasSubstr("GL_EXT_texture_format_BGRA8888"));
215 EXPECT_THAT(info_->extensions(), 324 EXPECT_THAT(info_->extensions(),
216 HasSubstr("GL_EXT_read_format_bgra")); 325 HasSubstr("GL_EXT_read_format_bgra"));
217 EXPECT_TRUE(info_->validators()->texture_format.IsValid( 326 EXPECT_TRUE(info_->validators()->texture_format.IsValid(
218 GL_BGRA_EXT)); 327 GL_BGRA_EXT));
219 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 328 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
220 GL_BGRA_EXT)); 329 GL_BGRA_EXT));
221 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( 330 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(
222 GL_BGRA_EXT)); 331 GL_BGRA_EXT));
332 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid(
333 GL_UNSIGNED_BYTE));
223 } 334 }
224 335
225 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888Apple) { 336 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888Apple) {
226 SetupInitExpectations("GL_APPLE_texture_format_BGRA8888"); 337 SetupInitExpectations("GL_APPLE_texture_format_BGRA8888");
227 info_->Initialize(NULL); 338 info_->Initialize(NULL);
228 EXPECT_THAT(info_->extensions(), 339 EXPECT_THAT(info_->extensions(),
229 HasSubstr("GL_EXT_texture_format_BGRA8888")); 340 HasSubstr("GL_EXT_texture_format_BGRA8888"));
230 EXPECT_TRUE(info_->validators()->texture_format.IsValid( 341 EXPECT_TRUE(info_->validators()->texture_format.IsValid(
231 GL_BGRA_EXT)); 342 GL_BGRA_EXT));
232 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 343 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
233 GL_BGRA_EXT)); 344 GL_BGRA_EXT));
345 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid(
346 GL_UNSIGNED_BYTE));
234 } 347 }
235 348
236 TEST_F(FeatureInfoTest, InitializeEXT_read_format_bgra) { 349 TEST_F(FeatureInfoTest, InitializeEXT_read_format_bgra) {
237 SetupInitExpectations("GL_EXT_read_format_bgra"); 350 SetupInitExpectations("GL_EXT_read_format_bgra");
238 info_->Initialize(NULL); 351 info_->Initialize(NULL);
239 EXPECT_THAT(info_->extensions(), 352 EXPECT_THAT(info_->extensions(),
240 HasSubstr("GL_EXT_read_format_bgra")); 353 HasSubstr("GL_EXT_read_format_bgra"));
241 EXPECT_FALSE(info_->validators()->texture_format.IsValid( 354 EXPECT_FALSE(info_->validators()->texture_format.IsValid(
242 GL_BGRA_EXT)); 355 GL_BGRA_EXT));
243 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( 356 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid(
244 GL_BGRA_EXT)); 357 GL_BGRA_EXT));
245 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( 358 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(
246 GL_BGRA_EXT)); 359 GL_BGRA_EXT));
247 } 360 }
248 361
249 TEST_F(FeatureInfoTest, InitializeOES_texture_floatGLES2) { 362 TEST_F(FeatureInfoTest, InitializeOES_texture_floatGLES2) {
250 SetupInitExpectations("GL_OES_texture_float"); 363 SetupInitExpectations("GL_OES_texture_float");
251 info_->Initialize(NULL); 364 info_->Initialize(NULL);
252 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); 365 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear);
253 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); 366 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear);
254 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float")); 367 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float"));
255 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float"))); 368 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float")));
256 EXPECT_THAT(info_->extensions(), 369 EXPECT_THAT(info_->extensions(),
257 Not(HasSubstr("GL_OES_texture_float_linear"))); 370 Not(HasSubstr("GL_OES_texture_float_linear")));
258 EXPECT_THAT(info_->extensions(), 371 EXPECT_THAT(info_->extensions(),
259 Not(HasSubstr("GL_OES_texture_half_float_linear"))); 372 Not(HasSubstr("GL_OES_texture_half_float_linear")));
260 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); 373 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT));
261 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); 374 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES));
375 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
376 GL_FLOAT));
377 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
378 GL_FLOAT));
379 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
380 GL_FLOAT));
381 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
382 GL_FLOAT));
383 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
384 GL_FLOAT));
385 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
386 GL_HALF_FLOAT_OES));
387 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
388 GL_HALF_FLOAT_OES));
389 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
390 GL_HALF_FLOAT_OES));
391 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
392 GL_HALF_FLOAT_OES));
393 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
394 GL_HALF_FLOAT_OES));
262 } 395 }
263 396
264 TEST_F(FeatureInfoTest, InitializeOES_texture_float_linearGLES2) { 397 TEST_F(FeatureInfoTest, InitializeOES_texture_float_linearGLES2) {
265 SetupInitExpectations("GL_OES_texture_float GL_OES_texture_float_linear"); 398 SetupInitExpectations("GL_OES_texture_float GL_OES_texture_float_linear");
266 info_->Initialize(NULL); 399 info_->Initialize(NULL);
267 EXPECT_TRUE(info_->feature_flags().enable_texture_float_linear); 400 EXPECT_TRUE(info_->feature_flags().enable_texture_float_linear);
268 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); 401 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear);
269 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float")); 402 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float"));
270 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float"))); 403 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float")));
271 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float_linear")); 404 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float_linear"));
272 EXPECT_THAT(info_->extensions(), 405 EXPECT_THAT(info_->extensions(),
273 Not(HasSubstr("GL_OES_texture_half_float_linear"))); 406 Not(HasSubstr("GL_OES_texture_half_float_linear")));
274 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); 407 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT));
275 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); 408 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES));
409 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
410 GL_FLOAT));
411 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
412 GL_FLOAT));
413 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
414 GL_FLOAT));
415 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
416 GL_FLOAT));
417 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
418 GL_FLOAT));
419 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
420 GL_HALF_FLOAT_OES));
421 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
422 GL_HALF_FLOAT_OES));
423 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
424 GL_HALF_FLOAT_OES));
425 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
426 GL_HALF_FLOAT_OES));
427 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
428 GL_HALF_FLOAT_OES));
276 } 429 }
277 430
278 TEST_F(FeatureInfoTest, InitializeOES_texture_half_floatGLES2) { 431 TEST_F(FeatureInfoTest, InitializeOES_texture_half_floatGLES2) {
279 SetupInitExpectations("GL_OES_texture_half_float"); 432 SetupInitExpectations("GL_OES_texture_half_float");
280 info_->Initialize(NULL); 433 info_->Initialize(NULL);
281 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); 434 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear);
282 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); 435 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear);
283 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float"))); 436 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float")));
284 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float")); 437 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float"));
285 EXPECT_THAT(info_->extensions(), 438 EXPECT_THAT(info_->extensions(),
286 Not(HasSubstr("GL_OES_texture_float_linear"))); 439 Not(HasSubstr("GL_OES_texture_float_linear")));
287 EXPECT_THAT(info_->extensions(), 440 EXPECT_THAT(info_->extensions(),
288 Not(HasSubstr("GL_OES_texture_half_float_linear"))); 441 Not(HasSubstr("GL_OES_texture_half_float_linear")));
289 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); 442 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT));
290 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); 443 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES));
444 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
445 GL_FLOAT));
446 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
447 GL_FLOAT));
448 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
449 GL_FLOAT));
450 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
451 GL_FLOAT));
452 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
453 GL_FLOAT));
454 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
455 GL_HALF_FLOAT_OES));
456 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
457 GL_HALF_FLOAT_OES));
458 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
459 GL_HALF_FLOAT_OES));
460 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
461 GL_HALF_FLOAT_OES));
462 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
463 GL_HALF_FLOAT_OES));
291 } 464 }
292 465
293 TEST_F(FeatureInfoTest, InitializeOES_texture_half_float_linearGLES2) { 466 TEST_F(FeatureInfoTest, InitializeOES_texture_half_float_linearGLES2) {
294 SetupInitExpectations( 467 SetupInitExpectations(
295 "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); 468 "GL_OES_texture_half_float GL_OES_texture_half_float_linear");
296 info_->Initialize(NULL); 469 info_->Initialize(NULL);
297 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); 470 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear);
298 EXPECT_TRUE(info_->feature_flags().enable_texture_half_float_linear); 471 EXPECT_TRUE(info_->feature_flags().enable_texture_half_float_linear);
299 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float"))); 472 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float")));
300 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float")); 473 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float"));
301 EXPECT_THAT(info_->extensions(), 474 EXPECT_THAT(info_->extensions(),
302 Not(HasSubstr("GL_OES_texture_float_linear"))); 475 Not(HasSubstr("GL_OES_texture_float_linear")));
303 EXPECT_THAT(info_->extensions(), 476 EXPECT_THAT(info_->extensions(),
304 HasSubstr("GL_OES_texture_half_float_linear")); 477 HasSubstr("GL_OES_texture_half_float_linear"));
305 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); 478 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT));
306 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); 479 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES));
480 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
481 GL_FLOAT));
482 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
483 GL_FLOAT));
484 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
485 GL_FLOAT));
486 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
487 GL_FLOAT));
488 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
489 GL_FLOAT));
490 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid(
491 GL_HALF_FLOAT_OES));
492 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGB).IsValid(
493 GL_HALF_FLOAT_OES));
494 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGBA).IsValid(
495 GL_HALF_FLOAT_OES));
496 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid(
497 GL_HALF_FLOAT_OES));
498 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid(
499 GL_HALF_FLOAT_OES));
307 } 500 }
308 501
309 TEST_F(FeatureInfoTest, InitializeEXT_framebuffer_multisample) { 502 TEST_F(FeatureInfoTest, InitializeEXT_framebuffer_multisample) {
310 SetupInitExpectations("GL_EXT_framebuffer_multisample"); 503 SetupInitExpectations("GL_EXT_framebuffer_multisample");
311 info_->Initialize(NULL); 504 info_->Initialize(NULL);
312 EXPECT_TRUE(info_->feature_flags().chromium_framebuffer_multisample); 505 EXPECT_TRUE(info_->feature_flags().chromium_framebuffer_multisample);
313 EXPECT_THAT(info_->extensions(), 506 EXPECT_THAT(info_->extensions(),
314 HasSubstr("GL_CHROMIUM_framebuffer_multisample")); 507 HasSubstr("GL_CHROMIUM_framebuffer_multisample"));
315 EXPECT_TRUE(info_->validators()->frame_buffer_target.IsValid( 508 EXPECT_TRUE(info_->validators()->frame_buffer_target.IsValid(
316 GL_READ_FRAMEBUFFER_EXT)); 509 GL_READ_FRAMEBUFFER_EXT));
(...skipping 16 matching lines...) Expand all
333 GL_TEXTURE_MAX_ANISOTROPY_EXT)); 526 GL_TEXTURE_MAX_ANISOTROPY_EXT));
334 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( 527 EXPECT_TRUE(info_->validators()->g_l_state.IsValid(
335 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)); 528 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT));
336 } 529 }
337 530
338 TEST_F(FeatureInfoTest, InitializeEXT_ARB_depth_texture) { 531 TEST_F(FeatureInfoTest, InitializeEXT_ARB_depth_texture) {
339 SetupInitExpectations("GL_ARB_depth_texture"); 532 SetupInitExpectations("GL_ARB_depth_texture");
340 info_->Initialize(NULL); 533 info_->Initialize(NULL);
341 EXPECT_THAT(info_->extensions(), 534 EXPECT_THAT(info_->extensions(),
342 HasSubstr("GL_GOOGLE_depth_texture")); 535 HasSubstr("GL_GOOGLE_depth_texture"));
536 EXPECT_THAT(info_->extensions(),
537 HasSubstr("GL_CHROMIUM_depth_texture"));
343 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 538 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
344 GL_DEPTH_COMPONENT)); 539 GL_DEPTH_COMPONENT));
345 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); 540 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT));
541 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL));
346 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); 542 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT));
347 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); 543 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT));
544 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
545 GL_UNSIGNED_SHORT));
546 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
547 GL_UNSIGNED_INT));
548 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid(
549 GL_UNSIGNED_INT_24_8));
348 } 550 }
349 551
350 TEST_F(FeatureInfoTest, InitializeOES_ARB_depth_texture) { 552 TEST_F(FeatureInfoTest, InitializeOES_ARB_depth_texture) {
351 SetupInitExpectations("GL_OES_depth_texture"); 553 SetupInitExpectations("GL_OES_depth_texture");
352 info_->Initialize(NULL); 554 info_->Initialize(NULL);
353 EXPECT_THAT(info_->extensions(), 555 EXPECT_THAT(info_->extensions(),
354 HasSubstr("GL_GOOGLE_depth_texture")); 556 HasSubstr("GL_GOOGLE_depth_texture"));
557 EXPECT_THAT(info_->extensions(),
558 HasSubstr("GL_CHROMIUM_depth_texture"));
355 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 559 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
356 GL_DEPTH_COMPONENT)); 560 GL_DEPTH_COMPONENT));
357 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); 561 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT));
562 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL));
358 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); 563 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT));
359 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); 564 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT));
565 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
566 GL_UNSIGNED_SHORT));
567 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
568 GL_UNSIGNED_INT));
569 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid(
570 GL_UNSIGNED_INT_24_8));
571 }
572
573 TEST_F(FeatureInfoTest, InitializeANGLE_depth_texture) {
574 SetupInitExpectations("GL_ANGLE_depth_texture");
575 info_->Initialize(NULL);
576 EXPECT_THAT(info_->extensions(),
577 HasSubstr("GL_GOOGLE_depth_texture"));
578 EXPECT_THAT(info_->extensions(),
579 HasSubstr("GL_CHROMIUM_depth_texture"));
580 EXPECT_THAT(info_->extensions(),
581 Not(HasSubstr("GL_ANGLE_depth_texture")));
582 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
583 GL_DEPTH_COMPONENT));
584 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT));
585 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL));
586 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT));
587 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT));
588 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
589 GL_DEPTH_COMPONENT16));
590 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
591 GL_DEPTH_COMPONENT32_OES));
592 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
593 GL_DEPTH24_STENCIL8_OES));
594 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
595 GL_UNSIGNED_SHORT));
596 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
597 GL_UNSIGNED_INT));
598 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid(
599 GL_UNSIGNED_INT_24_8));
360 } 600 }
361 601
362 TEST_F(FeatureInfoTest, InitializeEXT_packed_depth_stencil) { 602 TEST_F(FeatureInfoTest, InitializeEXT_packed_depth_stencil) {
363 SetupInitExpectations("GL_EXT_packed_depth_stencil"); 603 SetupInitExpectations("GL_EXT_packed_depth_stencil");
364 info_->Initialize(NULL); 604 info_->Initialize(NULL);
365 EXPECT_THAT(info_->extensions(), 605 EXPECT_THAT(info_->extensions(),
366 HasSubstr("GL_OES_packed_depth_stencil")); 606 HasSubstr("GL_OES_packed_depth_stencil"));
367 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( 607 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(
368 GL_DEPTH24_STENCIL8)); 608 GL_DEPTH24_STENCIL8));
369 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( 609 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid(
(...skipping 24 matching lines...) Expand all
394 EXPECT_THAT(info_->extensions(), 634 EXPECT_THAT(info_->extensions(),
395 HasSubstr("GL_OES_packed_depth_stencil")); 635 HasSubstr("GL_OES_packed_depth_stencil"));
396 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( 636 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(
397 GL_DEPTH24_STENCIL8)); 637 GL_DEPTH24_STENCIL8));
398 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 638 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
399 GL_DEPTH_STENCIL)); 639 GL_DEPTH_STENCIL));
400 EXPECT_TRUE(info_->validators()->texture_format.IsValid( 640 EXPECT_TRUE(info_->validators()->texture_format.IsValid(
401 GL_DEPTH_STENCIL)); 641 GL_DEPTH_STENCIL));
402 EXPECT_TRUE(info_->validators()->pixel_type.IsValid( 642 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(
403 GL_UNSIGNED_INT_24_8)); 643 GL_UNSIGNED_INT_24_8));
644 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
645 GL_UNSIGNED_SHORT));
646 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid(
647 GL_UNSIGNED_INT));
648 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid(
649 GL_UNSIGNED_INT_24_8));
404 } 650 }
405 651
406 TEST_F(FeatureInfoTest, InitializeOES_depth24) { 652 TEST_F(FeatureInfoTest, InitializeOES_depth24) {
407 SetupInitExpectations("GL_OES_depth24"); 653 SetupInitExpectations("GL_OES_depth24");
408 info_->Initialize(NULL); 654 info_->Initialize(NULL);
409 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_depth24")); 655 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_depth24"));
410 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( 656 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(
411 GL_DEPTH_COMPONENT24)); 657 GL_DEPTH_COMPONENT24));
412 } 658 }
413 659
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 EXPECT_FALSE(feature_info->feature_flags().is_intel); 804 EXPECT_FALSE(feature_info->feature_flags().is_intel);
559 EXPECT_FALSE(feature_info->feature_flags().is_nvidia); 805 EXPECT_FALSE(feature_info->feature_flags().is_nvidia);
560 EXPECT_TRUE(feature_info->feature_flags().is_amd); 806 EXPECT_TRUE(feature_info->feature_flags().is_amd);
561 } 807 }
562 808
563 } // namespace gles2 809 } // namespace gles2
564 } // namespace gpu 810 } // namespace gpu
565 811
566 812
567 813
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/feature_info.cc ('k') | gpu/command_buffer/service/gl_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698