| OLD | NEW |
| 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/texture_manager.h" | 5 #include "gpu/command_buffer/service/texture_manager.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 | 74 |
| 75 ~TextureManagerTest() override {} | 75 ~TextureManagerTest() override {} |
| 76 | 76 |
| 77 protected: | 77 protected: |
| 78 void SetUp() override { | 78 void SetUp() override { |
| 79 GpuServiceTest::SetUp(); | 79 GpuServiceTest::SetUp(); |
| 80 manager_.reset(new TextureManager( | 80 manager_.reset(new TextureManager( |
| 81 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize, | 81 NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize, |
| 82 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, | 82 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers, |
| 83 kUseDefaultTextures, nullptr)); | 83 kUseDefaultTextures, nullptr)); |
| 84 SetupFeatureInfo("", "OpenGL ES 2.0", false); | 84 SetupFeatureInfo("", "OpenGL ES 2.0", CONTEXT_TYPE_OPENGLES2); |
| 85 TestHelper::SetupTextureManagerInitExpectations( | 85 TestHelper::SetupTextureManagerInitExpectations( |
| 86 gl_.get(), false, false, false, "", kUseDefaultTextures); | 86 gl_.get(), false, false, false, "", kUseDefaultTextures); |
| 87 manager_->Initialize(); | 87 manager_->Initialize(); |
| 88 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); | 88 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); |
| 89 } | 89 } |
| 90 | 90 |
| 91 void TearDown() override { | 91 void TearDown() override { |
| 92 manager_->Destroy(false); | 92 manager_->Destroy(false); |
| 93 manager_.reset(); | 93 manager_.reset(); |
| 94 GpuServiceTest::TearDown(); | 94 GpuServiceTest::TearDown(); |
| 95 } | 95 } |
| 96 | 96 |
| 97 void SetParameter( | 97 void SetParameter( |
| 98 TextureRef* texture_ref, GLenum pname, GLint value, GLenum error) { | 98 TextureRef* texture_ref, GLenum pname, GLint value, GLenum error) { |
| 99 TestHelper::SetTexParameteriWithExpectations( | 99 TestHelper::SetTexParameteriWithExpectations( |
| 100 gl_.get(), error_state_.get(), manager_.get(), | 100 gl_.get(), error_state_.get(), manager_.get(), |
| 101 texture_ref, pname, value, error); | 101 texture_ref, pname, value, error); |
| 102 } | 102 } |
| 103 | 103 |
| 104 void SetupFeatureInfo(const char* gl_extensions, | 104 void SetupFeatureInfo(const char* gl_extensions, |
| 105 const char* gl_version, | 105 const char* gl_version, |
| 106 bool enable_es3) { | 106 ContextType context_type) { |
| 107 ContextType context_type = | |
| 108 enable_es3 ? CONTEXT_TYPE_OPENGLES3 : CONTEXT_TYPE_OPENGLES2; | |
| 109 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( | 107 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
| 110 gl_.get(), gl_extensions, "", gl_version, context_type); | 108 gl_.get(), gl_extensions, "", gl_version, context_type); |
| 111 feature_info_->InitializeForTesting(context_type); | 109 feature_info_->InitializeForTesting(context_type); |
| 112 ASSERT_TRUE(feature_info_->context_type() == context_type); | 110 ASSERT_TRUE(feature_info_->context_type() == context_type); |
| 113 if (feature_info_->IsWebGL2OrES3Context()) { | 111 if (feature_info_->IsWebGL2OrES3Context()) { |
| 114 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS, _)) | 112 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS, _)) |
| 115 .WillOnce(SetArgPointee<1>(8)) | 113 .WillOnce(SetArgPointee<1>(8)) |
| 116 .RetiresOnSaturation(); | 114 .RetiresOnSaturation(); |
| 117 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_DRAW_BUFFERS, _)) | 115 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_DRAW_BUFFERS, _)) |
| 118 .WillOnce(SetArgPointee<1>(8)) | 116 .WillOnce(SetArgPointee<1>(8)) |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) == NULL); | 266 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) == NULL); |
| 269 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) == NULL); | 267 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) == NULL); |
| 270 | 268 |
| 271 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. | 269 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. |
| 272 | 270 |
| 273 manager.Destroy(false); | 271 manager.Destroy(false); |
| 274 } | 272 } |
| 275 | 273 |
| 276 TEST_F(TextureManagerTest, UseDefaultTexturesTrueES3) { | 274 TEST_F(TextureManagerTest, UseDefaultTexturesTrueES3) { |
| 277 bool use_default_textures = true; | 275 bool use_default_textures = true; |
| 278 SetupFeatureInfo("", "OpenGL ES 3.0", true); | 276 SetupFeatureInfo("", "OpenGL ES 3.0", CONTEXT_TYPE_OPENGLES3); |
| 279 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), | 277 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), |
| 280 true, true, false, "", use_default_textures); | 278 true, true, false, "", use_default_textures); |
| 281 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, | 279 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, |
| 282 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, | 280 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, |
| 283 kMax3DTextureSize, kMaxArrayTextureLayers, | 281 kMax3DTextureSize, kMaxArrayTextureLayers, |
| 284 use_default_textures, nullptr); | 282 use_default_textures, nullptr); |
| 285 manager.Initialize(); | 283 manager.Initialize(); |
| 286 | 284 |
| 287 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) != NULL); | 285 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) != NULL); |
| 288 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) != NULL); | 286 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) != NULL); |
| 289 | 287 |
| 290 manager.Destroy(false); | 288 manager.Destroy(false); |
| 291 } | 289 } |
| 292 | 290 |
| 293 TEST_F(TextureManagerTest, UseDefaultTexturesFalseES3) { | 291 TEST_F(TextureManagerTest, UseDefaultTexturesFalseES3) { |
| 294 bool use_default_textures = false; | 292 bool use_default_textures = false; |
| 295 SetupFeatureInfo("", "OpenGL ES 3.0", true); | 293 SetupFeatureInfo("", "OpenGL ES 3.0", CONTEXT_TYPE_OPENGLES3); |
| 296 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), | 294 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), |
| 297 true, true, false, "", use_default_textures); | 295 true, true, false, "", use_default_textures); |
| 298 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, | 296 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, |
| 299 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, | 297 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, |
| 300 kMax3DTextureSize, kMaxArrayTextureLayers, | 298 kMax3DTextureSize, kMaxArrayTextureLayers, |
| 301 use_default_textures, nullptr); | 299 use_default_textures, nullptr); |
| 302 manager.Initialize(); | 300 manager.Initialize(); |
| 303 | 301 |
| 304 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) == NULL); | 302 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) == NULL); |
| 305 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) == NULL); | 303 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) == NULL); |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1)); | 501 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1)); |
| 504 // Check NPOT height on level 1 | 502 // Check NPOT height on level 1 |
| 505 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1)); | 503 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1)); |
| 506 manager.Destroy(false); | 504 manager.Destroy(false); |
| 507 } | 505 } |
| 508 | 506 |
| 509 TEST_F(TextureManagerTest, AlphaLuminanceCompatibilityProfile) { | 507 TEST_F(TextureManagerTest, AlphaLuminanceCompatibilityProfile) { |
| 510 const GLuint kClientId = 1; | 508 const GLuint kClientId = 1; |
| 511 const GLuint kServiceId = 11; | 509 const GLuint kServiceId = 11; |
| 512 | 510 |
| 513 SetupFeatureInfo("", "2.1", false); | 511 SetupFeatureInfo("", "2.1", CONTEXT_TYPE_OPENGLES2); |
| 514 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), false, false, | 512 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), false, false, |
| 515 false, "", kUseDefaultTextures); | 513 false, "", kUseDefaultTextures); |
| 516 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, | 514 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, |
| 517 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, | 515 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, |
| 518 kMax3DTextureSize, kMaxArrayTextureLayers, | 516 kMax3DTextureSize, kMaxArrayTextureLayers, |
| 519 kUseDefaultTextures, nullptr); | 517 kUseDefaultTextures, nullptr); |
| 520 manager.Initialize(); | 518 manager.Initialize(); |
| 521 | 519 |
| 522 // Create a texture. | 520 // Create a texture. |
| 523 manager.CreateTexture(kClientId, kServiceId); | 521 manager.CreateTexture(kClientId, kServiceId); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 544 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kServiceId))) | 542 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kServiceId))) |
| 545 .Times(1) | 543 .Times(1) |
| 546 .RetiresOnSaturation(); | 544 .RetiresOnSaturation(); |
| 547 manager.RemoveTexture(kClientId); | 545 manager.RemoveTexture(kClientId); |
| 548 } | 546 } |
| 549 | 547 |
| 550 TEST_F(TextureManagerTest, AlphaLuminanceCoreProfileEmulation) { | 548 TEST_F(TextureManagerTest, AlphaLuminanceCoreProfileEmulation) { |
| 551 const GLuint kClientId = 1; | 549 const GLuint kClientId = 1; |
| 552 const GLuint kServiceId = 11; | 550 const GLuint kServiceId = 11; |
| 553 | 551 |
| 554 SetupFeatureInfo("", "4.2", true); | 552 SetupFeatureInfo("", "4.2", CONTEXT_TYPE_OPENGLES3); |
| 555 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), true, true, true, | 553 TestHelper::SetupTextureManagerInitExpectations(gl_.get(), true, true, true, |
| 556 "", kUseDefaultTextures); | 554 "", kUseDefaultTextures); |
| 557 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, | 555 TextureManager manager(nullptr, feature_info_.get(), kMaxTextureSize, |
| 558 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, | 556 kMaxCubeMapTextureSize, kMaxRectangleTextureSize, |
| 559 kMax3DTextureSize, kMaxArrayTextureLayers, | 557 kMax3DTextureSize, kMaxArrayTextureLayers, |
| 560 kUseDefaultTextures, nullptr); | 558 kUseDefaultTextures, nullptr); |
| 561 manager.Initialize(); | 559 manager.Initialize(); |
| 562 | 560 |
| 563 // Create a texture. | 561 // Create a texture. |
| 564 manager.CreateTexture(kClientId, kServiceId); | 562 manager.CreateTexture(kClientId, kServiceId); |
| (...skipping 1605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2170 kUseDefaultTextures, nullptr)); | 2168 kUseDefaultTextures, nullptr)); |
| 2171 memory_tracker2_ = new CountingMemoryTracker; | 2169 memory_tracker2_ = new CountingMemoryTracker; |
| 2172 texture_manager2_.reset( | 2170 texture_manager2_.reset( |
| 2173 new TextureManager(memory_tracker2_.get(), feature_info_.get(), | 2171 new TextureManager(memory_tracker2_.get(), feature_info_.get(), |
| 2174 TextureManagerTest::kMaxTextureSize, | 2172 TextureManagerTest::kMaxTextureSize, |
| 2175 TextureManagerTest::kMaxCubeMapTextureSize, | 2173 TextureManagerTest::kMaxCubeMapTextureSize, |
| 2176 TextureManagerTest::kMaxRectangleTextureSize, | 2174 TextureManagerTest::kMaxRectangleTextureSize, |
| 2177 TextureManagerTest::kMax3DTextureSize, | 2175 TextureManagerTest::kMax3DTextureSize, |
| 2178 TextureManagerTest::kMaxArrayTextureLayers, | 2176 TextureManagerTest::kMaxArrayTextureLayers, |
| 2179 kUseDefaultTextures, nullptr)); | 2177 kUseDefaultTextures, nullptr)); |
| 2180 SetupFeatureInfo("", "OpenGL ES 2.0", false); | 2178 SetupFeatureInfo("", "OpenGL ES 2.0", CONTEXT_TYPE_OPENGLES2); |
| 2181 TestHelper::SetupTextureManagerInitExpectations( | 2179 TestHelper::SetupTextureManagerInitExpectations( |
| 2182 gl_.get(), false, false, false, "", kUseDefaultTextures); | 2180 gl_.get(), false, false, false, "", kUseDefaultTextures); |
| 2183 texture_manager1_->Initialize(); | 2181 texture_manager1_->Initialize(); |
| 2184 TestHelper::SetupTextureManagerInitExpectations( | 2182 TestHelper::SetupTextureManagerInitExpectations( |
| 2185 gl_.get(), false, false, false, "", kUseDefaultTextures); | 2183 gl_.get(), false, false, false, "", kUseDefaultTextures); |
| 2186 texture_manager2_->Initialize(); | 2184 texture_manager2_->Initialize(); |
| 2187 } | 2185 } |
| 2188 | 2186 |
| 2189 void TearDown() override { | 2187 void TearDown() override { |
| 2190 texture_manager2_->Destroy(false); | 2188 texture_manager2_->Destroy(false); |
| 2191 texture_manager2_.reset(); | 2189 texture_manager2_.reset(); |
| 2192 texture_manager1_->Destroy(false); | 2190 texture_manager1_->Destroy(false); |
| 2193 texture_manager1_.reset(); | 2191 texture_manager1_.reset(); |
| 2194 GpuServiceTest::TearDown(); | 2192 GpuServiceTest::TearDown(); |
| 2195 } | 2193 } |
| 2196 | 2194 |
| 2197 protected: | 2195 protected: |
| 2198 void SetupFeatureInfo(const char* gl_extensions, | 2196 void SetupFeatureInfo(const char* gl_extensions, |
| 2199 const char* gl_version, | 2197 const char* gl_version, |
| 2200 bool enable_es3) { | 2198 ContextType context_type) { |
| 2201 ContextType context_type = | |
| 2202 enable_es3 ? CONTEXT_TYPE_OPENGLES3 : CONTEXT_TYPE_OPENGLES2; | |
| 2203 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( | 2199 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
| 2204 gl_.get(), gl_extensions, "", gl_version, context_type); | 2200 gl_.get(), gl_extensions, "", gl_version, context_type); |
| 2205 feature_info_->InitializeForTesting(context_type); | 2201 feature_info_->InitializeForTesting(context_type); |
| 2206 ASSERT_TRUE(feature_info_->context_type() == context_type); | 2202 ASSERT_TRUE(feature_info_->context_type() == context_type); |
| 2207 if (feature_info_->IsWebGL2OrES3Context()) { | 2203 if (feature_info_->IsWebGL2OrES3Context()) { |
| 2208 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS, _)) | 2204 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS, _)) |
| 2209 .WillOnce(SetArgPointee<1>(8)) | 2205 .WillOnce(SetArgPointee<1>(8)) |
| 2210 .RetiresOnSaturation(); | 2206 .RetiresOnSaturation(); |
| 2211 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_DRAW_BUFFERS, _)) | 2207 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_DRAW_BUFFERS, _)) |
| 2212 .WillOnce(SetArgPointee<1>(8)) | 2208 .WillOnce(SetArgPointee<1>(8)) |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2467 SetGLErrorInvalidEnum(_, _, _, _, _)) | 2463 SetGLErrorInvalidEnum(_, _, _, _, _)) |
| 2468 .Times(1) | 2464 .Times(1) |
| 2469 .RetiresOnSaturation(); | 2465 .RetiresOnSaturation(); |
| 2470 EXPECT_FALSE(manager_->ValidateTextureParameters( | 2466 EXPECT_FALSE(manager_->ValidateTextureParameters( |
| 2471 error_state_.get(), "", tex_image_call, | 2467 error_state_.get(), "", tex_image_call, |
| 2472 format, type, internal_format, 0)); | 2468 format, type, internal_format, 0)); |
| 2473 } | 2469 } |
| 2474 }; | 2470 }; |
| 2475 | 2471 |
| 2476 TEST_F(TextureFormatTypeValidationTest, ES2Basic) { | 2472 TEST_F(TextureFormatTypeValidationTest, ES2Basic) { |
| 2477 SetupFeatureInfo("", "OpenGL ES 2.0", false); | 2473 SetupFeatureInfo("", "OpenGL ES 2.0", CONTEXT_TYPE_OPENGLES2); |
| 2478 | 2474 |
| 2479 ExpectValid(true, GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); | 2475 ExpectValid(true, GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); |
| 2480 ExpectValid(true, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB); | 2476 ExpectValid(true, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB); |
| 2481 ExpectValid(true, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA); | 2477 ExpectValid(true, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA); |
| 2482 ExpectValid(true, GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE); | 2478 ExpectValid(true, GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE); |
| 2483 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA); | 2479 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA); |
| 2484 | 2480 |
| 2485 ExpectInvalid(true, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); | 2481 ExpectInvalid(true, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); |
| 2486 | 2482 |
| 2487 // float / half_float. | 2483 // float / half_float. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 2500 // SRGB | 2496 // SRGB |
| 2501 ExpectInvalidEnum(true, GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT); | 2497 ExpectInvalidEnum(true, GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT); |
| 2502 ExpectInvalidEnum( | 2498 ExpectInvalidEnum( |
| 2503 true, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT); | 2499 true, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT); |
| 2504 | 2500 |
| 2505 // ES3 | 2501 // ES3 |
| 2506 ExpectInvalid(true, GL_RGB, GL_UNSIGNED_BYTE, GL_RGB8); | 2502 ExpectInvalid(true, GL_RGB, GL_UNSIGNED_BYTE, GL_RGB8); |
| 2507 } | 2503 } |
| 2508 | 2504 |
| 2509 TEST_F(TextureFormatTypeValidationTest, ES2WithExtTextureFormatBGRA8888) { | 2505 TEST_F(TextureFormatTypeValidationTest, ES2WithExtTextureFormatBGRA8888) { |
| 2510 SetupFeatureInfo("GL_EXT_texture_format_BGRA8888", "OpenGL ES 2.0", false); | 2506 SetupFeatureInfo("GL_EXT_texture_format_BGRA8888", "OpenGL ES 2.0", |
| 2507 CONTEXT_TYPE_OPENGLES2); |
| 2511 | 2508 |
| 2512 ExpectValid(true, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT); | 2509 ExpectValid(true, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT); |
| 2513 } | 2510 } |
| 2514 | 2511 |
| 2515 TEST_F(TextureFormatTypeValidationTest, ES2WithAppleTextureFormatBGRA8888) { | 2512 TEST_F(TextureFormatTypeValidationTest, ES2WithAppleTextureFormatBGRA8888) { |
| 2516 SetupFeatureInfo("GL_APPLE_texture_format_BGRA8888", "OpenGL ES 2.0", false); | 2513 SetupFeatureInfo("GL_APPLE_texture_format_BGRA8888", "OpenGL ES 2.0", |
| 2514 CONTEXT_TYPE_OPENGLES2); |
| 2517 | 2515 |
| 2518 ExpectValid(true, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT); | 2516 ExpectValid(true, GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT); |
| 2519 } | 2517 } |
| 2520 | 2518 |
| 2521 TEST_F(TextureFormatTypeValidationTest, ES2WithArbDepth) { | 2519 TEST_F(TextureFormatTypeValidationTest, ES2WithArbDepth) { |
| 2522 SetupFeatureInfo("GL_ARB_depth_texture", "OpenGL ES 2.0", false); | 2520 SetupFeatureInfo("GL_ARB_depth_texture", "OpenGL ES 2.0", |
| 2521 CONTEXT_TYPE_OPENGLES2); |
| 2523 | 2522 |
| 2524 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); | 2523 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); |
| 2525 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); | 2524 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); |
| 2526 ExpectInvalidEnum( | 2525 ExpectInvalidEnum( |
| 2527 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); | 2526 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); |
| 2528 } | 2527 } |
| 2529 | 2528 |
| 2530 TEST_F(TextureFormatTypeValidationTest, ES2WithOesDepth) { | 2529 TEST_F(TextureFormatTypeValidationTest, ES2WithOesDepth) { |
| 2531 SetupFeatureInfo("GL_OES_depth_texture", "OpenGL ES 2.0", false); | 2530 SetupFeatureInfo("GL_OES_depth_texture", "OpenGL ES 2.0", |
| 2531 CONTEXT_TYPE_OPENGLES2); |
| 2532 | 2532 |
| 2533 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); | 2533 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); |
| 2534 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); | 2534 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); |
| 2535 ExpectInvalidEnum( | 2535 ExpectInvalidEnum( |
| 2536 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); | 2536 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); |
| 2537 } | 2537 } |
| 2538 | 2538 |
| 2539 TEST_F(TextureFormatTypeValidationTest, ES2WithAngleDepth) { | 2539 TEST_F(TextureFormatTypeValidationTest, ES2WithAngleDepth) { |
| 2540 SetupFeatureInfo("GL_ANGLE_depth_texture", "OpenGL ES 2.0", false); | 2540 SetupFeatureInfo("GL_ANGLE_depth_texture", "OpenGL ES 2.0", |
| 2541 CONTEXT_TYPE_OPENGLES2); |
| 2541 | 2542 |
| 2542 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); | 2543 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); |
| 2543 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); | 2544 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); |
| 2544 ExpectInvalidEnum( | 2545 ExpectInvalidEnum( |
| 2545 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); | 2546 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); |
| 2546 } | 2547 } |
| 2547 | 2548 |
| 2548 TEST_F(TextureFormatTypeValidationTest, ES2WithExtPackedDepthStencil) { | 2549 TEST_F(TextureFormatTypeValidationTest, ES2WithExtPackedDepthStencil) { |
| 2549 SetupFeatureInfo( | 2550 SetupFeatureInfo("GL_EXT_packed_depth_stencil GL_ARB_depth_texture", |
| 2550 "GL_EXT_packed_depth_stencil GL_ARB_depth_texture", | 2551 "OpenGL ES 2.0", CONTEXT_TYPE_OPENGLES2); |
| 2551 "OpenGL ES 2.0", | |
| 2552 false); | |
| 2553 | 2552 |
| 2554 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); | 2553 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); |
| 2555 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); | 2554 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); |
| 2556 ExpectValid(true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); | 2555 ExpectValid(true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); |
| 2557 } | 2556 } |
| 2558 | 2557 |
| 2559 TEST_F(TextureFormatTypeValidationTest, ES2WithRGWithFloat) { | 2558 TEST_F(TextureFormatTypeValidationTest, ES2WithRGWithFloat) { |
| 2560 SetupFeatureInfo( | 2559 SetupFeatureInfo( |
| 2561 "GL_EXT_texture_rg GL_OES_texture_float GL_OES_texture_half_float", | 2560 "GL_EXT_texture_rg GL_OES_texture_float GL_OES_texture_half_float", |
| 2562 "OpenGL ES 2.0", | 2561 "OpenGL ES 2.0", CONTEXT_TYPE_OPENGLES2); |
| 2563 false); | |
| 2564 | 2562 |
| 2565 ExpectValid(true, GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT); | 2563 ExpectValid(true, GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT); |
| 2566 ExpectValid(true, GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT); | 2564 ExpectValid(true, GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT); |
| 2567 ExpectValid(true, GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT); | 2565 ExpectValid(true, GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT); |
| 2568 ExpectValid(true, GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT); | 2566 ExpectValid(true, GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT); |
| 2569 | 2567 |
| 2570 ExpectInvalidEnum(true, GL_RED_EXT, GL_BYTE, GL_RED_EXT); | 2568 ExpectInvalidEnum(true, GL_RED_EXT, GL_BYTE, GL_RED_EXT); |
| 2571 ExpectInvalidEnum(true, GL_RG_EXT, GL_BYTE, GL_RG_EXT); | 2569 ExpectInvalidEnum(true, GL_RG_EXT, GL_BYTE, GL_RG_EXT); |
| 2572 ExpectInvalidEnum(true, GL_RED_EXT, GL_SHORT, GL_RED_EXT); | 2570 ExpectInvalidEnum(true, GL_RED_EXT, GL_SHORT, GL_RED_EXT); |
| 2573 ExpectInvalidEnum(true, GL_RG_EXT, GL_SHORT, GL_RG_EXT); | 2571 ExpectInvalidEnum(true, GL_RG_EXT, GL_SHORT, GL_RG_EXT); |
| 2574 } | 2572 } |
| 2575 | 2573 |
| 2576 TEST_F(TextureFormatTypeValidationTest, ES2WithRGNoFloat) { | 2574 TEST_F(TextureFormatTypeValidationTest, ES2WithRGNoFloat) { |
| 2577 SetupFeatureInfo("GL_ARB_texture_rg", "OpenGL ES 2.0", false); | 2575 SetupFeatureInfo("GL_ARB_texture_rg", "OpenGL ES 2.0", |
| 2576 CONTEXT_TYPE_OPENGLES2); |
| 2578 | 2577 |
| 2579 ExpectValid(true, GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT); | 2578 ExpectValid(true, GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT); |
| 2580 ExpectValid(true, GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT); | 2579 ExpectValid(true, GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT); |
| 2581 | 2580 |
| 2582 ExpectInvalidEnum(true, GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT); | 2581 ExpectInvalidEnum(true, GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT); |
| 2583 ExpectInvalidEnum(true, GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT); | 2582 ExpectInvalidEnum(true, GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT); |
| 2584 } | 2583 } |
| 2585 | 2584 |
| 2586 TEST_F(TextureFormatTypeValidationTest, ES2OnTopOfES3) { | 2585 TEST_F(TextureFormatTypeValidationTest, ES2OnTopOfES3) { |
| 2587 SetupFeatureInfo("", "OpenGL ES 3.0", false); | 2586 SetupFeatureInfo("", "OpenGL ES 3.0", CONTEXT_TYPE_OPENGLES2); |
| 2588 | 2587 |
| 2589 ExpectInvalidEnum(true, GL_RGB, GL_FLOAT, GL_RGB); | 2588 ExpectInvalidEnum(true, GL_RGB, GL_FLOAT, GL_RGB); |
| 2590 ExpectInvalidEnum(true, GL_RGBA, GL_FLOAT, GL_RGBA); | 2589 ExpectInvalidEnum(true, GL_RGBA, GL_FLOAT, GL_RGBA); |
| 2591 ExpectInvalidEnum(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); | 2590 ExpectInvalidEnum(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); |
| 2592 ExpectInvalidEnum(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); | 2591 ExpectInvalidEnum(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); |
| 2593 ExpectInvalidEnum(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); | 2592 ExpectInvalidEnum(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); |
| 2594 | 2593 |
| 2595 ExpectInvalidEnum(true, GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT); | 2594 ExpectInvalidEnum(true, GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT); |
| 2596 ExpectInvalidEnum( | 2595 ExpectInvalidEnum( |
| 2597 true, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT); | 2596 true, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT); |
| 2598 } | 2597 } |
| 2599 | 2598 |
| 2600 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloat) { | 2599 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloat) { |
| 2601 SetupFeatureInfo("GL_OES_texture_float", "OpenGL ES 2.0", false); | 2600 SetupFeatureInfo("GL_OES_texture_float", "OpenGL ES 2.0", |
| 2601 CONTEXT_TYPE_OPENGLES2); |
| 2602 | 2602 |
| 2603 ExpectValid(true, GL_RGB, GL_FLOAT, GL_RGB); | 2603 ExpectValid(true, GL_RGB, GL_FLOAT, GL_RGB); |
| 2604 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA); | 2604 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA); |
| 2605 ExpectValid(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); | 2605 ExpectValid(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); |
| 2606 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); | 2606 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); |
| 2607 ExpectValid(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); | 2607 ExpectValid(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); |
| 2608 | 2608 |
| 2609 ExpectInvalidEnum(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); | 2609 ExpectInvalidEnum(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); |
| 2610 ExpectInvalidEnum(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); | 2610 ExpectInvalidEnum(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); |
| 2611 ExpectInvalidEnum(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); | 2611 ExpectInvalidEnum(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); |
| 2612 ExpectInvalidEnum( | 2612 ExpectInvalidEnum( |
| 2613 true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); | 2613 true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); |
| 2614 ExpectInvalidEnum(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); | 2614 ExpectInvalidEnum(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); |
| 2615 } | 2615 } |
| 2616 | 2616 |
| 2617 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloatLinear) { | 2617 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloatLinear) { |
| 2618 SetupFeatureInfo( | 2618 SetupFeatureInfo("GL_OES_texture_float GL_OES_texture_float_linear", |
| 2619 "GL_OES_texture_float GL_OES_texture_float_linear", | 2619 "OpenGL ES 2.0", CONTEXT_TYPE_OPENGLES2); |
| 2620 "OpenGL ES 2.0", | |
| 2621 false); | |
| 2622 | 2620 |
| 2623 ExpectValid(true, GL_RGB, GL_FLOAT, GL_RGB); | 2621 ExpectValid(true, GL_RGB, GL_FLOAT, GL_RGB); |
| 2624 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA); | 2622 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA); |
| 2625 ExpectValid(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); | 2623 ExpectValid(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); |
| 2626 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); | 2624 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); |
| 2627 ExpectValid(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); | 2625 ExpectValid(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); |
| 2628 | 2626 |
| 2629 ExpectInvalidEnum(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); | 2627 ExpectInvalidEnum(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); |
| 2630 ExpectInvalidEnum(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); | 2628 ExpectInvalidEnum(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); |
| 2631 ExpectInvalidEnum(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); | 2629 ExpectInvalidEnum(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); |
| 2632 ExpectInvalidEnum( | 2630 ExpectInvalidEnum( |
| 2633 true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); | 2631 true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); |
| 2634 ExpectInvalidEnum(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); | 2632 ExpectInvalidEnum(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); |
| 2635 } | 2633 } |
| 2636 | 2634 |
| 2637 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloat) { | 2635 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloat) { |
| 2638 SetupFeatureInfo("GL_OES_texture_half_float", "OpenGL ES 2.0", false); | 2636 SetupFeatureInfo("GL_OES_texture_half_float", "OpenGL ES 2.0", |
| 2637 CONTEXT_TYPE_OPENGLES2); |
| 2639 | 2638 |
| 2640 ExpectValid(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); | 2639 ExpectValid(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); |
| 2641 ExpectValid(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); | 2640 ExpectValid(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); |
| 2642 ExpectValid(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); | 2641 ExpectValid(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); |
| 2643 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); | 2642 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); |
| 2644 ExpectValid(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); | 2643 ExpectValid(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); |
| 2645 | 2644 |
| 2646 ExpectInvalidEnum(true, GL_RGB, GL_FLOAT, GL_RGB); | 2645 ExpectInvalidEnum(true, GL_RGB, GL_FLOAT, GL_RGB); |
| 2647 ExpectInvalidEnum(true, GL_RGBA, GL_FLOAT, GL_RGBA); | 2646 ExpectInvalidEnum(true, GL_RGBA, GL_FLOAT, GL_RGBA); |
| 2648 ExpectInvalidEnum(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); | 2647 ExpectInvalidEnum(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); |
| 2649 ExpectInvalidEnum(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); | 2648 ExpectInvalidEnum(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); |
| 2650 ExpectInvalidEnum(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); | 2649 ExpectInvalidEnum(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); |
| 2651 } | 2650 } |
| 2652 | 2651 |
| 2653 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloatLinear) { | 2652 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloatLinear) { |
| 2654 SetupFeatureInfo( | 2653 SetupFeatureInfo("GL_OES_texture_half_float GL_OES_texture_half_float_linear", |
| 2655 "GL_OES_texture_half_float GL_OES_texture_half_float_linear", | 2654 "OpenGL ES 2.0", CONTEXT_TYPE_OPENGLES2); |
| 2656 "OpenGL ES 2.0", | |
| 2657 false); | |
| 2658 | 2655 |
| 2659 ExpectValid(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); | 2656 ExpectValid(true, GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); |
| 2660 ExpectValid(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); | 2657 ExpectValid(true, GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); |
| 2661 ExpectValid(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); | 2658 ExpectValid(true, GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); |
| 2662 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); | 2659 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); |
| 2663 ExpectValid(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); | 2660 ExpectValid(true, GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); |
| 2664 | 2661 |
| 2665 ExpectInvalidEnum(true, GL_RGB, GL_FLOAT, GL_RGB); | 2662 ExpectInvalidEnum(true, GL_RGB, GL_FLOAT, GL_RGB); |
| 2666 ExpectInvalidEnum(true, GL_RGBA, GL_FLOAT, GL_RGBA); | 2663 ExpectInvalidEnum(true, GL_RGBA, GL_FLOAT, GL_RGBA); |
| 2667 ExpectInvalidEnum(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); | 2664 ExpectInvalidEnum(true, GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); |
| 2668 ExpectInvalidEnum(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); | 2665 ExpectInvalidEnum(true, GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); |
| 2669 ExpectInvalidEnum(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); | 2666 ExpectInvalidEnum(true, GL_ALPHA, GL_FLOAT, GL_ALPHA); |
| 2670 } | 2667 } |
| 2671 | 2668 |
| 2672 TEST_F(TextureFormatTypeValidationTest, ES3Basic) { | 2669 TEST_F(TextureFormatTypeValidationTest, ES3Basic) { |
| 2673 SetupFeatureInfo("", "OpenGL ES 3.0", true); | 2670 SetupFeatureInfo("", "OpenGL ES 3.0", CONTEXT_TYPE_OPENGLES3); |
| 2674 | 2671 |
| 2675 ExpectValid(true, GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); | 2672 ExpectValid(true, GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); |
| 2676 ExpectValid(true, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB); | 2673 ExpectValid(true, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB); |
| 2677 ExpectValid(true, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA); | 2674 ExpectValid(true, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA); |
| 2678 ExpectValid(true, GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE); | 2675 ExpectValid(true, GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE); |
| 2679 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA); | 2676 ExpectValid(true, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA); |
| 2680 | 2677 |
| 2681 ExpectValid(true, GL_RG, GL_BYTE, GL_RG8_SNORM); | 2678 ExpectValid(true, GL_RG, GL_BYTE, GL_RG8_SNORM); |
| 2682 ExpectValid(true, GL_RG_INTEGER, GL_UNSIGNED_INT, GL_RG32UI); | 2679 ExpectValid(true, GL_RG_INTEGER, GL_UNSIGNED_INT, GL_RG32UI); |
| 2683 ExpectValid(true, GL_RG_INTEGER, GL_SHORT, GL_RG16I); | 2680 ExpectValid(true, GL_RG_INTEGER, GL_SHORT, GL_RG16I); |
| 2684 ExpectValid(true, GL_RGB, GL_UNSIGNED_BYTE, GL_SRGB8); | 2681 ExpectValid(true, GL_RGB, GL_UNSIGNED_BYTE, GL_SRGB8); |
| 2685 ExpectValid(true, GL_RGBA, GL_HALF_FLOAT, GL_RGBA16F); | 2682 ExpectValid(true, GL_RGBA, GL_HALF_FLOAT, GL_RGBA16F); |
| 2686 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA16F); | 2683 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA16F); |
| 2687 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA32F); | 2684 ExpectValid(true, GL_RGBA, GL_FLOAT, GL_RGBA32F); |
| 2688 | 2685 |
| 2689 ExpectValid( | 2686 ExpectValid( |
| 2690 true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT16); | 2687 true, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT16); |
| 2691 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT24); | 2688 ExpectValid(true, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT24); |
| 2692 ExpectValid(true, GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); | 2689 ExpectValid(true, GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); |
| 2693 ExpectValid( | 2690 ExpectValid( |
| 2694 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); | 2691 true, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); |
| 2695 ExpectValid(true, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, | 2692 ExpectValid(true, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, |
| 2696 GL_DEPTH32F_STENCIL8); | 2693 GL_DEPTH32F_STENCIL8); |
| 2697 | 2694 |
| 2698 ExpectInvalid(true, GL_RGB_INTEGER, GL_INT, GL_RGBA8); | 2695 ExpectInvalid(true, GL_RGB_INTEGER, GL_INT, GL_RGBA8); |
| 2699 } | 2696 } |
| 2700 | 2697 |
| 2701 } // namespace gles2 | 2698 } // namespace gles2 |
| 2702 } // namespace gpu | 2699 } // namespace gpu |
| OLD | NEW |