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

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

Issue 1335873002: Initialize default texture for GL_TEXTURE_3D and GL_TEXTURE_2D_ARRAY (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix default argument Created 5 years, 3 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/texture_manager.cc ('k') | no next file » | 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/texture_manager.h" 5 #include "gpu/command_buffer/service/texture_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 void SetUp() override { 71 void SetUp() override {
72 GpuServiceTest::SetUp(); 72 GpuServiceTest::SetUp();
73 manager_.reset(new TextureManager(NULL, 73 manager_.reset(new TextureManager(NULL,
74 feature_info_.get(), 74 feature_info_.get(),
75 kMaxTextureSize, 75 kMaxTextureSize,
76 kMaxCubeMapTextureSize, 76 kMaxCubeMapTextureSize,
77 kMaxRectangleTextureSize, 77 kMaxRectangleTextureSize,
78 kMax3DTextureSize, 78 kMax3DTextureSize,
79 kUseDefaultTextures)); 79 kUseDefaultTextures));
80 TestHelper::SetupTextureManagerInitExpectations( 80 TestHelper::SetupTextureManagerInitExpectations(
81 gl_.get(), "", kUseDefaultTextures); 81 gl_.get(), false, "", kUseDefaultTextures);
82 manager_->Initialize(); 82 manager_->Initialize();
83 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); 83 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>());
84 } 84 }
85 85
86 void TearDown() override { 86 void TearDown() override {
87 manager_->Destroy(false); 87 manager_->Destroy(false);
88 manager_.reset(); 88 manager_.reset();
89 GpuServiceTest::TearDown(); 89 GpuServiceTest::TearDown();
90 } 90 }
91 91
92 void SetParameter( 92 void SetParameter(
93 TextureRef* texture_ref, GLenum pname, GLint value, GLenum error) { 93 TextureRef* texture_ref, GLenum pname, GLint value, GLenum error) {
94 TestHelper::SetTexParameteriWithExpectations( 94 TestHelper::SetTexParameteriWithExpectations(
95 gl_.get(), error_state_.get(), manager_.get(), 95 gl_.get(), error_state_.get(), manager_.get(),
96 texture_ref, pname, value, error); 96 texture_ref, pname, value, error);
97 } 97 }
98 98
99 void SetupFeatureInfo(const char* gl_extensions,
100 const char* gl_version,
101 bool enable_es3) {
102 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(
103 gl_.get(), gl_extensions, "", gl_version);
104 feature_info_->Initialize();
105 if (enable_es3) {
106 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS, _))
107 .WillOnce(SetArgPointee<1>(8))
108 .RetiresOnSaturation();
109 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_DRAW_BUFFERS, _))
110 .WillOnce(SetArgPointee<1>(8))
111 .RetiresOnSaturation();
112 feature_info_->EnableES3Validators();
113 }
114 }
115
99 scoped_refptr<FeatureInfo> feature_info_; 116 scoped_refptr<FeatureInfo> feature_info_;
100 scoped_ptr<TextureManager> manager_; 117 scoped_ptr<TextureManager> manager_;
101 scoped_ptr<MockErrorState> error_state_; 118 scoped_ptr<MockErrorState> error_state_;
102 }; 119 };
103 120
104 // GCC requires these declarations, but MSVC requires they not be present 121 // GCC requires these declarations, but MSVC requires they not be present
105 #ifndef COMPILER_MSVC 122 #ifndef COMPILER_MSVC
106 const GLint TextureManagerTest::kMaxTextureSize; 123 const GLint TextureManagerTest::kMaxTextureSize;
107 const GLint TextureManagerTest::kMaxCubeMapTextureSize; 124 const GLint TextureManagerTest::kMaxCubeMapTextureSize;
108 const GLint TextureManagerTest::kMaxRectangleTextureSize; 125 const GLint TextureManagerTest::kMaxRectangleTextureSize;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST), texture->min_filter()); 187 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST), texture->min_filter());
171 SetParameter(texture_ref, GL_TEXTURE_WRAP_S, GL_NEAREST, GL_INVALID_ENUM); 188 SetParameter(texture_ref, GL_TEXTURE_WRAP_S, GL_NEAREST, GL_INVALID_ENUM);
172 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), texture->wrap_s()); 189 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), texture->wrap_s());
173 SetParameter(texture_ref, GL_TEXTURE_WRAP_T, GL_NEAREST, GL_INVALID_ENUM); 190 SetParameter(texture_ref, GL_TEXTURE_WRAP_T, GL_NEAREST, GL_INVALID_ENUM);
174 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), texture->wrap_t()); 191 EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), texture->wrap_t());
175 SetParameter(texture_ref, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0, GL_INVALID_VALUE); 192 SetParameter(texture_ref, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0, GL_INVALID_VALUE);
176 } 193 }
177 194
178 TEST_F(TextureManagerTest, UseDefaultTexturesTrue) { 195 TEST_F(TextureManagerTest, UseDefaultTexturesTrue) {
179 bool use_default_textures = true; 196 bool use_default_textures = true;
180 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); 197 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
181 198 false, "GL_ANGLE_texture_usage", use_default_textures);
182 TestHelper::SetupTextureManagerInitExpectations(
183 gl_.get(), "GL_ANGLE_texture_usage", use_default_textures);
184 TextureManager manager(NULL, 199 TextureManager manager(NULL,
185 feature_info_.get(), 200 feature_info_.get(),
186 kMaxTextureSize, 201 kMaxTextureSize,
187 kMaxCubeMapTextureSize, 202 kMaxCubeMapTextureSize,
188 kMaxRectangleTextureSize, 203 kMaxRectangleTextureSize,
189 kMax3DTextureSize, 204 kMax3DTextureSize,
190 use_default_textures); 205 use_default_textures);
191 manager.Initialize(); 206 manager.Initialize();
192 207
193 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) != NULL); 208 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) != NULL);
194 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) != NULL); 209 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) != NULL);
195 210
196 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. 211 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB.
197 212
198 manager.Destroy(false); 213 manager.Destroy(false);
199 } 214 }
200 215
201 TEST_F(TextureManagerTest, UseDefaultTexturesFalse) { 216 TEST_F(TextureManagerTest, UseDefaultTexturesFalse) {
202 bool use_default_textures = false; 217 bool use_default_textures = false;
203 TestHelper::SetupTextureManagerInitExpectations( 218 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
204 gl_.get(), "GL_ANGLE_texture_usage", use_default_textures); 219 false, "GL_ANGLE_texture_usage", use_default_textures);
205 TextureManager manager(NULL, 220 TextureManager manager(NULL,
206 feature_info_.get(), 221 feature_info_.get(),
207 kMaxTextureSize, 222 kMaxTextureSize,
208 kMaxCubeMapTextureSize, 223 kMaxCubeMapTextureSize,
209 kMaxRectangleTextureSize, 224 kMaxRectangleTextureSize,
210 kMax3DTextureSize, 225 kMax3DTextureSize,
211 use_default_textures); 226 use_default_textures);
212 manager.Initialize(); 227 manager.Initialize();
213 228
214 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) == NULL); 229 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) == NULL);
215 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) == NULL); 230 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) == NULL);
216 231
217 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. 232 // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB.
218 233
219 manager.Destroy(false); 234 manager.Destroy(false);
220 } 235 }
221 236
237 TEST_F(TextureManagerTest, UseDefaultTexturesTrueES3) {
238 bool use_default_textures = true;
239 SetupFeatureInfo("", "OpenGL ES 3.0", true);
240 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
241 true, "", use_default_textures);
242 TextureManager manager(NULL,
243 feature_info_.get(),
244 kMaxTextureSize,
245 kMaxCubeMapTextureSize,
246 kMaxRectangleTextureSize,
247 kMax3DTextureSize,
248 use_default_textures);
249 manager.Initialize();
250
251 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) != NULL);
252 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) != NULL);
253
254 manager.Destroy(false);
255 }
256
257 TEST_F(TextureManagerTest, UseDefaultTexturesFalseES3) {
258 bool use_default_textures = false;
259 SetupFeatureInfo("", "OpenGL ES 3.0", true);
260 TestHelper::SetupTextureManagerInitExpectations(gl_.get(),
261 true, "", use_default_textures);
262 TextureManager manager(NULL,
263 feature_info_.get(),
264 kMaxTextureSize,
265 kMaxCubeMapTextureSize,
266 kMaxRectangleTextureSize,
267 kMax3DTextureSize,
268 use_default_textures);
269 manager.Initialize();
270
271 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_3D) == NULL);
272 EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D_ARRAY) == NULL);
273
274 manager.Destroy(false);
275 }
276
222 TEST_F(TextureManagerTest, TextureUsageExt) { 277 TEST_F(TextureManagerTest, TextureUsageExt) {
223 TestHelper::SetupTextureManagerInitExpectations( 278 TestHelper::SetupTextureManagerInitExpectations(
224 gl_.get(), "GL_ANGLE_texture_usage", kUseDefaultTextures); 279 gl_.get(), false, "GL_ANGLE_texture_usage", kUseDefaultTextures);
225 TextureManager manager(NULL, 280 TextureManager manager(NULL,
226 feature_info_.get(), 281 feature_info_.get(),
227 kMaxTextureSize, 282 kMaxTextureSize,
228 kMaxCubeMapTextureSize, 283 kMaxCubeMapTextureSize,
229 kMaxRectangleTextureSize, 284 kMaxRectangleTextureSize,
230 kMax3DTextureSize, 285 kMax3DTextureSize,
231 kUseDefaultTextures); 286 kUseDefaultTextures);
232 manager.Initialize(); 287 manager.Initialize();
233 const GLuint kClient1Id = 1; 288 const GLuint kClient1Id = 1;
234 const GLuint kService1Id = 11; 289 const GLuint kService1Id = 11;
235 // Check we can create texture. 290 // Check we can create texture.
236 manager.CreateTexture(kClient1Id, kService1Id); 291 manager.CreateTexture(kClient1Id, kService1Id);
237 // Check texture got created. 292 // Check texture got created.
238 TextureRef* texture_ref = manager.GetTexture(kClient1Id); 293 TextureRef* texture_ref = manager.GetTexture(kClient1Id);
239 ASSERT_TRUE(texture_ref != NULL); 294 ASSERT_TRUE(texture_ref != NULL);
240 TestHelper::SetTexParameteriWithExpectations( 295 TestHelper::SetTexParameteriWithExpectations(
241 gl_.get(), error_state_.get(), &manager, texture_ref, 296 gl_.get(), error_state_.get(), &manager, texture_ref,
242 GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE, GL_NO_ERROR); 297 GL_TEXTURE_USAGE_ANGLE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE, GL_NO_ERROR);
243 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE), 298 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE),
244 texture_ref->texture()->usage()); 299 texture_ref->texture()->usage());
245 manager.Destroy(false); 300 manager.Destroy(false);
246 } 301 }
247 302
248 TEST_F(TextureManagerTest, Destroy) { 303 TEST_F(TextureManagerTest, Destroy) {
249 const GLuint kClient1Id = 1; 304 const GLuint kClient1Id = 1;
250 const GLuint kService1Id = 11; 305 const GLuint kService1Id = 11;
251 TestHelper::SetupTextureManagerInitExpectations( 306 TestHelper::SetupTextureManagerInitExpectations(
252 gl_.get(), "", kUseDefaultTextures); 307 gl_.get(), false, "", kUseDefaultTextures);
253 TextureManager manager(NULL, 308 TextureManager manager(NULL,
254 feature_info_.get(), 309 feature_info_.get(),
255 kMaxTextureSize, 310 kMaxTextureSize,
256 kMaxCubeMapTextureSize, 311 kMaxCubeMapTextureSize,
257 kMaxRectangleTextureSize, 312 kMaxRectangleTextureSize,
258 kMax3DTextureSize, 313 kMax3DTextureSize,
259 kUseDefaultTextures); 314 kUseDefaultTextures);
260 manager.Initialize(); 315 manager.Initialize();
261 // Check we can create texture. 316 // Check we can create texture.
262 manager.CreateTexture(kClient1Id, kService1Id); 317 manager.CreateTexture(kClient1Id, kService1Id);
263 // Check texture got created. 318 // Check texture got created.
264 TextureRef* texture = manager.GetTexture(kClient1Id); 319 TextureRef* texture = manager.GetTexture(kClient1Id);
265 ASSERT_TRUE(texture != NULL); 320 ASSERT_TRUE(texture != NULL);
266 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) 321 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id)))
267 .Times(1) 322 .Times(1)
268 .RetiresOnSaturation(); 323 .RetiresOnSaturation();
269 TestHelper::SetupTextureManagerDestructionExpectations( 324 TestHelper::SetupTextureManagerDestructionExpectations(
270 gl_.get(), "", kUseDefaultTextures); 325 gl_.get(), false, "", kUseDefaultTextures);
271 manager.Destroy(true); 326 manager.Destroy(true);
272 // Check that resources got freed. 327 // Check that resources got freed.
273 texture = manager.GetTexture(kClient1Id); 328 texture = manager.GetTexture(kClient1Id);
274 ASSERT_TRUE(texture == NULL); 329 ASSERT_TRUE(texture == NULL);
275 } 330 }
276 331
277 TEST_F(TextureManagerTest, MaxValues) { 332 TEST_F(TextureManagerTest, MaxValues) {
278 // Check we get the right values for the max sizes. 333 // Check we get the right values for the max sizes.
279 EXPECT_EQ(kMax2dLevels, manager_->MaxLevelsForTarget(GL_TEXTURE_2D)); 334 EXPECT_EQ(kMax2dLevels, manager_->MaxLevelsForTarget(GL_TEXTURE_2D));
280 EXPECT_EQ(kMaxCubeMapLevels, 335 EXPECT_EQ(kMaxCubeMapLevels,
(...skipping 1536 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 memory_tracker2_ = new CountingMemoryTracker; 1872 memory_tracker2_ = new CountingMemoryTracker;
1818 texture_manager2_.reset( 1873 texture_manager2_.reset(
1819 new TextureManager(memory_tracker2_.get(), 1874 new TextureManager(memory_tracker2_.get(),
1820 feature_info_.get(), 1875 feature_info_.get(),
1821 TextureManagerTest::kMaxTextureSize, 1876 TextureManagerTest::kMaxTextureSize,
1822 TextureManagerTest::kMaxCubeMapTextureSize, 1877 TextureManagerTest::kMaxCubeMapTextureSize,
1823 TextureManagerTest::kMaxRectangleTextureSize, 1878 TextureManagerTest::kMaxRectangleTextureSize,
1824 TextureManagerTest::kMax3DTextureSize, 1879 TextureManagerTest::kMax3DTextureSize,
1825 kUseDefaultTextures)); 1880 kUseDefaultTextures));
1826 TestHelper::SetupTextureManagerInitExpectations( 1881 TestHelper::SetupTextureManagerInitExpectations(
1827 gl_.get(), "", kUseDefaultTextures); 1882 gl_.get(), false, "", kUseDefaultTextures);
1828 texture_manager1_->Initialize(); 1883 texture_manager1_->Initialize();
1829 TestHelper::SetupTextureManagerInitExpectations( 1884 TestHelper::SetupTextureManagerInitExpectations(
1830 gl_.get(), "", kUseDefaultTextures); 1885 gl_.get(), false, "", kUseDefaultTextures);
1831 texture_manager2_->Initialize(); 1886 texture_manager2_->Initialize();
1832 } 1887 }
1833 1888
1834 void TearDown() override { 1889 void TearDown() override {
1835 texture_manager2_->Destroy(false); 1890 texture_manager2_->Destroy(false);
1836 texture_manager2_.reset(); 1891 texture_manager2_.reset();
1837 texture_manager1_->Destroy(false); 1892 texture_manager1_->Destroy(false);
1838 texture_manager1_.reset(); 1893 texture_manager1_.reset();
1839 GpuServiceTest::TearDown(); 1894 GpuServiceTest::TearDown();
1840 } 1895 }
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
2065 texture_manager2_->RemoveTexture(20); 2120 texture_manager2_->RemoveTexture(20);
2066 } 2121 }
2067 2122
2068 2123
2069 class TextureFormatTypeValidationTest : public TextureManagerTest { 2124 class TextureFormatTypeValidationTest : public TextureManagerTest {
2070 public: 2125 public:
2071 TextureFormatTypeValidationTest() {} 2126 TextureFormatTypeValidationTest() {}
2072 ~TextureFormatTypeValidationTest() override {} 2127 ~TextureFormatTypeValidationTest() override {}
2073 2128
2074 protected: 2129 protected:
2075 void SetupFeatureInfo(const char* gl_extensions, const char* gl_version) {
2076 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion(
2077 gl_.get(), gl_extensions, "", gl_version);
2078 feature_info_->Initialize();
2079 }
2080
2081 void ExpectValid(GLenum format, GLenum type, GLenum internal_format) { 2130 void ExpectValid(GLenum format, GLenum type, GLenum internal_format) {
2082 EXPECT_TRUE(manager_->ValidateTextureParameters( 2131 EXPECT_TRUE(manager_->ValidateTextureParameters(
2083 error_state_.get(), "", format, type, internal_format, 0)); 2132 error_state_.get(), "", format, type, internal_format, 0));
2084 } 2133 }
2085 2134
2086 void ExpectInvalid(GLenum format, GLenum type, GLenum internal_format) { 2135 void ExpectInvalid(GLenum format, GLenum type, GLenum internal_format) {
2087 EXPECT_CALL(*error_state_, 2136 EXPECT_CALL(*error_state_,
2088 SetGLError(_, _, _, _, _)) 2137 SetGLError(_, _, _, _, _))
2089 .Times(1) 2138 .Times(1)
2090 .RetiresOnSaturation(); 2139 .RetiresOnSaturation();
2091 EXPECT_FALSE(manager_->ValidateTextureParameters( 2140 EXPECT_FALSE(manager_->ValidateTextureParameters(
2092 error_state_.get(), "", format, type, internal_format, 0)); 2141 error_state_.get(), "", format, type, internal_format, 0));
2093 } 2142 }
2094 2143
2095 void ExpectInvalidEnum(GLenum format, GLenum type, GLenum internal_format) { 2144 void ExpectInvalidEnum(GLenum format, GLenum type, GLenum internal_format) {
2096 EXPECT_CALL(*error_state_, 2145 EXPECT_CALL(*error_state_,
2097 SetGLErrorInvalidEnum(_, _, _, _, _)) 2146 SetGLErrorInvalidEnum(_, _, _, _, _))
2098 .Times(1) 2147 .Times(1)
2099 .RetiresOnSaturation(); 2148 .RetiresOnSaturation();
2100 EXPECT_FALSE(manager_->ValidateTextureParameters( 2149 EXPECT_FALSE(manager_->ValidateTextureParameters(
2101 error_state_.get(), "", format, type, internal_format, 0)); 2150 error_state_.get(), "", format, type, internal_format, 0));
2102 } 2151 }
2103 }; 2152 };
2104 2153
2105 TEST_F(TextureFormatTypeValidationTest, ES2Basic) { 2154 TEST_F(TextureFormatTypeValidationTest, ES2Basic) {
2106 SetupFeatureInfo("", "OpenGL ES 2.0"); 2155 SetupFeatureInfo("", "OpenGL ES 2.0", false);
2107 2156
2108 ExpectValid(GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); 2157 ExpectValid(GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA);
2109 ExpectValid(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB); 2158 ExpectValid(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB);
2110 ExpectValid(GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA); 2159 ExpectValid(GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA);
2111 ExpectValid(GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE); 2160 ExpectValid(GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE);
2112 ExpectValid(GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA); 2161 ExpectValid(GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA);
2113 2162
2114 ExpectInvalid(GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); 2163 ExpectInvalid(GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA);
2115 2164
2116 // float / half_float. 2165 // float / half_float.
2117 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA); 2166 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA);
2118 ExpectInvalidEnum(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); 2167 ExpectInvalidEnum(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA);
2119 2168
2120 // GL_EXT_bgra 2169 // GL_EXT_bgra
2121 ExpectInvalidEnum(GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT); 2170 ExpectInvalidEnum(GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT);
2122 2171
2123 // depth / stencil 2172 // depth / stencil
2124 ExpectInvalidEnum(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); 2173 ExpectInvalidEnum(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT);
2125 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); 2174 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL);
2126 2175
2127 // SRGB 2176 // SRGB
2128 ExpectInvalidEnum(GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT); 2177 ExpectInvalidEnum(GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT);
2129 ExpectInvalidEnum(GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT); 2178 ExpectInvalidEnum(GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT);
2130 2179
2131 // ES3 2180 // ES3
2132 ExpectInvalidEnum(GL_RGB, GL_UNSIGNED_BYTE, GL_RGB8); 2181 ExpectInvalidEnum(GL_RGB, GL_UNSIGNED_BYTE, GL_RGB8);
2133 } 2182 }
2134 2183
2135 TEST_F(TextureFormatTypeValidationTest, ES2WithExtTextureFormatBGRA8888) { 2184 TEST_F(TextureFormatTypeValidationTest, ES2WithExtTextureFormatBGRA8888) {
2136 SetupFeatureInfo("GL_EXT_texture_format_BGRA8888", "OpenGL ES 2.0"); 2185 SetupFeatureInfo("GL_EXT_texture_format_BGRA8888", "OpenGL ES 2.0", false);
2137 2186
2138 ExpectValid(GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT); 2187 ExpectValid(GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT);
2139 } 2188 }
2140 2189
2141 TEST_F(TextureFormatTypeValidationTest, ES2WithAppleTextureFormatBGRA8888) { 2190 TEST_F(TextureFormatTypeValidationTest, ES2WithAppleTextureFormatBGRA8888) {
2142 SetupFeatureInfo("GL_APPLE_texture_format_BGRA8888", "OpenGL ES 2.0"); 2191 SetupFeatureInfo("GL_APPLE_texture_format_BGRA8888", "OpenGL ES 2.0", false);
2143 2192
2144 ExpectValid(GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT); 2193 ExpectValid(GL_BGRA_EXT, GL_UNSIGNED_BYTE, GL_BGRA_EXT);
2145 } 2194 }
2146 2195
2147 TEST_F(TextureFormatTypeValidationTest, ES2WithArbDepth) { 2196 TEST_F(TextureFormatTypeValidationTest, ES2WithArbDepth) {
2148 SetupFeatureInfo("GL_ARB_depth_texture", "OpenGL ES 2.0"); 2197 SetupFeatureInfo("GL_ARB_depth_texture", "OpenGL ES 2.0", false);
2149 2198
2150 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); 2199 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT);
2151 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); 2200 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT);
2152 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); 2201 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL);
2153 } 2202 }
2154 2203
2155 TEST_F(TextureFormatTypeValidationTest, ES2WithOesDepth) { 2204 TEST_F(TextureFormatTypeValidationTest, ES2WithOesDepth) {
2156 SetupFeatureInfo("GL_OES_depth_texture", "OpenGL ES 2.0"); 2205 SetupFeatureInfo("GL_OES_depth_texture", "OpenGL ES 2.0", false);
2157 2206
2158 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); 2207 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT);
2159 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); 2208 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT);
2160 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); 2209 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL);
2161 } 2210 }
2162 2211
2163 TEST_F(TextureFormatTypeValidationTest, ES2WithAngleDepth) { 2212 TEST_F(TextureFormatTypeValidationTest, ES2WithAngleDepth) {
2164 SetupFeatureInfo("GL_ANGLE_depth_texture", "OpenGL ES 2.0"); 2213 SetupFeatureInfo("GL_ANGLE_depth_texture", "OpenGL ES 2.0", false);
2165 2214
2166 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); 2215 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT);
2167 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); 2216 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT);
2168 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); 2217 ExpectInvalidEnum(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL);
2169 } 2218 }
2170 2219
2171 TEST_F(TextureFormatTypeValidationTest, ES2WithExtPackedDepthStencil) { 2220 TEST_F(TextureFormatTypeValidationTest, ES2WithExtPackedDepthStencil) {
2172 SetupFeatureInfo( 2221 SetupFeatureInfo(
2173 "GL_EXT_packed_depth_stencil GL_ARB_depth_texture", "OpenGL ES 2.0"); 2222 "GL_EXT_packed_depth_stencil GL_ARB_depth_texture",
2223 "OpenGL ES 2.0",
2224 false);
2174 2225
2175 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT); 2226 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT);
2176 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT); 2227 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT);
2177 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL); 2228 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH_STENCIL);
2178 } 2229 }
2179 2230
2180 TEST_F(TextureFormatTypeValidationTest, ES2WithRGWithFloat) { 2231 TEST_F(TextureFormatTypeValidationTest, ES2WithRGWithFloat) {
2181 SetupFeatureInfo( 2232 SetupFeatureInfo(
2182 "GL_EXT_texture_rg GL_OES_texture_float GL_OES_texture_half_float", 2233 "GL_EXT_texture_rg GL_OES_texture_float GL_OES_texture_half_float",
2183 "OpenGL ES 2.0"); 2234 "OpenGL ES 2.0",
2235 false);
2184 2236
2185 ExpectValid(GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT); 2237 ExpectValid(GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT);
2186 ExpectValid(GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT); 2238 ExpectValid(GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT);
2187 ExpectValid(GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT); 2239 ExpectValid(GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT);
2188 ExpectValid(GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT); 2240 ExpectValid(GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT);
2189 2241
2190 ExpectInvalidEnum(GL_RED_EXT, GL_BYTE, GL_RED_EXT); 2242 ExpectInvalidEnum(GL_RED_EXT, GL_BYTE, GL_RED_EXT);
2191 ExpectInvalidEnum(GL_RG_EXT, GL_BYTE, GL_RG_EXT); 2243 ExpectInvalidEnum(GL_RG_EXT, GL_BYTE, GL_RG_EXT);
2192 ExpectInvalidEnum(GL_RED_EXT, GL_SHORT, GL_RED_EXT); 2244 ExpectInvalidEnum(GL_RED_EXT, GL_SHORT, GL_RED_EXT);
2193 ExpectInvalidEnum(GL_RG_EXT, GL_SHORT, GL_RG_EXT); 2245 ExpectInvalidEnum(GL_RG_EXT, GL_SHORT, GL_RG_EXT);
2194 } 2246 }
2195 2247
2196 TEST_F(TextureFormatTypeValidationTest, ES2WithRGNoFloat) { 2248 TEST_F(TextureFormatTypeValidationTest, ES2WithRGNoFloat) {
2197 SetupFeatureInfo("GL_ARB_texture_rg", "OpenGL ES 2.0"); 2249 SetupFeatureInfo("GL_ARB_texture_rg", "OpenGL ES 2.0", false);
2198 2250
2199 ExpectValid(GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT); 2251 ExpectValid(GL_RED_EXT, GL_UNSIGNED_BYTE, GL_RED_EXT);
2200 ExpectValid(GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT); 2252 ExpectValid(GL_RG_EXT, GL_UNSIGNED_BYTE, GL_RG_EXT);
2201 2253
2202 ExpectInvalidEnum(GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT); 2254 ExpectInvalidEnum(GL_RED_EXT, GL_HALF_FLOAT_OES, GL_RED_EXT);
2203 ExpectInvalidEnum(GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT); 2255 ExpectInvalidEnum(GL_RG_EXT, GL_HALF_FLOAT_OES, GL_RG_EXT);
2204 } 2256 }
2205 2257
2206 TEST_F(TextureFormatTypeValidationTest, ES2OnTopOfES3) { 2258 TEST_F(TextureFormatTypeValidationTest, ES2OnTopOfES3) {
2207 SetupFeatureInfo("", "OpenGL ES 3.0"); 2259 SetupFeatureInfo("", "OpenGL ES 3.0", false);
2208 2260
2209 ExpectInvalidEnum(GL_RGB, GL_FLOAT, GL_RGB); 2261 ExpectInvalidEnum(GL_RGB, GL_FLOAT, GL_RGB);
2210 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA); 2262 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA);
2211 ExpectInvalidEnum(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); 2263 ExpectInvalidEnum(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE);
2212 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); 2264 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA);
2213 ExpectInvalidEnum(GL_ALPHA, GL_FLOAT, GL_ALPHA); 2265 ExpectInvalidEnum(GL_ALPHA, GL_FLOAT, GL_ALPHA);
2214 2266
2215 ExpectInvalidEnum(GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT); 2267 ExpectInvalidEnum(GL_SRGB_EXT, GL_UNSIGNED_BYTE, GL_SRGB_EXT);
2216 ExpectInvalidEnum(GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT); 2268 ExpectInvalidEnum(GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE, GL_SRGB_ALPHA_EXT);
2217 } 2269 }
2218 2270
2219 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloat) { 2271 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloat) {
2220 SetupFeatureInfo("GL_OES_texture_float", "OpenGL ES 2.0"); 2272 SetupFeatureInfo("GL_OES_texture_float", "OpenGL ES 2.0", false);
2221 2273
2222 ExpectValid(GL_RGB, GL_FLOAT, GL_RGB); 2274 ExpectValid(GL_RGB, GL_FLOAT, GL_RGB);
2223 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA); 2275 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA);
2224 ExpectValid(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); 2276 ExpectValid(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE);
2225 ExpectValid(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); 2277 ExpectValid(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA);
2226 ExpectValid(GL_ALPHA, GL_FLOAT, GL_ALPHA); 2278 ExpectValid(GL_ALPHA, GL_FLOAT, GL_ALPHA);
2227 2279
2228 ExpectInvalidEnum(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); 2280 ExpectInvalidEnum(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB);
2229 ExpectInvalidEnum(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); 2281 ExpectInvalidEnum(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA);
2230 ExpectInvalidEnum(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); 2282 ExpectInvalidEnum(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE);
2231 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); 2283 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA);
2232 ExpectInvalidEnum(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); 2284 ExpectInvalidEnum(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA);
2233 } 2285 }
2234 2286
2235 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloatLinear) { 2287 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureFloatLinear) {
2236 SetupFeatureInfo( 2288 SetupFeatureInfo(
2237 "GL_OES_texture_float GL_OES_texture_float_linear", "OpenGL ES 2.0"); 2289 "GL_OES_texture_float GL_OES_texture_float_linear",
2290 "OpenGL ES 2.0",
2291 false);
2238 2292
2239 ExpectValid(GL_RGB, GL_FLOAT, GL_RGB); 2293 ExpectValid(GL_RGB, GL_FLOAT, GL_RGB);
2240 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA); 2294 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA);
2241 ExpectValid(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); 2295 ExpectValid(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE);
2242 ExpectValid(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); 2296 ExpectValid(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA);
2243 ExpectValid(GL_ALPHA, GL_FLOAT, GL_ALPHA); 2297 ExpectValid(GL_ALPHA, GL_FLOAT, GL_ALPHA);
2244 2298
2245 ExpectInvalidEnum(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); 2299 ExpectInvalidEnum(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB);
2246 ExpectInvalidEnum(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); 2300 ExpectInvalidEnum(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA);
2247 ExpectInvalidEnum(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); 2301 ExpectInvalidEnum(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE);
2248 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); 2302 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA);
2249 ExpectInvalidEnum(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); 2303 ExpectInvalidEnum(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA);
2250 } 2304 }
2251 2305
2252 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloat) { 2306 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloat) {
2253 SetupFeatureInfo("GL_OES_texture_half_float", "OpenGL ES 2.0"); 2307 SetupFeatureInfo("GL_OES_texture_half_float", "OpenGL ES 2.0", false);
2254 2308
2255 ExpectValid(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); 2309 ExpectValid(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB);
2256 ExpectValid(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); 2310 ExpectValid(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA);
2257 ExpectValid(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); 2311 ExpectValid(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE);
2258 ExpectValid(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); 2312 ExpectValid(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA);
2259 ExpectValid(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); 2313 ExpectValid(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA);
2260 2314
2261 ExpectInvalidEnum(GL_RGB, GL_FLOAT, GL_RGB); 2315 ExpectInvalidEnum(GL_RGB, GL_FLOAT, GL_RGB);
2262 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA); 2316 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA);
2263 ExpectInvalidEnum(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); 2317 ExpectInvalidEnum(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE);
2264 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); 2318 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA);
2265 ExpectInvalidEnum(GL_ALPHA, GL_FLOAT, GL_ALPHA); 2319 ExpectInvalidEnum(GL_ALPHA, GL_FLOAT, GL_ALPHA);
2266 } 2320 }
2267 2321
2268 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloatLinear) { 2322 TEST_F(TextureFormatTypeValidationTest, ES2WithOesTextureHalfFloatLinear) {
2269 SetupFeatureInfo( 2323 SetupFeatureInfo(
2270 "GL_OES_texture_half_float GL_OES_texture_half_float_linear", 2324 "GL_OES_texture_half_float GL_OES_texture_half_float_linear",
2271 "OpenGL ES 2.0"); 2325 "OpenGL ES 2.0",
2326 false);
2272 2327
2273 ExpectValid(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB); 2328 ExpectValid(GL_RGB, GL_HALF_FLOAT_OES, GL_RGB);
2274 ExpectValid(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA); 2329 ExpectValid(GL_RGBA, GL_HALF_FLOAT_OES, GL_RGBA);
2275 ExpectValid(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE); 2330 ExpectValid(GL_LUMINANCE, GL_HALF_FLOAT_OES, GL_LUMINANCE);
2276 ExpectValid(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA); 2331 ExpectValid(GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES, GL_LUMINANCE_ALPHA);
2277 ExpectValid(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA); 2332 ExpectValid(GL_ALPHA, GL_HALF_FLOAT_OES, GL_ALPHA);
2278 2333
2279 ExpectInvalidEnum(GL_RGB, GL_FLOAT, GL_RGB); 2334 ExpectInvalidEnum(GL_RGB, GL_FLOAT, GL_RGB);
2280 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA); 2335 ExpectInvalidEnum(GL_RGBA, GL_FLOAT, GL_RGBA);
2281 ExpectInvalidEnum(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE); 2336 ExpectInvalidEnum(GL_LUMINANCE, GL_FLOAT, GL_LUMINANCE);
2282 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA); 2337 ExpectInvalidEnum(GL_LUMINANCE_ALPHA, GL_FLOAT, GL_LUMINANCE_ALPHA);
2283 ExpectInvalidEnum(GL_ALPHA, GL_FLOAT, GL_ALPHA); 2338 ExpectInvalidEnum(GL_ALPHA, GL_FLOAT, GL_ALPHA);
2284 } 2339 }
2285 2340
2286 TEST_F(TextureFormatTypeValidationTest, ES3Basic) { 2341 TEST_F(TextureFormatTypeValidationTest, ES3Basic) {
2287 SetupFeatureInfo("", "OpenGL ES 3.0"); 2342 SetupFeatureInfo("", "OpenGL ES 3.0", true);
2288 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_COLOR_ATTACHMENTS, _))
2289 .WillOnce(SetArgPointee<1>(8))
2290 .RetiresOnSaturation();
2291 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_DRAW_BUFFERS, _))
2292 .WillOnce(SetArgPointee<1>(8))
2293 .RetiresOnSaturation();
2294 feature_info_->EnableES3Validators();
2295 2343
2296 ExpectValid(GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA); 2344 ExpectValid(GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA);
2297 ExpectValid(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB); 2345 ExpectValid(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB);
2298 ExpectValid(GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA); 2346 ExpectValid(GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, GL_RGBA);
2299 ExpectValid(GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE); 2347 ExpectValid(GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE);
2300 ExpectValid(GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA); 2348 ExpectValid(GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA);
2301 2349
2302 ExpectValid(GL_RG, GL_BYTE, GL_RG8_SNORM); 2350 ExpectValid(GL_RG, GL_BYTE, GL_RG8_SNORM);
2303 ExpectValid(GL_RG_INTEGER, GL_UNSIGNED_INT, GL_RG32UI); 2351 ExpectValid(GL_RG_INTEGER, GL_UNSIGNED_INT, GL_RG32UI);
2304 ExpectValid(GL_RG_INTEGER, GL_SHORT, GL_RG16I); 2352 ExpectValid(GL_RG_INTEGER, GL_SHORT, GL_RG16I);
2305 ExpectValid(GL_RGB, GL_UNSIGNED_BYTE, GL_SRGB8); 2353 ExpectValid(GL_RGB, GL_UNSIGNED_BYTE, GL_SRGB8);
2306 ExpectValid(GL_RGBA, GL_HALF_FLOAT, GL_RGBA16F); 2354 ExpectValid(GL_RGBA, GL_HALF_FLOAT, GL_RGBA16F);
2307 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA16F); 2355 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA16F);
2308 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA32F); 2356 ExpectValid(GL_RGBA, GL_FLOAT, GL_RGBA32F);
2309 2357
2310 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT16); 2358 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, GL_DEPTH_COMPONENT16);
2311 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT24); 2359 ExpectValid(GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, GL_DEPTH_COMPONENT24);
2312 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); 2360 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F);
2313 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); 2361 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8);
2314 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 2362 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
2315 GL_DEPTH32F_STENCIL8); 2363 GL_DEPTH32F_STENCIL8);
2316 2364
2317 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); 2365 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8);
2318 } 2366 }
2319 2367
2320 } // namespace gles2 2368 } // namespace gles2
2321 } // namespace gpu 2369 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/texture_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698