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

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

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" 9 #include "gpu/command_buffer/common/gles2_cmd_format.h"
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 } 124 }
125 125
126 // Same as GenerateMipmapClearsUnclearedTexture, but with workaround 126 // Same as GenerateMipmapClearsUnclearedTexture, but with workaround
127 // |set_texture_filters_before_generating_mipmap|. 127 // |set_texture_filters_before_generating_mipmap|.
128 TEST_P(GLES2DecoderManualInitTest, SetTextureFiltersBeforeGenerateMipmap) { 128 TEST_P(GLES2DecoderManualInitTest, SetTextureFiltersBeforeGenerateMipmap) {
129 base::CommandLine command_line(0, NULL); 129 base::CommandLine command_line(0, NULL);
130 command_line.AppendSwitchASCII( 130 command_line.AppendSwitchASCII(
131 switches::kGpuDriverBugWorkarounds, 131 switches::kGpuDriverBugWorkarounds,
132 base::IntToString(gpu::SET_TEXTURE_FILTER_BEFORE_GENERATING_MIPMAP)); 132 base::IntToString(gpu::SET_TEXTURE_FILTER_BEFORE_GENERATING_MIPMAP));
133 InitState init; 133 InitState init;
134 init.gl_version = "3.0";
135 init.bind_generates_resource = true; 134 init.bind_generates_resource = true;
136 InitDecoderWithCommandLine(init, &command_line); 135 InitDecoderWithCommandLine(init, &command_line);
137 136
138 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0); 137 EXPECT_CALL(*gl_, GenerateMipmapEXT(_)).Times(0);
139 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 138 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
140 DoTexImage2D( 139 DoTexImage2D(
141 GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0, 0); 140 GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0, 0);
142 SetupClearTextureExpectations(kServiceTextureId, 141 SetupClearTextureExpectations(kServiceTextureId,
143 kServiceTextureId, 142 kServiceTextureId,
144 GL_TEXTURE_2D, 143 GL_TEXTURE_2D,
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 CopyTexImage2D cmd; 633 CopyTexImage2D cmd;
635 cmd.Init(target, level, internal_format, 0, 0, width, height); 634 cmd.Init(target, level, internal_format, 0, 0, width, height);
636 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 635 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
637 EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError()); 636 EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
638 EXPECT_FALSE(texture->GetLevelSize(GL_TEXTURE_2D, level, &width, &height)); 637 EXPECT_FALSE(texture->GetLevelSize(GL_TEXTURE_2D, level, &width, &height));
639 } 638 }
640 639
641 TEST_P(GLES2DecoderManualInitTest, CompressedTexImage2DBucketBadBucket) { 640 TEST_P(GLES2DecoderManualInitTest, CompressedTexImage2DBucketBadBucket) {
642 InitState init; 641 InitState init;
643 init.extensions = "GL_EXT_texture_compression_s3tc"; 642 init.extensions = "GL_EXT_texture_compression_s3tc";
644 init.gl_version = "3.0";
645 init.bind_generates_resource = true; 643 init.bind_generates_resource = true;
646 InitDecoder(init); 644 InitDecoder(init);
647 645
648 const uint32 kBadBucketId = 123; 646 const uint32 kBadBucketId = 123;
649 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 647 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
650 CompressedTexImage2DBucket cmd; 648 CompressedTexImage2DBucket cmd;
651 cmd.Init(GL_TEXTURE_2D, 649 cmd.Init(GL_TEXTURE_2D,
652 0, 650 0,
653 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 651 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
654 4, 652 4,
(...skipping 17 matching lines...) Expand all
672 struct S3TCTestData { 670 struct S3TCTestData {
673 GLenum format; 671 GLenum format;
674 size_t block_size; 672 size_t block_size;
675 }; 673 };
676 674
677 } // anonymous namespace. 675 } // anonymous namespace.
678 676
679 TEST_P(GLES2DecoderManualInitTest, CompressedTexImage2DS3TC) { 677 TEST_P(GLES2DecoderManualInitTest, CompressedTexImage2DS3TC) {
680 InitState init; 678 InitState init;
681 init.extensions = "GL_EXT_texture_compression_s3tc"; 679 init.extensions = "GL_EXT_texture_compression_s3tc";
682 init.gl_version = "3.0";
683 init.bind_generates_resource = true; 680 init.bind_generates_resource = true;
684 InitDecoder(init); 681 InitDecoder(init);
685 const uint32 kBucketId = 123; 682 const uint32 kBucketId = 123;
686 CommonDecoder::Bucket* bucket = decoder_->CreateBucket(kBucketId); 683 CommonDecoder::Bucket* bucket = decoder_->CreateBucket(kBucketId);
687 ASSERT_TRUE(bucket != NULL); 684 ASSERT_TRUE(bucket != NULL);
688 685
689 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 686 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
690 687
691 static const S3TCTestData test_data[] = { 688 static const S3TCTestData test_data[] = {
692 { 689 {
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
1083 kSharedMemoryId, 1080 kSharedMemoryId,
1084 kSharedMemoryOffset); 1081 kSharedMemoryOffset);
1085 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1082 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1086 1083
1087 // TexImage2D is not allowed with GL_TEXTURE_EXTERNAL_OES targets. 1084 // TexImage2D is not allowed with GL_TEXTURE_EXTERNAL_OES targets.
1088 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1085 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1089 } 1086 }
1090 1087
1091 TEST_P(GLES2DecoderManualInitTest, DefaultTextureZero) { 1088 TEST_P(GLES2DecoderManualInitTest, DefaultTextureZero) {
1092 InitState init; 1089 InitState init;
1093 init.gl_version = "3.0";
1094 InitDecoder(init); 1090 InitDecoder(init);
1095 1091
1096 BindTexture cmd1; 1092 BindTexture cmd1;
1097 cmd1.Init(GL_TEXTURE_2D, 0); 1093 cmd1.Init(GL_TEXTURE_2D, 0);
1098 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0)); 1094 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0));
1099 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1095 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1100 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1096 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1101 1097
1102 BindTexture cmd2; 1098 BindTexture cmd2;
1103 cmd2.Init(GL_TEXTURE_CUBE_MAP, 0); 1099 cmd2.Init(GL_TEXTURE_CUBE_MAP, 0);
1104 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_CUBE_MAP, 0)); 1100 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_CUBE_MAP, 0));
1105 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1101 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1106 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1102 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1107 } 1103 }
1108 1104
1109 TEST_P(GLES2DecoderManualInitTest, DefaultTextureBGR) { 1105 TEST_P(GLES2DecoderManualInitTest, DefaultTextureBGR) {
1110 InitState init; 1106 InitState init;
1111 init.gl_version = "3.0";
1112 init.bind_generates_resource = true; 1107 init.bind_generates_resource = true;
1113 InitDecoder(init); 1108 InitDecoder(init);
1114 1109
1115 BindTexture cmd1; 1110 BindTexture cmd1;
1116 cmd1.Init(GL_TEXTURE_2D, 0); 1111 cmd1.Init(GL_TEXTURE_2D, 0);
1117 EXPECT_CALL( 1112 EXPECT_CALL(
1118 *gl_, BindTexture(GL_TEXTURE_2D, TestHelper::kServiceDefaultTexture2dId)); 1113 *gl_, BindTexture(GL_TEXTURE_2D, TestHelper::kServiceDefaultTexture2dId));
1119 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1114 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1120 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1115 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1121 1116
1122 BindTexture cmd2; 1117 BindTexture cmd2;
1123 cmd2.Init(GL_TEXTURE_CUBE_MAP, 0); 1118 cmd2.Init(GL_TEXTURE_CUBE_MAP, 0);
1124 EXPECT_CALL(*gl_, 1119 EXPECT_CALL(*gl_,
1125 BindTexture(GL_TEXTURE_CUBE_MAP, 1120 BindTexture(GL_TEXTURE_CUBE_MAP,
1126 TestHelper::kServiceDefaultTextureCubemapId)); 1121 TestHelper::kServiceDefaultTextureCubemapId));
1127 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1122 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1128 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1123 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1129 } 1124 }
1130 1125
1131 // Test that default texture 0 is immutable. 1126 // Test that default texture 0 is immutable.
1132 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterf) { 1127 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterf) {
1133 InitState init; 1128 InitState init;
1134 init.gl_version = "3.0";
1135 InitDecoder(init); 1129 InitDecoder(init);
1136 1130
1137 { 1131 {
1138 BindTexture cmd1; 1132 BindTexture cmd1;
1139 cmd1.Init(GL_TEXTURE_2D, 0); 1133 cmd1.Init(GL_TEXTURE_2D, 0);
1140 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0)); 1134 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0));
1141 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1135 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1142 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1136 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1143 1137
1144 TexParameterf cmd2; 1138 TexParameterf cmd2;
(...skipping 11 matching lines...) Expand all
1156 1150
1157 TexParameterf cmd2; 1151 TexParameterf cmd2;
1158 cmd2.Init(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 1152 cmd2.Init(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
1159 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1153 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1160 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1154 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1161 } 1155 }
1162 } 1156 }
1163 1157
1164 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteri) { 1158 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteri) {
1165 InitState init; 1159 InitState init;
1166 init.gl_version = "3.0";
1167 InitDecoder(init); 1160 InitDecoder(init);
1168 1161
1169 { 1162 {
1170 BindTexture cmd1; 1163 BindTexture cmd1;
1171 cmd1.Init(GL_TEXTURE_2D, 0); 1164 cmd1.Init(GL_TEXTURE_2D, 0);
1172 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0)); 1165 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0));
1173 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1166 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1174 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1167 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1175 1168
1176 TexParameteri cmd2; 1169 TexParameteri cmd2;
(...skipping 11 matching lines...) Expand all
1188 1181
1189 TexParameteri cmd2; 1182 TexParameteri cmd2;
1190 cmd2.Init(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 1183 cmd2.Init(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
1191 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1184 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1192 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1185 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1193 } 1186 }
1194 } 1187 }
1195 1188
1196 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterfv) { 1189 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameterfv) {
1197 InitState init; 1190 InitState init;
1198 init.gl_version = "3.0";
1199 InitDecoder(init); 1191 InitDecoder(init);
1200 1192
1201 { 1193 {
1202 BindTexture cmd1; 1194 BindTexture cmd1;
1203 cmd1.Init(GL_TEXTURE_2D, 0); 1195 cmd1.Init(GL_TEXTURE_2D, 0);
1204 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0)); 1196 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0));
1205 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1197 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1206 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1198 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1207 1199
1208 GLfloat data = GL_NEAREST; 1200 GLfloat data = GL_NEAREST;
(...skipping 19 matching lines...) Expand all
1228 cmd2.Init(GL_TEXTURE_CUBE_MAP, 1220 cmd2.Init(GL_TEXTURE_CUBE_MAP,
1229 GL_TEXTURE_MAG_FILTER, 1221 GL_TEXTURE_MAG_FILTER,
1230 &data); 1222 &data);
1231 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd2, sizeof(data))); 1223 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd2, sizeof(data)));
1232 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1224 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1233 } 1225 }
1234 } 1226 }
1235 1227
1236 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteriv) { 1228 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexParameteriv) {
1237 InitState init; 1229 InitState init;
1238 init.gl_version = "3.0";
1239 InitDecoder(init); 1230 InitDecoder(init);
1240 1231
1241 { 1232 {
1242 BindTexture cmd1; 1233 BindTexture cmd1;
1243 cmd1.Init(GL_TEXTURE_2D, 0); 1234 cmd1.Init(GL_TEXTURE_2D, 0);
1244 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0)); 1235 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0));
1245 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1236 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1246 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1237 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1247 1238
1248 GLfloat data = GL_NEAREST; 1239 GLfloat data = GL_NEAREST;
(...skipping 19 matching lines...) Expand all
1268 cmd2.Init(GL_TEXTURE_CUBE_MAP, 1259 cmd2.Init(GL_TEXTURE_CUBE_MAP,
1269 GL_TEXTURE_MAG_FILTER, 1260 GL_TEXTURE_MAG_FILTER,
1270 &data); 1261 &data);
1271 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd2, sizeof(data))); 1262 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd2, sizeof(data)));
1272 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1263 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1273 } 1264 }
1274 } 1265 }
1275 1266
1276 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexImage2D) { 1267 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexImage2D) {
1277 InitState init; 1268 InitState init;
1278 init.gl_version = "3.0";
1279 InitDecoder(init); 1269 InitDecoder(init);
1280 1270
1281 BindTexture cmd1; 1271 BindTexture cmd1;
1282 cmd1.Init(GL_TEXTURE_2D, 0); 1272 cmd1.Init(GL_TEXTURE_2D, 0);
1283 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0)); 1273 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0));
1284 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1274 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1285 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1275 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1286 1276
1287 TexImage2D cmd2; 1277 TexImage2D cmd2;
1288 cmd2.Init(GL_TEXTURE_2D, 1278 cmd2.Init(GL_TEXTURE_2D,
1289 0, 1279 0,
1290 GL_RGBA, 1280 GL_RGBA,
1291 2, 1281 2,
1292 2, 1282 2,
1293 GL_RGBA, 1283 GL_RGBA,
1294 GL_UNSIGNED_BYTE, 1284 GL_UNSIGNED_BYTE,
1295 kSharedMemoryId, 1285 kSharedMemoryId,
1296 kSharedMemoryOffset); 1286 kSharedMemoryOffset);
1297 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1287 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1298 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1288 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1299 } 1289 }
1300 1290
1301 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexSubImage2D) { 1291 TEST_P(GLES2DecoderManualInitTest, NoDefaultTexSubImage2D) {
1302 InitState init; 1292 InitState init;
1303 init.gl_version = "3.0";
1304 InitDecoder(init); 1293 InitDecoder(init);
1305 1294
1306 BindTexture cmd1; 1295 BindTexture cmd1;
1307 cmd1.Init(GL_TEXTURE_2D, 0); 1296 cmd1.Init(GL_TEXTURE_2D, 0);
1308 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0)); 1297 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0));
1309 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); 1298 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
1310 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1299 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1311 1300
1312 TexSubImage2D cmd2; 1301 TexSubImage2D cmd2;
1313 cmd2.Init(GL_TEXTURE_2D, 1302 cmd2.Init(GL_TEXTURE_2D,
1314 0, 1303 0,
1315 1, 1304 1,
1316 1, 1305 1,
1317 1, 1306 1,
1318 1, 1307 1,
1319 GL_RGBA, 1308 GL_RGBA,
1320 GL_UNSIGNED_BYTE, 1309 GL_UNSIGNED_BYTE,
1321 kSharedMemoryId, 1310 kSharedMemoryId,
1322 kSharedMemoryOffset, 1311 kSharedMemoryOffset,
1323 GL_FALSE); 1312 GL_FALSE);
1324 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1313 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1325 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1314 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1326 } 1315 }
1327 1316
1328 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleBindTexture) { 1317 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleBindTexture) {
1329 InitState init; 1318 InitState init;
1330 init.extensions = "GL_ARB_texture_rectangle"; 1319 init.extensions = "GL_ARB_texture_rectangle";
1331 init.gl_version = "3.0";
1332 init.bind_generates_resource = true; 1320 init.bind_generates_resource = true;
1333 InitDecoder(init); 1321 InitDecoder(init);
1334 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_RECTANGLE_ARB, kNewServiceId)); 1322 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_RECTANGLE_ARB, kNewServiceId));
1335 EXPECT_CALL(*gl_, GenTextures(1, _)) 1323 EXPECT_CALL(*gl_, GenTextures(1, _))
1336 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); 1324 .WillOnce(SetArgumentPointee<1>(kNewServiceId));
1337 BindTexture cmd; 1325 BindTexture cmd;
1338 cmd.Init(GL_TEXTURE_RECTANGLE_ARB, kNewClientId); 1326 cmd.Init(GL_TEXTURE_RECTANGLE_ARB, kNewClientId);
1339 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1327 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1340 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1328 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1341 Texture* texture = GetTexture(kNewClientId)->texture(); 1329 Texture* texture = GetTexture(kNewClientId)->texture();
1342 EXPECT_TRUE(texture != NULL); 1330 EXPECT_TRUE(texture != NULL);
1343 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB); 1331 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB);
1344 } 1332 }
1345 1333
1346 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleGetBinding) { 1334 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleGetBinding) {
1347 InitState init; 1335 InitState init;
1348 init.extensions = "GL_ARB_texture_rectangle"; 1336 init.extensions = "GL_ARB_texture_rectangle";
1349 init.gl_version = "3.0";
1350 init.bind_generates_resource = true; 1337 init.bind_generates_resource = true;
1351 InitDecoder(init); 1338 InitDecoder(init);
1352 DoBindTexture( 1339 DoBindTexture(
1353 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId); 1340 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId);
1354 1341
1355 EXPECT_CALL(*gl_, GetError()) 1342 EXPECT_CALL(*gl_, GetError())
1356 .WillOnce(Return(GL_NO_ERROR)) 1343 .WillOnce(Return(GL_NO_ERROR))
1357 .WillOnce(Return(GL_NO_ERROR)) 1344 .WillOnce(Return(GL_NO_ERROR))
1358 .RetiresOnSaturation(); 1345 .RetiresOnSaturation();
1359 typedef GetIntegerv::Result Result; 1346 typedef GetIntegerv::Result Result;
(...skipping 10 matching lines...) Expand all
1370 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned( 1357 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
1371 GL_TEXTURE_BINDING_RECTANGLE_ARB), 1358 GL_TEXTURE_BINDING_RECTANGLE_ARB),
1372 result->GetNumResults()); 1359 result->GetNumResults());
1373 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1360 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1374 EXPECT_EQ(client_texture_id_, (uint32)result->GetData()[0]); 1361 EXPECT_EQ(client_texture_id_, (uint32)result->GetData()[0]);
1375 } 1362 }
1376 1363
1377 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureDefaults) { 1364 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureDefaults) {
1378 InitState init; 1365 InitState init;
1379 init.extensions = "GL_ARB_texture_rectangle"; 1366 init.extensions = "GL_ARB_texture_rectangle";
1380 init.gl_version = "3.0";
1381 init.bind_generates_resource = true; 1367 init.bind_generates_resource = true;
1382 InitDecoder(init); 1368 InitDecoder(init);
1383 DoBindTexture( 1369 DoBindTexture(
1384 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId); 1370 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId);
1385 1371
1386 Texture* texture = GetTexture(client_texture_id_)->texture(); 1372 Texture* texture = GetTexture(client_texture_id_)->texture();
1387 EXPECT_TRUE(texture != NULL); 1373 EXPECT_TRUE(texture != NULL);
1388 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB); 1374 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB);
1389 EXPECT_TRUE(texture->min_filter() == GL_LINEAR); 1375 EXPECT_TRUE(texture->min_filter() == GL_LINEAR);
1390 EXPECT_TRUE(texture->wrap_s() == GL_CLAMP_TO_EDGE); 1376 EXPECT_TRUE(texture->wrap_s() == GL_CLAMP_TO_EDGE);
1391 EXPECT_TRUE(texture->wrap_t() == GL_CLAMP_TO_EDGE); 1377 EXPECT_TRUE(texture->wrap_t() == GL_CLAMP_TO_EDGE);
1392 } 1378 }
1393 1379
1394 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParam) { 1380 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParam) {
1395 InitState init; 1381 InitState init;
1396 init.extensions = "GL_ARB_texture_rectangle"; 1382 init.extensions = "GL_ARB_texture_rectangle";
1397 init.gl_version = "3.0";
1398 init.bind_generates_resource = true; 1383 init.bind_generates_resource = true;
1399 InitDecoder(init); 1384 InitDecoder(init);
1400 1385
1401 DoBindTexture( 1386 DoBindTexture(
1402 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId); 1387 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId);
1403 1388
1404 EXPECT_CALL(*gl_, 1389 EXPECT_CALL(*gl_,
1405 TexParameteri( 1390 TexParameteri(
1406 GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_NEAREST)); 1391 GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
1407 EXPECT_CALL(*gl_, 1392 EXPECT_CALL(*gl_,
(...skipping 28 matching lines...) Expand all
1436 EXPECT_TRUE(texture != NULL); 1421 EXPECT_TRUE(texture != NULL);
1437 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB); 1422 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB);
1438 EXPECT_TRUE(texture->min_filter() == GL_LINEAR); 1423 EXPECT_TRUE(texture->min_filter() == GL_LINEAR);
1439 EXPECT_TRUE(texture->wrap_s() == GL_CLAMP_TO_EDGE); 1424 EXPECT_TRUE(texture->wrap_s() == GL_CLAMP_TO_EDGE);
1440 EXPECT_TRUE(texture->wrap_t() == GL_CLAMP_TO_EDGE); 1425 EXPECT_TRUE(texture->wrap_t() == GL_CLAMP_TO_EDGE);
1441 } 1426 }
1442 1427
1443 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParamInvalid) { 1428 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTextureParamInvalid) {
1444 InitState init; 1429 InitState init;
1445 init.extensions = "GL_ARB_texture_rectangle"; 1430 init.extensions = "GL_ARB_texture_rectangle";
1446 init.gl_version = "3.0";
1447 init.bind_generates_resource = true; 1431 init.bind_generates_resource = true;
1448 InitDecoder(init); 1432 InitDecoder(init);
1449 1433
1450 DoBindTexture( 1434 DoBindTexture(
1451 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId); 1435 GL_TEXTURE_RECTANGLE_ARB, client_texture_id_, kServiceTextureId);
1452 1436
1453 TexParameteri cmd; 1437 TexParameteri cmd;
1454 cmd.Init(GL_TEXTURE_RECTANGLE_ARB, 1438 cmd.Init(GL_TEXTURE_RECTANGLE_ARB,
1455 GL_TEXTURE_MIN_FILTER, 1439 GL_TEXTURE_MIN_FILTER,
1456 GL_NEAREST_MIPMAP_NEAREST); 1440 GL_NEAREST_MIPMAP_NEAREST);
(...skipping 12 matching lines...) Expand all
1469 EXPECT_TRUE(texture != NULL); 1453 EXPECT_TRUE(texture != NULL);
1470 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB); 1454 EXPECT_TRUE(texture->target() == GL_TEXTURE_RECTANGLE_ARB);
1471 EXPECT_TRUE(texture->min_filter() == GL_LINEAR); 1455 EXPECT_TRUE(texture->min_filter() == GL_LINEAR);
1472 EXPECT_TRUE(texture->wrap_s() == GL_CLAMP_TO_EDGE); 1456 EXPECT_TRUE(texture->wrap_s() == GL_CLAMP_TO_EDGE);
1473 EXPECT_TRUE(texture->wrap_t() == GL_CLAMP_TO_EDGE); 1457 EXPECT_TRUE(texture->wrap_t() == GL_CLAMP_TO_EDGE);
1474 } 1458 }
1475 1459
1476 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTexImage2DError) { 1460 TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTexImage2DError) {
1477 InitState init; 1461 InitState init;
1478 init.extensions = "GL_ARB_texture_rectangle"; 1462 init.extensions = "GL_ARB_texture_rectangle";
1479 init.gl_version = "3.0";
1480 init.bind_generates_resource = true; 1463 init.bind_generates_resource = true;
1481 InitDecoder(init); 1464 InitDecoder(init);
1482 1465
1483 GLenum target = GL_TEXTURE_RECTANGLE_ARB; 1466 GLenum target = GL_TEXTURE_RECTANGLE_ARB;
1484 GLint level = 0; 1467 GLint level = 0;
1485 GLenum internal_format = GL_RGBA; 1468 GLenum internal_format = GL_RGBA;
1486 GLsizei width = 2; 1469 GLsizei width = 2;
1487 GLsizei height = 4; 1470 GLsizei height = 4;
1488 GLenum format = GL_RGBA; 1471 GLenum format = GL_RGBA;
1489 GLenum type = GL_UNSIGNED_BYTE; 1472 GLenum type = GL_UNSIGNED_BYTE;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1625 } 1608 }
1626 1609
1627 TEST_P( 1610 TEST_P(
1628 GLES2DecoderManualInitTest, 1611 GLES2DecoderManualInitTest,
1629 TexSubImage2DDoesNotClearAfterTexImage2DNULLThenDataWithTexImage2DIsFaster) { 1612 TexSubImage2DDoesNotClearAfterTexImage2DNULLThenDataWithTexImage2DIsFaster) {
1630 base::CommandLine command_line(0, NULL); 1613 base::CommandLine command_line(0, NULL);
1631 command_line.AppendSwitchASCII( 1614 command_line.AppendSwitchASCII(
1632 switches::kGpuDriverBugWorkarounds, 1615 switches::kGpuDriverBugWorkarounds,
1633 base::IntToString(gpu::TEXSUBIMAGE2D_FASTER_THAN_TEXIMAGE2D)); 1616 base::IntToString(gpu::TEXSUBIMAGE2D_FASTER_THAN_TEXIMAGE2D));
1634 InitState init; 1617 InitState init;
1635 init.gl_version = "3.0";
1636 init.bind_generates_resource = true; 1618 init.bind_generates_resource = true;
1637 InitDecoderWithCommandLine(init, &command_line); 1619 InitDecoderWithCommandLine(init, &command_line);
1638 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 1620 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
1639 DoTexImage2D( 1621 DoTexImage2D(
1640 GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0, 0); 1622 GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0, 0);
1641 1623
1642 { 1624 {
1643 // Uses texSubimage internally because the above workaround is active and 1625 // Uses texSubimage internally because the above workaround is active and
1644 // the update is for the full size of the texture. 1626 // the update is for the full size of the texture.
1645 EXPECT_CALL(*gl_, 1627 EXPECT_CALL(*gl_,
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 TextureManager* manager = group().texture_manager(); 1809 TextureManager* manager = group().texture_manager();
1828 TextureRef* texture_ref = manager->GetTexture(client_texture_id_); 1810 TextureRef* texture_ref = manager->GetTexture(client_texture_id_);
1829 ASSERT_TRUE(texture_ref != NULL); 1811 ASSERT_TRUE(texture_ref != NULL);
1830 Texture* texture = texture_ref->texture(); 1812 Texture* texture = texture_ref->texture();
1831 EXPECT_TRUE(texture->SafeToRenderFrom()); 1813 EXPECT_TRUE(texture->SafeToRenderFrom());
1832 } 1814 }
1833 1815
1834 TEST_P(GLES2DecoderManualInitTest, CompressedImage2DMarksTextureAsCleared) { 1816 TEST_P(GLES2DecoderManualInitTest, CompressedImage2DMarksTextureAsCleared) {
1835 InitState init; 1817 InitState init;
1836 init.extensions = "GL_EXT_texture_compression_s3tc"; 1818 init.extensions = "GL_EXT_texture_compression_s3tc";
1837 init.gl_version = "3.0";
1838 init.bind_generates_resource = true; 1819 init.bind_generates_resource = true;
1839 InitDecoder(init); 1820 InitDecoder(init);
1840 1821
1841 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 1822 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
1842 EXPECT_CALL(*gl_, GetError()) 1823 EXPECT_CALL(*gl_, GetError())
1843 .WillOnce(Return(GL_NO_ERROR)) 1824 .WillOnce(Return(GL_NO_ERROR))
1844 .RetiresOnSaturation(); 1825 .RetiresOnSaturation();
1845 EXPECT_CALL( 1826 EXPECT_CALL(
1846 *gl_, 1827 *gl_,
1847 CompressedTexImage2D( 1828 CompressedTexImage2D(
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
2656 kSharedMemoryId, 2637 kSharedMemoryId,
2657 kSharedMemoryOffset, 2638 kSharedMemoryOffset,
2658 GL_FALSE); 2639 GL_FALSE);
2659 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2640 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2660 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 2641 EXPECT_EQ(GL_NO_ERROR, GetGLError());
2661 } 2642 }
2662 2643
2663 TEST_P(GLES2DecoderManualInitTest, TexImage2DFloatConvertsFormatDesktop) { 2644 TEST_P(GLES2DecoderManualInitTest, TexImage2DFloatConvertsFormatDesktop) {
2664 InitState init; 2645 InitState init;
2665 init.extensions = "GL_ARB_texture_float"; 2646 init.extensions = "GL_ARB_texture_float";
2666 init.gl_version = "2.1";
2667 InitDecoder(init); 2647 InitDecoder(init);
2668 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 2648 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
2669 DoTexImage2D( 2649 DoTexImage2D(
2670 GL_TEXTURE_2D, 0, GL_RGBA32F, 16, 17, 0, GL_RGBA, GL_FLOAT, 0, 0); 2650 GL_TEXTURE_2D, 0, GL_RGBA32F, 16, 17, 0, GL_RGBA, GL_FLOAT, 0, 0);
2671 DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGB32F, 16, 17, 0, GL_RGB, GL_FLOAT, 0, 0); 2651 DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGB32F, 16, 17, 0, GL_RGB, GL_FLOAT, 0, 0);
2672 DoTexImage2DConvertInternalFormat(GL_TEXTURE_2D, 2652 DoTexImage2DConvertInternalFormat(GL_TEXTURE_2D,
2673 0, 2653 0,
2674 GL_RGBA, 2654 GL_RGBA,
2675 16, 2655 16,
2676 17, 2656 17,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2735 if (array[ii] == value) { 2715 if (array[ii] == value) {
2736 return true; 2716 return true;
2737 } 2717 }
2738 } 2718 }
2739 return false; 2719 return false;
2740 } 2720 }
2741 2721
2742 void CheckFormats(const char* extension, const GLenum* formats, int count) { 2722 void CheckFormats(const char* extension, const GLenum* formats, int count) {
2743 InitState init; 2723 InitState init;
2744 init.extensions = extension; 2724 init.extensions = extension;
2745 init.gl_version = "3.0";
2746 init.bind_generates_resource = true; 2725 init.bind_generates_resource = true;
2747 InitDecoder(init); 2726 InitDecoder(init);
2748 2727
2749 EXPECT_CALL(*gl_, GetError()) 2728 EXPECT_CALL(*gl_, GetError())
2750 .WillOnce(Return(GL_NO_ERROR)) 2729 .WillOnce(Return(GL_NO_ERROR))
2751 .WillOnce(Return(GL_NO_ERROR)) 2730 .WillOnce(Return(GL_NO_ERROR))
2752 .WillOnce(Return(GL_NO_ERROR)) 2731 .WillOnce(Return(GL_NO_ERROR))
2753 .WillOnce(Return(GL_NO_ERROR)) 2732 .WillOnce(Return(GL_NO_ERROR))
2754 .RetiresOnSaturation(); 2733 .RetiresOnSaturation();
2755 2734
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2807 CheckFormats("GL_IMG_texture_compression_pvrtc", formats, 4); 2786 CheckFormats("GL_IMG_texture_compression_pvrtc", formats, 4);
2808 } 2787 }
2809 2788
2810 TEST_P(GLES2DecoderCompressedFormatsTest, GetCompressedTextureFormatsETC1) { 2789 TEST_P(GLES2DecoderCompressedFormatsTest, GetCompressedTextureFormatsETC1) {
2811 const GLenum formats[] = {GL_ETC1_RGB8_OES}; 2790 const GLenum formats[] = {GL_ETC1_RGB8_OES};
2812 CheckFormats("GL_OES_compressed_ETC1_RGB8_texture", formats, 1); 2791 CheckFormats("GL_OES_compressed_ETC1_RGB8_texture", formats, 1);
2813 } 2792 }
2814 2793
2815 TEST_P(GLES2DecoderManualInitTest, GetNoCompressedTextureFormats) { 2794 TEST_P(GLES2DecoderManualInitTest, GetNoCompressedTextureFormats) {
2816 InitState init; 2795 InitState init;
2817 init.gl_version = "3.0";
2818 init.bind_generates_resource = true; 2796 init.bind_generates_resource = true;
2819 InitDecoder(init); 2797 InitDecoder(init);
2820 2798
2821 EXPECT_CALL(*gl_, GetError()) 2799 EXPECT_CALL(*gl_, GetError())
2822 .WillOnce(Return(GL_NO_ERROR)) 2800 .WillOnce(Return(GL_NO_ERROR))
2823 .WillOnce(Return(GL_NO_ERROR)) 2801 .WillOnce(Return(GL_NO_ERROR))
2824 .WillOnce(Return(GL_NO_ERROR)) 2802 .WillOnce(Return(GL_NO_ERROR))
2825 .WillOnce(Return(GL_NO_ERROR)) 2803 .WillOnce(Return(GL_NO_ERROR))
2826 .RetiresOnSaturation(); 2804 .RetiresOnSaturation();
2827 2805
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2859 // TODO(gman): CompressedTexSubImage2DImmediate 2837 // TODO(gman): CompressedTexSubImage2DImmediate
2860 2838
2861 // TODO(gman): TexImage2D 2839 // TODO(gman): TexImage2D
2862 2840
2863 // TODO(gman): TexImage2DImmediate 2841 // TODO(gman): TexImage2DImmediate
2864 2842
2865 // TODO(gman): TexSubImage2DImmediate 2843 // TODO(gman): TexSubImage2DImmediate
2866 2844
2867 } // namespace gles2 2845 } // namespace gles2
2868 } // namespace gpu 2846 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698